Skip to content

Repository files navigation

IdeaNote

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 workbench: workspace explorer, IdeaSketch canvas, and AI agent

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.

Features

  • Workspace and single-file modes — Open any local folder as a workspace, or open a .is / .md file 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.

Getting Started

Prerequisites

  • Node.js 18+
  • Rust stable toolchain
  • Tauri v2 dependencies (setup guide)

Install

npm install

Development

# Frontend only (opens at http://localhost:1420)
npm run dev

# Full desktop app (Tauri + Vite)
npm run tauri dev

Build

# Frontend production build
npm run build

# Desktop app bundle
npm run tauri build

Tests

# Rust backend tests
cd src-tauri && cargo test

# Frontend contract tests
node --test tests/*.test.mjs

File Formats

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.

Tech Stack

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

Project Structure

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

Contributing

Contributions are welcome. Feel free to open issues and pull requests.

License

MIT

About

Sketch your presentations — a desktop slide editor powered by Excalidraw, built with Tauri + React.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages