Skip to content

IPC commands

The UI talks to the core engine over Tauri IPC, passing lightweight DTOs and state diffs only. Heavy I/O always runs on a blocking thread pool so the UI thread is never blocked.

Events pushed the other way: workspace://changed (debounced 400 ms), ledger://appended (the ledger grew — the notification layer reads the tail), and terminal://output|exit|sessions (PTY streams; output carries a sequence number, sessions covers pop-out switching).

System and workspace lifecycle system_status · git_available · initialize_project · probe_init_target · open_workspace · close_workspace · recent_workspaces · remove_recent_workspace · draft_legacy_adoption · adopt_legacy_project · scaffold_bootstrap

Tasks list_tasks · create_task · edit_task · delete_task · update_task_status · set_task_archived · archive_task_skipping_specs (archive while giving up named requirements whose spec edits a newer task already folded — the escape hatch behind the fold-conflict dialog) · archive_verified_done_tasks · auto_archive_sweep · set_task_verification · assign_task

Specs specs_overview · spec_content · pending_spec_folds

Workflow and milestones workflow_status · advance_phase · confirm_gate · adopt_workflow · add_milestone · set_milestone_done · set_milestone_verified · remove_milestone

Templates list_templates · get_template · save_custom_template · delete_custom_template

Handoff, ledger, context read_handoff · generate_handoff_now · recent_events · ledger_history · ledger_since · add_ledger_note · get_context · edit_context (description, goals, boundaries and domain only — the name and everything else in the file stay out of reach)

Settings, modules, agent access get_workspace_settings · set_workspace_settings · modules_get · module_set_enabled · agent_access_status · agent_access_set_enabled · agent_access_set_tool · agent_access_set_tools · agent_access_set_all_tools · agent_access_resolve_restored · agent_mcp_status · agent_mcp_repair

Backup export_backup · import_backup

Registered but unused list_secret_names · set_secret · delete_secret — these remain in the handler table because the encrypted local store they operate on is still exercised by backup export. No part of the app calls them and there is no user interface behind them; they are listed here only so this inventory stays an exact mirror of the registration list.

Search index build_search_index · search_index · search_index_status

Workspace assets and doctor workspace_assets_status · workspace_assets_upgrade · run_doctor

Teams and exchange teams_list · team_create · team_rename · team_delete · team_add_member · team_remove_member · team_set_prime · team_rebind_workspace · team_set_layout · team_add_edge · team_remove_edge · team_set_edge_auto_route · team_route_delivery · exchange_list · exchange_get · exchange_publish

The team graph lives at app level and these commands are not module-gated; the three exchange_* ones act on a workspace and are refused when its team module is off.

Terminal terminal_launch · terminal_revive · terminal_write · terminal_resize · terminal_close · terminal_list · terminal_read_buffer · terminal_shutdown · terminal_set_popped_out

Agent catalog agent_catalog_list · agent_catalog_save · agent_catalog_delete

Desktop integration open_folder — raises the OS file manager on a folder, behind the path shown in the app. Directories only, checked against the filesystem: the same call handed a file would launch its default application, so the check is what keeps this from being a way to run a program.

Application lifecycle quit_app — where the close button goes. On macOS it sends AppKit’s terminate:, because tearing down the last window and then the process is the one shutdown sequence that crashes there; Windows and Linux exit directly, which is what closing the last window already did.

update_preflight · update_relaunch — the app’s half of the in-app update; checking, downloading, verifying and installing belong to the updater plugin. The preflight reports whether this is the Windows portable build (no in-app install — its installer would add a second copy), whether the bundled hub is held open by another process (Windows will not replace a running executable), and how many terminal sessions an install would end. The relaunch starts the new version after a macOS or Linux install — through terminate: on macOS, for the same reason as quit_app; the Windows installer restarts the app itself.