Your notes, your server,
your AI assistant

A self-hosted Google Keep-style note-taking app with AI-powered enrichment, conversational chat, voice I/O, and a mobile app.

Python React React Native Docker AI-Powered
localhost:8095
🌙
💡 Notes
📦 Archive
🗑 Trash
💬 AI Chat
🕐 History
☑️ Tasks
⚙️ Admin
Labels
General
Work
Urgent
Ideas
Take a note...
☑️ 🎨 🎤 Save
📌
Meeting Notes
Discuss Q2 roadmap with the team. Review sprint progress and blockers...
Work Mar 18
Recipe: Pasta Carbonara
Ingredients: spaghetti, eggs, pecorino romano, guanciale, black pepper...
🖼️ carbonara.jpg
Mar 17
🔗 FastAPI Documentation
FastAPI - Modern Python web framework
High performance, easy to learn, fast to code, ready for production...
Ideas Mar 16
Project Ideas
- Home automation dashboard
- Budget tracker with AI
- Garden watering system
Ideas Mar 15
Workout Plan
Mon: Upper body
Tue: Cardio
Wed: Lower body
Thu: Rest...
Mar 14
⚠ Needs context
Remember this
Call dentist tomorrow at 3pm
Mar 13
💬 AI Chat
What meetings do I have this week?
Based on your notes, you have a Q2 roadmap meeting scheduled. Your "Meeting Notes" note mentions discussing sprint progress and blockers with the team.
Summarize my project ideas
You have 3 project ideas noted:
1. Home automation dashboard
2. Budget tracker with AI
3. Garden watering system
Ask about your notes... 🎤 ➤

Everything you need, nothing you don't

All features run on your hardware. No cloud accounts, no subscriptions, no data leaving your network.

📝

Rich Note-Taking

Create, pin, archive, color-code, and label notes in a responsive masonry grid. Markdown rendering, media attachments up to 50MB, and drag-and-drop uploads.

🔗

AI Link Enrichment

Paste a URL and get an automatic title, summary, and thumbnail preview. AI fetches and parses the page so you don't have to.

💬

AI Chat with RAG

Conversational AI that searches your notes using vector similarity. Ask questions about your notes and get contextual answers.

🎤

Voice Input & TTS

Record audio and transcribe to text. Listen to AI chat responses with text-to-speech. Full voice round-trip support.

🏷️

Smart Labels

Organize with labels and colors. AI suggests labels automatically based on note content, including proposing new ones.

🕐

Note History

Automatic edit snapshots with one-click restore. See who changed what and when — both user and AI edits are tracked.

☑️

Google Tasks Sync

Two-way sync with Google Tasks via OAuth. Due-date notifications and push alerts for upcoming deadlines.

📱

Mobile App

React Native (Expo) Android app with full note management, AI chat, voice features, and offline-ready architecture.

🔒

Multi-User Auth

JWT-based authentication with admin/user roles. First user becomes admin. Can be disabled for single-user setups.

Duplicate Detection

AI warns about duplicate notes and content that needs more context. Quality checks run automatically in the background.

🎨

Three Themes

Light, Dim, and Dark modes with 11 note colors. Smooth transitions and a clean, Google Keep-inspired aesthetic.

🔌

Pluggable AI

Works with Gemini, OpenAI, Ollama, LM Studio, Groq, Together, and OpenRouter. Or run without AI entirely.

Pick your vibe

Three carefully crafted themes that look great at any hour.

💡 Notes
📦 Archive
💬 AI Chat
☑️ Tasks
Shopping List
Milk, eggs, bread...
Travel Plans
Book flights for June
Quick Note
Remember to update docs
Fitness Goals
Run 5k three times/week

Built with solid foundations

Backend
Python 3.12 FastAPI SQLAlchemy SQLite Alembic
Frontend
React 18 TypeScript Vite TanStack Query Axios
Mobile
React Native Expo 52 TypeScript React Navigation
Infrastructure
Docker Compose Nginx Alembic Migrations JWT Auth
AI Providers
Google Gemini OpenAI Ollama LM Studio Groq Together OpenRouter

Up and running in 60 seconds

Terminal
$ git clone https://github.com/Sprooty/NoteTaker.git
$ cd NoteTaker
$ cp .env.example .env
$ docker-compose up --build -d
Creating network "notetaker_default"
Building backend
Building frontend
Running migrations
NoteTaker is ready at http://localhost:8095
No AI? No problem. NoteTaker is fully functional without any AI provider. Add one later from the admin settings page.
Google Keep migration? Export from Google Takeout and run the included import script.