Your Notion workspace, but it thinks back.
NotionMind is a free, voice-enabled AI agent that uses your Notion workspace as its long-term memory. Save notes by speaking, ask questions about your past work, search by meaning not keywords, trace connections across your knowledge graph, and view a stunning terminal analytics dashboard — all at zero cost.
$ python3 notionmind.py
╭─────────────────────────────────────────────────────╮
│ NotionMind — Your Notion-powered AI memory │
│ You have 26 note(s) in your brain. │
│ 🔊 Voice: online — Jenny neural voice │
│ Type help to see all commands. │
│ 💡 Use exact commands for faster, accurate results. │
╰─────────────────────────────────────────────────────╯
>: I researched about AI models today
Routing...
→ routed to: save
✓ Saved! Title: Researched on AI
Related notes in your brain:
→ New AI models (2026-03-24)
→ Free AI models (2026-03-22)
- Daily standup prep — ask "what did I work on this week?" and get an instant summary
- Bug log — save bug fixes as you go, search them months later by meaning
- Inbox research — add topics to Notion inbox, run executor, wake up to a full summary
- Study notes — save lecture notes by speaking, ask questions during revision
- Exam prep — ask "summarise everything I learned about machine learning"
- Todo list — track assignments by priority and due date
- Work log — track hours and tasks per client
- Invoice prep — search notes by client name to compile billable work
- Automated research — add topics to inbox, executor searches web and writes summaries
- Knowledge graph — AI traces connections across all your notes
- Fitness tracking — log workouts by voice, ask for monthly reflections
- Daily journal — speak your day, ask for monthly insights
| Feature | Description |
|---|---|
| 💾 Smart Save | AI auto-generates title, tags, and date from plain text |
| 🧠 Ask | AI searches your Notion notes and answers questions |
| 🤖 Natural Language Input | Groq routes plain English to the right command automatically |
| 📋 List | View all notes in a clean table |
| 🔍 Search | Filter notes by keyword |
| 📊 Stats | Streak counter, note count, top tags |
| 📥 Inbox | Add research tasks from CLI |
| ⚡ Executor | Auto-researches tasks via web search, writes results to Notion |
| 📄 Results | View completed task results in terminal |
| 🎤 Voice Input | Speak instead of type using Google Speech Recognition |
| 🔊 Voice Output | Neural TTS — Jenny (Edge TTS) online, espeak offline |
| 🗑️ Delete | Remove notes with confirmation |
| 🤖 MCP Agent | Natural language → Notion tool calls |
| ⏰ Scheduler | Set daily cron jobs to auto-run executor |
| 📅 Today | Show only today's notes at a glance |
| 📤 Export | Export notes to markdown — filter by date, tag, range, or specific note |
| 📖 Read | Read full page content of any note |
| 🌍 Multi-language | Voice in English, Hindi, Spanish, French, Tamil, Malayalam |
| 📱 Telegram Bot | Full control from your phone — all commands supported |
| ⏰ Reminders | Set reminders with date, time, voice + Telegram notifications |
| 🖼️ Image Notes | Save screenshots to Notion — file path or clipboard |
| 📊 Weekly Report | Auto-generated weekly summary saved to Notion + Telegram |
| 🤖 AI Organiser | Auto-tag, find duplicates, merge notes, auto-categorise |
| 🔄 Two-way Sync | Pull, edit locally, push back to Notion with watch mode |
| 📦 Knowledge Base | Save code snippets, terminal commands, bookmarks |
| 🧠 Knowledge Graph | AI-powered note connections — view, relate, find paths |
| 🔍 Semantic Search | Search by meaning using fastembed — finds "Kerala cricketer" even if keywords differ |
| 💡 Think | Multi-hop reasoning — traces connections across notes + graph |
| 📈 Recall | How your understanding of a topic evolved over time |
| 💬 Suggest | Auto-suggests related notes every time you save |
| 📊 Dashboard | Terminal analytics — heatmap, growth chart, topic velocity, reminders, todos |
| 🔮 Insights | AI-powered personal insights — peak productivity, knowledge gaps, fading topics |
| ✅ Todo List | Priority todos stored in Notion — due dates, complete, delete |
| Component | Tool | Cost |
|---|---|---|
| AI Brain | Groq — Llama 3.3 70B + Llama 3.1 8B | Free tier |
| Workspace | Notion API | Free |
| Semantic Search | fastembed (BAAI/bge-small-en-v1.5) | Free — runs locally |
| Web Search | DuckDuckGo (ddgs) | Free |
| Voice Input | Google Speech Recognition | Free |
| Voice Output (online) | Microsoft Edge TTS — Jenny Neural | Free |
| Voice Output (offline) | espeak + MBROLA | Free |
| Telegram Bot | python-telegram-bot | Free |
| Language | Python 3.10+ | Free |
Total monthly cost: $0
- Python 3.10+
- A free Notion account
- A free Groq account
git clone https://github.com/Jeffrin-dev/NotionMind.git
cd NotionMindpython3 -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows (WSL2)pip install notion-client==2.2.1 groq python-dotenv rich \
httpx mcp httpx-sse ddgs SpeechRecognition \
pyaudio edge-tts pygame schedule \
python-telegram-bot Pillow fastembed numpysudo apt install portaudio19-dev espeak mbrola mbrola-en1 mpg123 xclip -yNotion API key:
- Go to notion.so/my-integrations → New integration → copy the secret
Notion Database ID:
- Create a Notion database with columns:
Name,Date,Tags,Summary - Connect your integration to it
- Copy the ID from the URL
Groq API key:
- Go to console.groq.com → API Keys → Create (free)
cp .env.example .envEdit .env:
NOTION_API_KEY=secret_your_key_here
NOTION_DATABASE_ID=your_database_id_here
GROQ_API_KEY=gsk_your_key_here
TELEGRAM_BOT_TOKEN=your_token_here
TELEGRAM_CHAT_ID=your_chat_id_here
# Interactive CLI — daily notes + questions
python3 notionmind.py
# MCP Agent — natural language Notion queries
python3 agent.py
# Task Executor — processes inbox, searches web, writes to Notion
python3 executor.py
# Scheduler (cron + manual trigger)
python3 scheduler.py
# Reminder daemon
python3 reminders.py
# Telegram Bot
python3 telegram_bot.py# Morning — check what's on
python3 notionmind.py
>: dashboard # heatmap, growth, todos, reminders at a glance
>: insights # AI surfaces what matters today
# During the day — just type naturally
>: i fixed the JWT expiry bug in the auth module
>: who is Linus Torvalds # routes to ask automatically
>: Biggest open-source project # semantic search finds Linux
# Add research tasks
>: inbox
# Evening — let the agent do the research
python3 executor.pynotionmind/
├── notionmind.py # Main CLI with natural language routing
├── agent.py # MCP-powered natural language agent
├── executor.py # Autonomous task executor + weekly report
├── mcp_client.py # Notion MCP tool definitions and dispatcher
├── search.py # Free DuckDuckGo web search
├── voice.py # Voice input/output + multi-language
├── scheduler.py # Cron + Python scheduler
├── organiser.py # AI auto-organiser
├── sync.py # Two-way sync
├── knowledge.py # Knowledge base
├── brain.py # Knowledge graph + semantic search + think + recall
├── analytics.py # Terminal dashboard + AI insights
├── todos.py # Todo list stored in Notion
├── reminders.py # Reminders with voice + Telegram
├── image.py # Image notes via Notion File Upload API
├── telegram_bot.py # Full-featured Telegram bot
├── .env.example # API key template
├── .gitignore
├── README.md
├── LICENSE # MIT
├── CONTRIBUTING.md
└── CHANGELOG.md
See CONTRIBUTING.md
See CHANGELOG.md
MIT — see LICENSE
Built for the Notion MCP Challenge · March 2026 · by @Jeffrin-dev