A desktop AI-Powered writing app for Typst and MarkDown
- Live preview. Edit on the left, see the rendered PDF on the right. View → Toggle Sidecar Preview (⌘⇧P).
- Monaco editor with a Typst language mode, slash-command palette, and Cmd+S snapshots so you can walk back to any earlier save.
- Markdown mode. Open
.mdand the app converts it to a hidden.typso you get the same live preview without leaving Markdown. - LSP features from tinymist: diagnostics, hover, completion, go-to.
- File tree with create/rename/delete, watched for external changes.
- PDF export via the current file's Typst world.
Prerequisites: Rust (stable), Node 20+, and Xcode command-line tools on macOS.
npm install
npm run tauri dev # dev build + hot reload
npm run tauri build # production app bundleA bundled tinymist binary is resolved at startup; no separate install
needed.
npm run test:run # frontend (Vitest, jsdom)
cargo test --manifest-path src-tauri/Cargo.toml # Rust side84 frontend tests and 61 Rust tests at last count.
src/ React app
components/ Editor, Preview, FileExplorer, Layout, FileHistory
stores/ Zustand editor store
hooks/ usePreview, etc.
src-tauri/ Rust backend
src/lib.rs commands, menu, compile actor
src/preview_sidecar.rs tinymist preview process manager
src/lsp_bridge.rs LSP WebSocket bridge to tinymist
Early, single-developer project. Expect rough edges; file issues freely.