An intelligent learning platform that automatically captures your Web3 learning journey through a browser extension and visualizes it as an interactive knowledge graph.
Fluent consists of two integrated components:
- Browser Extension - Captures sentences while you browse and learn
- Web Application - Visualizes your captured knowledge as an interactive graph
A Python-based Mailbox Agent that uses ASI:One (Fetch.ai's agentic AI platform) to extract Web3 concepts, terms, and relationships from text input. This agent runs locally with mailbox functionality enabled for Agentverse connectivity.
- Agent Name: FluentAgent
- Agent Address: See output when starting the agent (e.g.,
agent1q...) - Port: 8010
- REST Endpoint:
http://localhost:8010 - Categorization: Innovation Lab
All data is securely stored in Supabase and synchronized via manual sync, giving you control over when your data is uploaded.
- ๐ Smart Term Detection - Automatically highlights 20+ Web3/AI terms
- ๐ Sentence Capture - Select and tag sentences with detected terms
- ๐ญ Shadow Mode - Toggle term highlighting on/off
- ๐ Context-Aware - Different definitions based on page context
- ๐ Dashboard - Track XP, streaks, and learning stats
- ๐ Pokรฉdex - Collect and master terms like Pokรฉmon
- ๐ฏ Interactive Quizzes - Test knowledge and earn XP
- โ๏ธ Auto-Sync - Immediate synchronization to Supabase
- ๐ก Knowledge Gap Detection - AI-powered gap analysis every 5 minutes
- ๐งฉ Adaptive Quizzes - Personalized quizzes based on weak clusters
- ๐ Proactive Nudges - Badge notifications for learning opportunities
- ๐ธ๏ธ Interactive Graph - Force-directed graph visualization
- ๐ User Authentication - Secure login with Supabase
- โก Real-Time Updates - Graph updates automatically after sync
- ๐ Smart Filtering - Filter by topic, framework, date
- ๐ Analytics - View learning stats and insights
- ๐จ Beautiful UI - Modern, responsive design
- ๐พ Cloud Storage - All data safely stored in Supabase
- ๐ Real-Time Insights - Live toast notifications for knowledge gaps
- ๐ฌ AI Chat Assistant - Query your graph with ASI:One + MeTTa reasoning
- ๐ง MeTTa Integration - Symbolic reasoning for deeper knowledge connections
- ๐ค ASI:One Integration - Intelligent extraction and reasoning
asi1-mini: Concept extraction and explanationsasi1-graph: Knowledge graph analysis and reasoning
- ๐ง MeTTa Reasoning Engine - Symbolic logic for Web3 concepts
- ๐ Automatic Gap Detection - Identifies weak knowledge clusters
- ๐ Adaptive Quiz Generation - Creates personalized quizzes
- ๐ก Proactive Insights - Real-time learning recommendations
- ๐ Graph Analysis - Advanced reasoning over your knowledge graph
- Node.js 18+
- Python 3.12+ (for AI agent)
- Chrome/Brave browser
- Supabase account (free tier works!)
- ASI:One API key (for agent features)
For detailed setup instructions, see SETUP_GUIDE.md
Quick summary:
- Create Supabase project and set up database (see SUPABASE_SETUP.md)
- Website: Install deps, configure env vars, run dev server
- Extension: Install deps, configure env vars, build, and load in Chrome
- Use: Capture sentences โ Sync โ View graph
1. Browse web pages
โ
2. Extension highlights terms
โ
3. Select & capture sentences
โ
4. Click "Sync" in extension
โ
5. View on website (auto-updates!)
โโโโโโโโโโโโโโโโโโโโโโโ
โ Browser Extension โ
โ (React + WXT) โ
โ - Captures data โ
โ - Auto sync โ
โ - Gap detection โ
โ - Adaptive quizzes โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โ HTTP (Auto Sync)
โโโโโโโโโโโโโโโโโโโโโโ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ
โ Supabase โ โ Python AI Agent โ
โ - PostgreSQL DB โ โ (uAgents) โ
โ - Authentication โ โ - ASI:One API โ
โ - Real-time subs โ โ - MeTTa reasoning โ
โ - Row Level โ โ - Gap detection โ
โ Security (RLS) โ โ - Quiz generation โ
โ - Vector storage โ โ - Graph analysis โ
โโโโโโโโโโโโฌโโโโโโโโโโโ โโโโโโโโโโโโฌโโโโโโโโโโโโ
โ โ
โ HTTP + WebSocket โ REST API
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Web Application โ
โ (Next.js + React) โ
โ - Authentication โ
โ - Graph visualization (React Flow) โ
โ - Real-time toast notifications โ
โ - AI Chat Assistant โ
โ - Analytics & Insights โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- Capture: User highlights text โ Extension captures sentence
- AI Processing: Optional agent call for instant explanation (ASI:One + MeTTa)
- Auto-Sync: Sentence immediately synced to Supabase
- Graph Generation: Website processes sentences into graph nodes/edges
- Real-Time Updates: WebSocket subscriptions update graph live
- Gap Detection: Background agent analyzes graph every 5 minutes
- Proactive Nudges: Insights stored โ Real-time notifications displayed
- Adaptive Learning: User takes quiz โ XP updated โ Graph strengthened
profiles -- User profiles (linked to auth.users)
โโโ id (UUID, PK)
โโโ email
โโโ xp
โโโ streak_days
โโโ created_at
captured_sentences -- Raw captured sentences
โโโ id (UUID, PK)
โโโ user_id (FK โ profiles)
โโโ sentence
โโโ terms[]
โโโ context
โโโ asi_extract (JSONB)
โโโ embedding (vector(1536)) -- For future RAG
โโโ timestamp
graph_nodes -- Processed nodes for visualization
โโโ id (TEXT, PK)
โโโ user_id (FK โ profiles)
โโโ type (topic | sentence)
โโโ label
โโโ quiz_completed (BOOLEAN)
โโโ metadata
graph_edges -- Relationships between nodes
โโโ id (TEXT, PK)
โโโ user_id (FK โ profiles)
โโโ source_id (FK โ graph_nodes)
โโโ target_id (FK โ graph_nodes)
โโโ weight
โโโ type
user_sessions -- Multi-turn chat sessions
โโโ id (UUID, PK)
โโโ user_id (FK โ profiles)
โโโ session_data (JSONB)
โโโ created_at
insights -- Proactive nudges & knowledge gaps
โโโ id (UUID, PK)
โโโ user_id (FK โ profiles)
โโโ insight_type (gap_detected | quiz_suggested | etc.)
โโโ content
โโโ metadata (JSONB)
โโโ is_read
โโโ created_at- Framework: WXT 0.18.x (Manifest V3)
- UI: React 18 + TypeScript
- NLP: compromise.js for term detection
- Storage: Chrome Storage API
- Auth: Supabase JS Client
- Build: Vite
- Framework: Next.js 14 (App Router)
- UI: React 18 + TypeScript + Tailwind CSS
- Graph: React Flow for visualization
- Database: Supabase (PostgreSQL + pgvector)
- Auth: Supabase Auth with SSR
- Real-time: Supabase Realtime subscriptions
- Deployment: Vercel-ready
- Framework: uAgents (Python)
- AI: ASI:One API (asi1-mini, asi1-graph)
- Reasoning: MeTTa (Hyperon)
- Database: Supabase Python Client
- REST API: Built-in uAgents REST endpoints
fluent/
โโโ agent/ # AI Agent (Python)
โ โโโ mailbox_agent.py # Main agent with REST endpoints
โ โโโ requirements.txt # Python dependencies
โ โโโ .env # Environment variables (ASI:One API key)
โ โโโ README.md # Agent documentation
โ
โโโ extension/ # Browser Extension
โ โโโ components/ # React components
โ โ โโโ Popover.tsx # Term definition popover
โ โ โโโ QuizModal.tsx # Adaptive quiz modal (NEW!)
โ โโโ entrypoints/ # Extension entry points
โ โ โโโ background.ts # Background worker + gap detection (UPDATED!)
โ โ โโโ content/ # Content script
โ โ โโโ popup/ # Extension popup + insights (UPDATED!)
โ โโโ utils/ # Utility functions
โ โ โโโ auth.ts # Authentication
โ โ โโโ supabase.ts # Supabase client
โ โ โโโ syncService.ts # Auto-sync logic (UPDATED!)
โ โ โโโ graphExport.ts # Graph generation
โ โโโ wxt.config.ts # WXT configuration
โ
โโโ website/ # Web Application
โ โโโ app/ # Next.js app directory
โ โ โโโ login/ # Login page
โ โ โโโ signup/ # Signup page
โ โ โโโ auth/ # Auth callback
โ โ โโโ page.tsx # Main graph page
โ โโโ components/ # React components
โ โ โโโ GraphViewer.tsx # Graph viz + real-time subs (UPDATED!)
โ โ โโโ ToastNotification.tsx # Real-time nudges (NEW!)
โ โ โโโ GraphChat.tsx # AI chat assistant (NEW!)
โ โ โโโ TopicNode.tsx # Graph node components
โ โ โโโ SentenceNode.tsx
โ โโโ lib/ # Utilities
โ โ โโโ supabase.ts # Supabase client
โ โ โโโ graphStorage.ts # Data access layer
โ โ โโโ graphTypes.ts # TypeScript types
โ โโโ next.config.ts # Next.js config
โ
โโโ supabase/ # Supabase Configuration (NEW!)
โ โโโ migrations/
โ โโโ 001_initial_schema.sql # Database schema
โ
โโโ SETUP_GUIDE.md # Complete setup guide
โโโ SUPABASE_SETUP.md # Database schema & setup (NEW!)
โโโ VECTOR_RAG_TODO.md # Future RAG implementation (NEW!)
โโโ README.md # This file
- Authentication: Supabase Auth with email/password
- Authorization: Row Level Security (RLS) policies
- Data Isolation: Users can only access their own data
- API Keys: Client-safe
anonkey with RLS protection - HTTPS: Required for production
cd website
vercelAdd environment variables in Vercel dashboard.
cd extension
pnpm run build
pnpm run zipUpload to Chrome Web Store Developer Dashboard.
Terminal 1 (Website):
cd website
npm run devTerminal 2 (Extension):
cd extension
pnpm run devTerminal 3 (Optional - Supabase local):
npx supabase startWebsite (.env.local):
NEXT_PUBLIC_SUPABASE_URL=your-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-keyExtension (.env):
VITE_SUPABASE_URL=your-url
VITE_SUPABASE_ANON_KEY=your-key
VITE_WEBSITE_URL=http://localhost:3001- Complete Setup Guide - Step-by-step setup instructions
- Supabase Setup - Database schema and configuration
- Extension README - Extension-specific documentation
- Website README - Website-specific documentation
- Supabase authentication
- Manual sync from extension to cloud
- Real-time graph updates
- User-specific data isolation
- Interactive graph visualization
- Sentence capture and tagging
- Context-aware term detection
- AI-powered insights and summaries
- Collaborative features (share graphs)
- Mobile app (React Native)
- Export formats (PDF, PNG, JSON)
- Advanced filtering and search
- Spaced repetition system
- Browser history integration
- Multi-language support
- Custom glossaries
- Social features
- API for third-party integrations
- Desktop app (Electron)
- Voice capture
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
MIT License - See LICENSE for details
See SETUP_GUIDE.md - Part 6: Troubleshooting for common issues and solutions.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@fluent.example.com
- Built with Next.js, React, and Supabase
- Graph visualization powered by React Flow
- Extension framework by WXT
- NLP by compromise.js
Start building your knowledge graph today! ๐