Reference
Application Bridge API
The command layer between OOMU's interface (Next.js 16 / React 19) and its native engine (Tauri 2 / Rust).
Every action the interface takes crosses this boundary. There is no direct filesystem, network, or database access from the front end. The engine registers 183 commands, and nothing outside that list is reachable.
This reference describes OOMU 0.2.0. It is a description of an internal boundary, not a public integration surface: command names and shapes change between releases.
1. How the bridge works
1.1 Invocation
Commands are invoked through Tauri's IPC. The Content Security Policy restricts connect-src to ipc:, http://ipc.localhost, tauri:, and Google Analytics; object-src is none and frame-ancestors is none. Web content rendered inside OOMU cannot reach these commands.
1.2 Naming
Commands are snake_case in Rust and invoked as such. Payload fields are camelCase in both directions, and most request structs are declared with deny_unknown_fields: an unrecognised field is an error, not something silently ignored.
1.3 Errors
Errors are structured, not strings:
{
"code": "project_not_found",
"entityKind": "project",
"field": null,
"diagnostic": "the project record does not exist"
}
code is stable and drives interface copy. diagnostic is for logs and support, not for display.
1.4 Mutations carry receipts
Any command that changes durable state returns a MutationResult<T>:
{
"value": { "...": "the changed record" },
"receipt": {
"receiptId": "...",
"operationId": "...",
"operation": "create_project",
"entityKind": "project",
"entityId": "project_...",
"resultDigest": "<sha256>",
"committedAtMs": 1756300000000,
"replayed": false
}
}
The caller supplies operationId. The engine records it in data_mutations alongside a request digest and the result. Re-sending the same operationId returns the original result with replayed: true instead of performing the change again.
This makes the whole mutation surface idempotent. A retry after a dropped response cannot create a second project or send a second draft.
1.5 Native pickers are native
Commands prefixed choose_ open a real macOS file dialog. The path is never a parameter. choose_and_install_mod, choose_and_add_local_models, choose_project_documents, choose_chat_attachments, and add_local_mcp_server all work this way.
The consequence: no model output, prompt, or page content can direct OOMU at a file. A human picked it, in a system dialog.
2. Command families
2.1 Startup, license, and setup
| Command | |
|---|---|
get_license_state · accept_license · decline_license | The license gate. Nothing else works until accepted. |
get_setup_state · get_runtime_setup_state · finish_setup | Setup readiness. The runtime projection deliberately does not touch Keychain. |
get_first_launch_preview_state | First-launch preview, using isolated development data. |
get_launch_options · get_native_runtime_status | Launch flags and runtime state. |
set_native_menu_locale | Localize the native macOS menu bar. |
2.2 Models and providers
| Command | |
|---|---|
list_system_models · choose_and_install_system_model · install_model_artifact | The router, assistant, and vision models. Verified by SHA-256. |
list_local_models · choose_and_add_local_models · set_default_local_model · rename_local_model · reverify_local_model · choose_and_replace_local_model · remove_local_model | Your own GGUF models. |
get_local_model_dependencies · get_cloud_model_dependencies · reassign_cloud_model_dependencies | What points at a model, so removal cannot orphan chats or agents. |
get_cloud_provider_catalog · get_provider_credential_statuses · list_cloud_model_connections | The provider catalog and credential state. |
connect_cloud_provider · connect_custom_provider · verify_saved_cloud_provider · delete_cloud_provider_credential | Connecting providers. Every connect performs a real round trip before saving. |
get_system_hardware_profile | Memory, cores, Metal support, and the resulting local context ceiling. |
2.3 Chat and turns
| Command | |
|---|---|
list_chat_sessions · create_chat_session · create_chat_session_with_context · update_chat_session_context · rename_chat_session · archive_chat_session | Sessions. |
list_recoverable_chat_deletions · stage_chat_session_deletion · undo_chat_session_deletion · commit_chat_session_deletion | Staged deletion with undo. |
list_chat_messages · append_chat_message | Messages. |
submit_chat_turn | The main entry point: route, execute, synthesize. |
queue_turn · clear_queue | Queue work behind a running turn. |
steer_active_turn | Inject a correction into a turn already running. |
cancel_active_turn | Cancel. |
choose_chat_attachments · import_chat_attachments · remove_chat_attachment | Attachments, extracted locally. |
2.4 Agents
list_agents · create_agent · update_agent · archive_agent · delete_agent · get_chat_agent_binding · set_chat_agent · start_agent_chat · choose_and_import_agent
choose_and_import_agent reads a Beta 1 export and reports exactly which fields carried over and which did not.
2.5 Projects and documents
| Command | |
|---|---|
list_projects · create_project · update_project · archive_project | Projects. |
list_recoverable_project_deletions · stage_project_deletion · undo_project_deletion · commit_project_deletion | Staged deletion with undo. |
set_project_instructions | Standing instructions, up to 32,000 characters. |
get_project_scratchpad · update_project_scratchpad | The versioned Notes. |
list_project_documents · choose_project_documents · import_project_documents | Files, extracted and indexed locally. |
search_project_documents · ask_project_documents | Retrieval and cited answers. |
export_project_document_answer_docx | Export an answer with its citations. |
compare_project_documents · export_project_comparison_docx | Two-to-five document comparison and redline. |
2.6 Artifacts
list_artifacts · export_artifact · open_deliverable · reveal_deliverable · copy_deliverable_file · list_document_engines · choose_and_add_document · get_document_preview
list_document_engines probes by actually building and verifying a file per format, so its answer reflects the machine rather than a build flag.
2.7 Workflows and scheduling
| Command | |
|---|---|
list_workflows · create_workflow · update_workflow · duplicate_workflow · archive_workflow | Workflows. |
list_recoverable_workflow_deletions · stage_workflow_deletion · undo_workflow_deletion · commit_workflow_deletion | Staged deletion with undo. |
list_workflow_authoring_capabilities · get_workflow_authoring_definition | The authorable step set and a workflow's definition. |
run_workflow · list_workflow_runs · get_workflow_run · resume_workflow_run | Runs, and resuming from a paused step. |
create_workflow_routine · list_workflow_routines · set_workflow_routine_active · run_due_workflow_routines | Routines. |
list_schedules · create_schedule · toggle_schedule · delete_schedule | Schedules. |
get_background_work_status · set_background_work_enabled | The macOS Login Item registration. |
2.8 Connections
| Command | |
|---|---|
list_connections | Every connection, in one list. |
start_google_oauth · get_google_workspace_status · disconnect_google_workspace | Google Workspace. |
list_remote_setup_manifests · begin_remote_oauth · get_remote_oauth_status · test_remote_connection · remove_remote_connection | Build-gated OAuth connectors. |
list_local_mcp_servers · get_local_mcp_server_catalog · add_local_mcp_server · refresh_local_mcp_server · rename_local_mcp_server · set_local_mcp_server_enabled · set_local_mcp_tool_read_only · remove_local_mcp_server | Local MCP tools. |
choose_and_import_mcp_manifest · list_mcp_setup_manifests · list_mcp_setup_connections · configure_mcp_manifest · refresh_mcp_setup_connection · disable_mcp_setup_connection · reconnect_mcp_setup_connection · remove_mcp_setup_connection | Manifest-configured MCP connections. |
connect_remote_channel · list_remote_channels · test_remote_channel · disconnect_remote_channel · remove_remote_channel | Telegram and Discord delivery. |
list_macos_access_statuses · open_macos_access_settings | Live TCC state, and a jump to the right System Settings pane. |
list_apple_shortcuts_status | Installed Apple Shortcuts. |
create_email_draft | Create a draft in Apple Mail or Gmail. Never sends. |
2.9 Mods
list_installed_mods · set_mod_enabled · choose_and_install_mod · revalidate_installed_mod · remove_installed_mod · open_oomu_marketplace
open_oomu_marketplace is blocked under Air-Gap Mode.
2.10 Quick Launcher and quick actions
| Command | |
|---|---|
create_quick_launcher_session | Start a local session from the launcher. |
preview_quick_launcher_calculation · evaluate_quick_launcher_calculation | Native arithmetic, no model involved. |
get_quick_launcher_clipboard_context | Clipboard context for the prompt. |
copy_quick_launcher_result · open_quick_launcher_conversation | Copy, or promote to a full chat. |
resize_quick_launcher · dismiss_quick_launcher | Window control. |
list_executive_recipes · inspect_recipe_clipboard · prepare_recipe_invocation | Quick actions, and clipboard classification. |
2.11 Briefing, activity, and ledger
| Command | |
|---|---|
get_or_generate_morning_briefing · copy_morning_briefing · draft_morning_briefing_memo | The morning briefing. Registered on the bridge, with no interface calling them in this build. |
list_activity_records | Everything running, waiting, or finished. |
get_model_usage_ledger | Local versus cloud usage, by period. |
2.12 Profile, memory, and security
| Command | |
|---|---|
get_profile_settings · save_profile_settings | Display name, locale, appearance, cloud access, defaults. |
list_internal_memories · delete_internal_memory | Saved memories, and forgetting one. |
get_enterprise_security_status · set_air_gap_mode | Air-Gap Mode. |
export_audit_logs | The Secure Enclave-signed audit ledger. |
2.13 Browser
get_visible_browser_session · reload_visible_browser · resize_visible_browser · close_visible_browser · list_visible_browser_downloads
Browser commands take a navigationGeneration and validate it against the live session, so a stale interface cannot act on a browser that has since navigated or closed.
list_visible_browser_downloadscurrently returns an empty list. Downloads are not surfaced in this beta.
2.14 Updates
get_application_update_status · check_for_updates · install_update_and_restart
OOMU checks once at launch, against a signed manifest at a fixed endpoint, verified with a minisign public key compiled into the build. The check is skipped entirely under Air-Gap Mode, and you decide when to apply.
3. Invariants worth relying on
| Invariant | |
|---|---|
| The command list is the whole surface. | 183 commands. Nothing else is reachable from the interface. |
| Mutations are idempotent. | operationId plus a request digest, recorded in data_mutations. |
| File selection is human. | choose_* opens a native dialog. Paths are never parameters. |
| Credentials do not cross the bridge as values. | Keys go to Keychain after verification. Reads return status, never the secret. |
| Errors are coded. | Stable code, plus a diagnostic that is not display copy. |
| Nothing unverified is reported as done. | A command that cannot verify its outcome returns an error rather than a success. |
Related
- Capability catalog: the actions beneath these commands.
- Local database schema: where the results are stored.
- System design overview: how a turn flows through this layer.