A local-first desktop workspace for sketches, slides, and Markdown. Open a folder, edit real files, and keep an AI agent beside the canvas.
IdeaNote launches into a three-column workbench: a workspace explorer on the left, a single foreground editor in the center, and a collapsible AI agent on the right. Documents stay on disk as ordinary files — not in an app-private database.
- Workspace and single-file modes — Open any local folder as a workspace, or open a
.is/.mdfile directly. Both modes share the same editors and save pipeline. - IdeaSketch — Draw diagrams and slides on an Excalidraw canvas. Manage pages, cameras, embedded images, and fullscreen presentation from one document.
- Markdown — Edit ordinary UTF-8 Markdown with CodeMirror, GFM preview, Mermaid diagrams, and sanitized HTML fences.
- AI agent — Ask the right-hand agent to read and edit the current file. In workspace mode it can also discover, search, and — after approval — patch other files. AI can be turned off entirely.
- Real files as source of truth — Workspace metadata lives in a lazy
.ideanote/folder, created only after the first successful create or save. Opening a directory does not modify it. - Safe local persistence — Atomic writes, crash recovery, auto-save, and no silent overwrite of external changes.
- Desktop shell — Recent files, Light / Dark / System theme, and a global Settings Center.
- Node.js 18+
- Rust stable toolchain
- Tauri v2 dependencies (setup guide)
npm install# Frontend only (opens at http://localhost:1420)
npm run dev
# Full desktop app (Tauri + Vite)
npm run tauri dev# Frontend production build
npm run build
# Desktop app bundle
npm run tauri build# Rust backend tests
cd src-tauri && cargo test
# Frontend contract tests
node --test tests/*.test.mjs| Type | Extension | Notes |
|---|---|---|
| IdeaSketch | .is |
ZIP archive of Excalidraw pages. Portable and self-contained. |
| Markdown | .md |
Ordinary UTF-8 text. Not wrapped in a package. |
A workspace is a real directory you choose. User files remain in that directory; IdeaNote does not copy them into a private store. See document formats and workspace format.
| Layer | Technology |
|---|---|
| Frontend | React 19, TypeScript, Vite 7, Tailwind CSS v4 |
| Sketch canvas | @excalidraw/excalidraw 0.18 |
| Markdown | CodeMirror 6, react-markdown, Mermaid |
| Desktop | Tauri v2 |
| Backend | Rust |
| Agent | Codex app-server, with an OpenAI-compatible fallback |
src/ # React workbench (workspace, editors, agent UI)
src-tauri/ # Tauri/Rust host (files, workspace, agent runtime)
src/document_formats/ # IdeaSketch and Markdown readers/writers
src/agent/ # Agent core, tools, and skills
docs/ # Product docs and format specs
Contributions are welcome. Feel free to open issues and pull requests.
