AI-Powered Local-First Markdown Note-Taking App
Features β’ Installation β’ Usage β’ Architecture β’ Contributing β’ License
π°π· νκ΅μ΄ | πΊπΈ English
CueNote is an open-source, privacy-first desktop Markdown note-taking app with built-in AI capabilities. Built with Electron + Vue 3 frontend and a FastAPI backend, it supports a wide range of AI providers β from local LLMs (Ollama) to cloud AI (Gemini, OpenAI, Anthropic Claude).
Unlike cloud-based note apps, CueNote stores all your data in local SQLite databases and Markdown files. You can optionally sync to the cloud via GitHub integration.
AI-powered note editing in CueNote
- WYSIWYG editing β Tiptap-based rich text editor
- Full Markdown support: tables, checklists, code blocks, image resizing, and more
- File-based Vault system for organizing notes
- Real-time preview and editing
Select text and right-click or press shortcuts (Alt+A, /) to open the AI context menu:
| Feature | Description |
|---|---|
| Summarize | Condense long notes into key points |
| Translate | Translate to 7+ languages (preserving Markdown formatting) |
| Polish | Improve sentences in professional, casual, or academic tones |
| Expand | Elaborate content with more detail |
| Condense | Shorten while preserving core meaning |
| Proofread | Fix spelling, grammar, and punctuation (Korean & English) |
| Custom Prompt | Freely request any AI editing or writing task |
- Real-time Streaming β AI responses appear as they are generated
- Inline Diff β Compare AI edits in diff format, accept or reject changes
- Proofread Panel β Review errors one by one with individual apply/skip
Real-time AI text analysis and proofreading
A conversational AI assistant that automatically executes app functions:
- 17+ built-in tools β Create/read/save/delete notes, search, manage schedules, query TODOs, and more
- Smart Search β AI understands meaning to find relevant notes
- Auto-organize Notes β AI analyzes content and suggests folder structure
- Web Search β Real-time web search via DuckDuckGo
- Current Note Awareness β Understands the currently open note and performs related tasks
- Multi-step Execution β Handles complex requests through multiple tool calls automatically
AI Chatbot with tool calling β listing all notes
Sync your notes directly with GitHub repositories:
- Clone & Pull β Fetch GitHub repositories locally
- Git Status β View changed files, stage and unstage
- Commit & Push β Commit selected files and push
- AI Commit Messages β AI analyzes changes and auto-generates commit messages
- Create Repositories β Create new GitHub repos from within the app
- Trash Management β Restore or permanently delete files
Easily switch between multiple workspaces:
- Local Environment β Use local folders as vaults
- GitHub Environment β Use GitHub repositories as vaults
- One-click Switching β Instantly switch between environments
- Independent file management per environment
AI analyzes relationships between notes and visualizes them:
- AI Clustering β Automatically group notes by content
- Related Note Discovery β Find notes related to the current one
- Graph Explorer β Interactive D3.js-based graph visualization
- Graph Search β Search for notes within the graph
- Cluster Filtering β View specific clusters only
- Similarity Control β Adjust connection sensitivity via slider
AI-powered knowledge graph with automatic clustering
Automatically extract schedules from notes and manage them:
- AI Schedule Extraction β Auto-detect dates, times, and events from notes
- Relative Date Parsing β Understand expressions like "tomorrow", "next Monday"
- Calendar Views β Day / Week / Month / Year views
- Today Focus Card β See today's schedule at a glance
- Quick Add β Add schedules inline
- Popover Details β Click schedules for quick detail view
Calendar dashboard with today focus and schedule overview
- PDF Text Extraction β Convert PDF content to Markdown
- OCR β Extract text from images using EasyOCR or Gemini Vision
- Handwriting Recognition β Recognize handwriting with TrOCR
- URL Scraping β Automatically convert web pages to Markdown notes
- AI Auto-formatting β Clean up extracted text into well-structured Markdown
Extracting text from images and converting to Markdown
Connect external tools to extend AI capabilities:
- MCP Server Management β Register, start, and stop external MCP servers
- Auto-discovery β Automatically detect tools from connected servers
- Tool Calling β Execute MCP tools via natural language in the AI chatbot
- Built-in Filesystem Server β Filesystem access MCP server included
Freely switch between 4 AI providers:
| Provider | Example Models | Features |
|---|---|---|
| Ollama | Llama 3, Qwen 2.5, etc. | Fully offline, free |
| Google Gemini | Gemini 2.0 Flash, Gemini 3 Flash, etc. | Fast and powerful, free tier |
| OpenAI | GPT-4o, GPT-4.1, o3, etc. | Best general-purpose |
| Anthropic | Claude Sonnet 4.5, Claude Haiku, etc. | Strong at long context |
- Dark / Light theme toggle
- Custom fonts β 30+ built-in fonts + add your own font files
- Category fonts β Set Sans, Serif, and Mono fonts separately
- UI Scale β Adjust from 50% to 200%
- Custom shortcuts β Freely assign shortcuts for key features like AI menu
- Multiple shortcuts β Register multiple shortcuts per function
- π°π· Korean / πΊπΈ English fully supported
- 100% Local Storage β All notes stored in local SQLite database
- Local LLM Support β Use Ollama for completely offline AI
- Optional Cloud AI β Cloud AI only connects when you choose
- No Telemetry β Zero usage data collected
- Node.js 18+ and pnpm
- Python 3.11+
- Ollama (optional, for local LLM)
-
Clone the repository
git clone https://github.com/Hyun00505/CueNote.git cd CueNote -
Install JavaScript dependencies
pnpm install
-
Install Python dependencies
pip install -r apps/core/requirements.txt
-
Run the application
# Start everything together pnpm dev:all # Or run separately: pnpm dev:core # Start FastAPI backend pnpm dev:desktop # Start Electron app
-
Access the app
- Desktop app launches automatically
- API available at
http://127.0.0.1:8787
- Install Ollama
- Pull a model (recommended:
llama3.2orqwen2.5)ollama pull llama3.2
- Start Ollama server
ollama serve
| Provider | Get API Key |
|---|---|
| Google Gemini | Google AI Studio |
| OpenAI | OpenAI Platform |
| Anthropic | Anthropic Console |
Enter your API key in CueNote Settings.
- Create a new note with the + button in the sidebar
- Notes are saved as
.mdfiles in your vault folder - Use Markdown syntax or the rich text toolbar
- Select text β right-click or press
Alt+A//to open AI context menu - Choose from summarize, translate, polish, expand, condense, or proofread
- Results appear as inline diffs β accept or reject
- Click the chatbot icon at the bottom of the sidebar
- Use natural language: "Create a new note", "Add a meeting tomorrow at 3pm", "Find project-related notes"
- AI automatically picks the right tools and shows results
- Connect your GitHub token in Settings
- Select or create a repository
- Use the Git panel to view changes, stage, commit, and push
- Write schedules naturally in notes (e.g. "Team meeting on Friday at 3pm")
- Click AI Schedule Extract to auto-detect
- View and manage in the calendar
- Drag & drop PDF files or images into the editor
- Enter a URL to import web page content
- Enable handwriting mode for handwriting recognition
CueNote/
βββ apps/
β βββ core/ # FastAPI Backend
β β βββ app/
β β β βββ routers/ # API Endpoints
β β β β βββ ai.py # AI features (summarize, translate, polish, etc.)
β β β β βββ chatbot.py # AI Chatbot (17+ tool calls)
β β β β βββ github.py # GitHub integration
β β β β βββ graph.py # Knowledge Graph
β β β β βββ mcp.py # MCP server management
β β β β βββ schedules.py # Schedule management
β β β β βββ environment.py # Multi-environment
β β β β βββ vault.py # File/Note management
β β β β βββ llm.py # LLM provider management
β β β β βββ todos.py # TODO management
β β β βββ ollama_client.py # Ollama API client
β β β βββ gemini_client.py # Gemini API client
β β β βββ openai_client.py # OpenAI API client
β β β βββ anthropic_client.py # Anthropic API client
β β β βββ mcp_client.py # MCP client manager
β β β βββ web_extractor.py # Web content extractor
β β β βββ ocr_client.py # OCR engine (EasyOCR/TrOCR/Gemini Vision)
β β β βββ db.py # SQLite database
β β βββ data/ # SQLite database files
β β
β βββ desktop/ # Electron + Vue Frontend
β βββ main.js # Electron main process
β βββ renderer/
β βββ src/
β βββ components/
β β βββ AIChatbot.vue # AI Chatbot UI
β β βββ AIContextMenu.vue # AI Context Menu
β β βββ AIInlineDiff.vue # AI Inline Diff
β β βββ AIProofreadPanel.vue # Proofreading Panel
β β βββ EditorView.vue # Main Editor
β β βββ GraphView.vue # Graph View
β β βββ DashboardView.vue # Dashboard (Calendar)
β β βββ SettingsView.vue # Settings
β β βββ sidebar/ # Sidebar (Files, Git, Environment)
β β βββ graph/ # Graph components
β β βββ dashboard/ # Calendar components
β β βββ toolbar/ # Editor toolbar
β β βββ settings/ # Settings tabs (AI, Appearance, OCR, MCP, Fonts, Shortcuts)
β β βββ editor/ # Editor helper components
β βββ composables/ # Vue Composables
β βββ useGitHub.ts # GitHub integration
β βββ useGraph.ts # Graph management
β βββ useChatbot.ts # Chatbot management
β βββ useEnvironment.ts # Environment management
β βββ useSchedule.ts # Schedule management
β βββ useSettings.ts # Settings management
β βββ useFonts.ts # Font management
β βββ useShortcuts.ts # Shortcut management
β βββ useI18n.ts # Internationalization (KO/EN)
β βββ useTiptapEditor.ts # Tiptap editor
β
βββ packages/
β βββ contracts/ # Shared TypeScript types & schemas
β βββ shared/ # Shared utilities
β
βββ data/ # Default vault location
| Layer | Technology |
|---|---|
| Desktop Shell | Electron 28 |
| Frontend | Vue 3, Vite, Tiptap, D3.js |
| Backend | FastAPI, SQLite |
| AI/LLM | Ollama, Google Gemini, OpenAI, Anthropic Claude |
| OCR | EasyOCR, TrOCR (Transformers), Gemini Vision |
| Tool Protocol | MCP (Model Context Protocol) |
| Version Control | GitHub API, Git CLI |
We welcome contributions! Here's how you can help:
- π Report bugs β Open an issue with detailed reproduction steps
- π‘ Suggest features β Share your ideas in discussions
- π Improve docs β Help us make documentation clearer
- π§ Submit PRs β Fix bugs or implement new features
- Fork and clone the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests and linting
- Commit with clear messages:
git commit -m 'Add amazing feature' - Push and open a Pull Request
- Frontend: ESLint + Prettier
- Backend: Black + isort
- Commit messages: Conventional Commits
- Multi AI provider support (Ollama, Gemini, OpenAI, Anthropic)
- AI Chatbot (Tool Calling)
- GitHub integration & Git sync
- Knowledge Graph & AI Clustering
- MCP (Model Context Protocol) support
- Multi-environment system
- Custom fonts & UI scale
- Internationalization (KO/EN)
- Custom shortcuts
- Plugin system
- Mobile companion app
- Real-time collaboration
- Export to various formats
CueNote is open-source software licensed under the MIT License.
- Tiptap β Headless rich text editor
- Ollama β Local LLM runtime
- FastAPI β Modern Python web framework
- EasyOCR β Ready-to-use OCR
- Electron β Cross-platform desktop apps
- D3.js β Data-driven visualizations
Made with β€οΈ
