Tatami is a desktop GUI client for Jujutsu (jj). The active app is built with Electrobun + Svelte 5, with Rust jj-lib integration exposed through a Rust Node-API addon.
- Revset-driven revision graph (lane assignment, trunk detection, related-commit dimming)
- File diff viewer (hunks/lines, syntax highlighting, line numbers)
- Keyboard-first navigation (vim-ish movement + command palette)
- Live updates via filesystem watching
- Persists projects + UI layout state in the Electrobun app data store
apps/desktop/— active Electrobun + Svelte desktop appapps/desktop/src/mainview/— Svelte UIapps/desktop/src-electrobun/— Bun/Electrobun backend and shared RPC typesapps/desktop/native/tatami-jj-native/— Rust Node-API addon wrappingjj-libassets/— screenshots and other repo assets
Prereqs: bun, Rust toolchain, and jj.
bun install
bun run devKeep dev commands short and prefer putting release notes in commit bodies.
- Release notes: add a
## RN:section to commit bodies (optionalRN-ID:line for stable dedupe)
# App checks (from apps/desktop/)
cd apps/desktop
bun run typecheck
bun run lint
bun run format
# Package the desktop app
bun run buildRelease automation is being updated for the Electrobun app. Existing Tauri-era CI is not authoritative for the new app.
- Svelte components call typed Electrobun RPC helpers in
apps/desktop/src/mainview/rpc.ts - The Bun backend handles RPC in
apps/desktop/src-electrobun/bun/index.ts - Native jj operations are loaded from
apps/desktop/native/tatami-jj-native - Backend services use
jj-libfor repo access and watchers for live refresh
This repo uses Fiberplane’s fp CLI for local-first issue tracking (configured in .fp/config.toml, prefix TAT).
fp issue list
fp tree
fp context TAT-sfsbCLAUDE.md— architecture notes + useful dev commandsapps/desktop/README.md— app-specific notes
MIT. See LICENSE.
