Inkfinite is a local-first infinite canvas for drawing, wireframing, and diagramming. It runs in the browser or as a desktop app.
- Draw and edit rectangles, ellipses, lines, arrows, text, Markdown, freehand strokes, and native vector paths.
- Organize work with pages, layers, groups, nested containers, and a built-in stencil library.
- Pan, zoom, select, transform, reorder, style, undo, and redo directly on the canvas.
- Store boards in your browser or work with local, Automerge-backed
.inkfinitefiles in the desktop app. - Import static SVG, Excalidraw, and Obsidian Canvas content. Export SVG, PNG, Excalidraw, and Obsidian Canvas files.
- Inspect, query, edit, validate, and render saved files or open desktop sessions from the CLI.
- Let coding agents propose changes for review in the desktop app or apply them directly when you enable direct access.
You need Node.js 18 or newer, pnpm, and Rust 1.89. The desktop app also requires the Tauri 2 prerequisites for your OS.
To get started, clone the repo & install the front-end toolchain/deps:
pnpm installThe browser app also needs the Rust WebAssembly target and the wasm-bindgen
CLI version used by Cargo.lock:
rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli --version 0.2.126 --locked
pnpm wasm:build
pnpm dev:web # adding --open will open your browserTo start the desktop app:
pnpm tauri devTo build the CLI used by scripts and live desktop sessions:
cargo build -p inkfinite-cli --bin inkfinite
./target/debug/inkfinite --help
# Build target-named CLI and MCP release archives with checksums.
cargo xtask distSee the CLI documentation for installation paths and shell completion setup.
- Quickstart
- Editor guide
- Import and export
- Web platform
- Desktop platform
- CLI
- Agent workflows
- Architecture
I was inspired by fantastic apps in the space like Excalidraw and more recently, tldraw. tldraw offline in particular was so cool that it kicked off a lot of other agent-capable projects.
The choice to use perfect-freehand came from playing around with this react flow demo.
The SVG capabilities were inspired by this post.
Inkfinite is licensed under Apache-2.0.