Desktop App
claustre includes a native macOS desktop application built with Tauri v2. It provides the same project and task management features as the TUI in a windowed GUI, sharing the same SQLite database and library code.
Launching
claustre app
This locates the claustre-app binary (installed alongside the
main claustre binary) and launches the desktop window.
Features
The desktop app mirrors the TUI dashboard capabilities:
- Project management — add, remove, and browse projects
- Task management — create, edit, reorder, launch, kill, and delete tasks with full field support (title, description, mode, base branch, push mode, review loop)
- Subtasks — add and manage ordered sub-steps for tasks
- Task launching — launch tasks to create sessions with git worktrees and start Claude
- Split pane sessions — each session opens with a Shell pane (left) + Claude pane (right), with dynamic splitting and focus switching
- Session monitoring — view active sessions with status indicators, CI badges, and git diff stats
- Task filter — filter tasks by title with live results (
/) - Command palette — searchable action menu (
Ctrl+P) - Help overlay — keyboard shortcuts reference (
?) - Skills panel — find, install, remove, and update Claude Code skills (
i) - Configure wizard — check and apply recommended Claude Code permissions (
c) - Statistics — view project-level stats and external Claude sessions
- Rate limits — monitor current API usage in the title bar
- Status bar — attention counter for tasks needing action
- Auto-refresh — the UI polls the database every 2 seconds to reflect changes from hooks and other processes
Keyboard Shortcuts
Dashboard — Navigation
| Key | Action |
|---|---|
j / ↓ | Select next task |
↑ | Select previous task |
Enter | Go to session terminal (if task has one) |
Ctrl+J / Ctrl+K | Switch tabs |
Ctrl+P | Command palette |
/ | Filter tasks by title |
? | Help overlay |
Esc | Close overlays / clear filter |
Dashboard — Actions
| Key | Action |
|---|---|
n | New task |
e | Edit selected task (pending/draft) |
l | Launch selected task |
r | Mark done (working/in_review) |
k | Kill session |
d | Delete task |
v | View task details |
o | Open PR in browser |
a | Add project |
s | Show stats |
i | Skills panel |
c | Configure permissions |
Session Tab
| Key | Action |
|---|---|
Ctrl+H | Focus previous pane |
Ctrl+L | Focus next pane |
Ctrl+R | Split right (new shell pane) |
Ctrl+B | Split down (new shell pane) |
Ctrl+W | Close focused pane |
Ctrl+D | Return to dashboard |
Ctrl+J / Ctrl+K | Switch tabs |
Architecture
The desktop app is a separate Cargo workspace member at app/src-tauri/.
It depends on the claustre library crate, reusing all shared modules
(store, config, session, skills, scanner, configure) rather than duplicating logic.
claustre (workspace root)
├── src/lib.rs # Shared library
├── src/main.rs # CLI + TUI binary
└── app/
├── src/ # Frontend (HTML, CSS, JS)
│ ├── index.html
│ ├── styles.css
│ └── main.js
└── src-tauri/ # Tauri backend (Rust)
├── Cargo.toml
└── src/lib.rs # IPC commands IPC Commands
The Tauri backend exposes IPC commands that the frontend calls via
window.__TAURI__.core.invoke(). Each command wraps a core
function that operates on the shared Store (protected by a
Mutex):
| Command | Purpose |
|---|---|
list_projects | List all projects with session/task counts |
create_project | Register a new project |
delete_project | Remove a project and its data |
list_tasks | List tasks for a project |
create_task | Create a new task |
update_task | Edit an existing task |
delete_task | Delete a task |
reorder_tasks | Swap sort order of two tasks |
mark_task_done | Transition a task to done and tear down its session |
list_subtasks | List subtasks for a task |
create_subtask | Add a subtask |
delete_subtask | Remove a subtask |
launch_task | Create a session and start Claude in embedded PTY |
kill_session | Tear down a session and reset the task |
pty_spawn_shell | Spawn a shell PTY in the session worktree |
pty_write | Send keystrokes to a PTY pane |
pty_resize | Resize a PTY pane |
get_project_stats | Project statistics |
get_rate_limit | Current API usage |
list_sessions | Active sessions for a project |
list_installed_skills | List installed skills (global or project) |
find_skills_search | Search skills registry |
add_skill_package | Install a skill by package name |
remove_skill | Uninstall a skill |
update_all_skills | Update all installed skills |
read_skill_content | Read SKILL.md for detail view |
check_permissions | Check Claude Code permissions alignment |
apply_permissions | Apply recommended permissions |
list_external_sessions | Scan for non-claustre Claude sessions |
get_version | Get claustre version string |
Building
# Build the desktop app
cargo build -p claustre-app
# Run tests
cargo test -p claustre-app
# Build the entire workspace
cargo build --workspace
The Tauri app requires the same prerequisites as the TUI. On first build,
Cargo downloads Tauri dependencies automatically. DevTools are only opened
in debug builds (#[cfg(debug_assertions)]); release builds
do not include them.