Skip to content

bunhine0452/CueNote

Repository files navigation

CueNote Logo

AI-Powered Local-First Markdown Note-Taking App

Features β€’ Installation β€’ Usage β€’ Architecture β€’ Contributing β€’ License

License Electron Vue FastAPI

πŸ‡°πŸ‡· ν•œκ΅­μ–΄ | πŸ‡ΊπŸ‡Έ English


🌟 What is CueNote?

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.

CueNote Demo
AI-powered note editing in CueNote


✨ Features

πŸ“ Rich Markdown Editor

  • 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

πŸ€– AI Writing Assistant

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

AI Writing Assistance Demo
Real-time AI text analysis and proofreading

πŸ’¬ AI Chatbot (Tool Calling)

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 Demo
AI Chatbot with tool calling β€” listing all notes

πŸ”— GitHub Integration

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

🌐 Multi-Environment

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

πŸ•ΈοΈ Knowledge Graph

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

Knowledge Graph Demo
AI-powered knowledge graph with automatic clustering

πŸ“… Smart Calendar

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

Smart Calendar Demo
Calendar dashboard with today focus and schedule overview

πŸ“„ Document & Image Processing

  • 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

Document Processing Demo
Extracting text from images and converting to Markdown

πŸ”Œ MCP (Model Context Protocol) Support

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

🎨 Customization

AI Model Settings

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

Appearance & Fonts

  • 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%

Shortcuts

  • Custom shortcuts β€” Freely assign shortcuts for key features like AI menu
  • Multiple shortcuts β€” Register multiple shortcuts per function

Internationalization

  • πŸ‡°πŸ‡· Korean / πŸ‡ΊπŸ‡Έ English fully supported

πŸ”’ Privacy-First Design

  • 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

πŸš€ Installation

Prerequisites

  • Node.js 18+ and pnpm
  • Python 3.11+
  • Ollama (optional, for local LLM)

Quick Start

  1. Clone the repository

    git clone https://github.com/Hyun00505/CueNote.git
    cd CueNote
  2. Install JavaScript dependencies

    pnpm install
  3. Install Python dependencies

    pip install -r apps/core/requirements.txt
  4. Run the application

    # Start everything together
    pnpm dev:all
    
    # Or run separately:
    pnpm dev:core     # Start FastAPI backend
    pnpm dev:desktop  # Start Electron app
  5. Access the app

    • Desktop app launches automatically
    • API available at http://127.0.0.1:8787

Optional: Setup Ollama for Local AI

  1. Install Ollama
  2. Pull a model (recommended: llama3.2 or qwen2.5)
    ollama pull llama3.2
  3. Start Ollama server
    ollama serve

Optional: Setup Cloud AI

Provider Get API Key
Google Gemini Google AI Studio
OpenAI OpenAI Platform
Anthropic Anthropic Console

Enter your API key in CueNote Settings.


πŸ“– Usage

Writing Notes

  • Create a new note with the + button in the sidebar
  • Notes are saved as .md files in your vault folder
  • Use Markdown syntax or the rich text toolbar

AI Writing Tools

  • 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

AI Chatbot

  • 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

GitHub Sync

  • Connect your GitHub token in Settings
  • Select or create a repository
  • Use the Git panel to view changes, stage, commit, and push

Schedule Management

  • 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

Importing Documents

  • Drag & drop PDF files or images into the editor
  • Enter a URL to import web page content
  • Enable handwriting mode for handwriting recognition

πŸ—οΈ Architecture

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

Tech Stack

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

🀝 Contributing

We welcome contributions! Here's how you can help:

Ways to Contribute

  • πŸ› 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

Development Setup

  1. Fork and clone the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Run tests and linting
  5. Commit with clear messages: git commit -m 'Add amazing feature'
  6. Push and open a Pull Request

Code Style


πŸ“‹ Roadmap

  • 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

πŸ“„ License

CueNote is open-source software licensed under the MIT License.


Acknowledgments

  • 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 ❀️

⭐ Star us on GitHub

About

AI-Powered Local-First Markdown Note-Taking App

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors