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 246 commands, and nothing outside that list is reachable.
This reference describes OOMU 0.4.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, and tauri:, and nothing else; object-src is none and frame-ancestors is none. The interface cannot open a connection to any outside host. 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 unrecognized 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_project_document_paths, choose_chat_attachments, choose_and_add_document, 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 · set_profile_locale | Localize the native macOS menu bar and the interface. |
open_release_notes | Open the release notes from the update prompt. |
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. |
download_model_artifact · list_model_downloads · cancel_model_download · open_model_source | Downloading a system model from its official source, with pause and resume. |
get_model_update_status · install_model_update | System 1 router updates, separate from app updates. |
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 · sync_cloud_provider_catalog · get_provider_credential_statuses · list_cloud_model_connections | The signed provider catalog, Refresh models, 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. |
list_explicit_tags | The @ tags available right now, including Mod tags. |
get_session_compaction_state · update_session_compaction_settings · compact_session_history | Context compaction for local models. |
export_chat_markdown | Save a whole chat as Markdown through the native save dialog. |
start_voice_capture · stop_voice_capture | On-device dictation with Apple's speech framework. |
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 · migrate_agent_avatar_tones
choose_and_import_agent reads an agent folder, such as 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 · get_deliverable_preview · get_document_preview_helper_status · open_document_preview_helper_download · list_recoverable_artifact_deletions · stage_artifact_deletion · undo_artifact_deletion · commit_artifact_deletion · clear_stale_artifacts
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 · create_scheduled_workflow | Schedules, including a workflow, schedule, and change alert created together. |
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 | Slack and Discord messaging channels: connect, list, test, turn off, and remove. |
channel_setup_state · channel_setup_step · channel_setup_resources | The four-step guided setup, saved after every step. channel_setup_resources returns the prefilled Slack settings and opens Slack or Discord's own setup pages. |
channel_health | Live connection state for each channel, shown on its card and in Mochi. |
list_macos_access_statuses · request_macos_access · open_macos_access_settings · relaunch_after_macos_access_change | Live TCC state, asking macOS for access, and a jump to the right System Settings pane. |
get_browser_bridge_status · get_browser_bridge_pairing_token · prepare_browser_bridge_extension | The Browser Bridge and its connection code. |
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 · set_mod_tag_settings · 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. |
memory_synthesis_snapshot · memory_synthesis_enabled · memory_synthesis_run · memory_synthesis_edit | Standing memory: its facts and activity, the Update overnight switch, Update now, and editing or forgetting a fact. |
get_enterprise_security_status · set_air_gap_mode | Air-Gap Mode. |
get_enterprise_policy | The organization's policy on a managed Mac, if any. |
get_audit_export_readiness · export_audit_logs | The Secure Enclave-signed audit ledger. |
send_anonymous_telemetry_event · set_analytics_enabled | Retired. Kept so older callers do not fail; they send and store nothing. |
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 at launch and every 24 hours, against a signed manifest at a fixed endpoint, verified with a minisign public key compiled into the build. The request carries the app version and processor architecture, and no identifier. The check is skipped entirely under Air-Gap Mode, and you decide when to apply.
2.15 Mochi and Ready for review
| Command | |
|---|---|
mascot_snapshot · mascot_control · mascot_input_mode | Mochi's window: where it is, showing, hiding, docking, sleeping, and making room to type. |
mascot_prompt · mascot_reply · mascot_open_link | Asking Mochi, answering an approval it shows, and opening a link from its balloon in your browser. |
mascot_ambient_snapshot · mascot_interest · mascot_ambient_check · mascot_deliverable_action | Standing interests: their settings, Check now, and the actions on a card. |
mascot_provider_preferences | Where Mochi reads mail and calendar from. |
mascot_background_service | Installs or removes the background service. Called only after the consent question has been answered. |
staged_deliverables · staged_deliverable_action · stage_activity_brief | Ready for review: the waiting files, review, save, snooze, dismiss, and the activity brief. |
staged_deliverable_audit | The approval history. Read only: there is no command that edits or deletes it. |
The background service is a separate program and is not reached through this bridge. OOMU talks to it over a local socket in a folder only your account can open, and checks that whatever connects is running as the same user.
3. Invariants worth relying on
| Invariant | |
|---|---|
| The command list is the whole surface. | 246 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.