← All documentation

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_licenseThe license gate. Nothing else works until accepted.
get_setup_state · get_runtime_setup_state · finish_setupSetup readiness. The runtime projection deliberately does not touch Keychain.
get_first_launch_preview_stateFirst-launch preview, using isolated development data.
get_launch_options · get_native_runtime_statusLaunch flags and runtime state.
set_native_menu_localeLocalize the native macOS menu bar.

2.2 Models and providers

Command
list_system_models · choose_and_install_system_model · install_model_artifactThe 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_modelYour own GGUF models.
get_local_model_dependencies · get_cloud_model_dependencies · reassign_cloud_model_dependenciesWhat points at a model, so removal cannot orphan chats or agents.
get_cloud_provider_catalog · get_provider_credential_statuses · list_cloud_model_connectionsThe provider catalog and credential state.
connect_cloud_provider · connect_custom_provider · verify_saved_cloud_provider · delete_cloud_provider_credentialConnecting providers. Every connect performs a real round trip before saving.
get_system_hardware_profileMemory, 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_sessionSessions.
list_recoverable_chat_deletions · stage_chat_session_deletion · undo_chat_session_deletion · commit_chat_session_deletionStaged deletion with undo.
list_chat_messages · append_chat_messageMessages.
submit_chat_turnThe main entry point: route, execute, synthesize.
queue_turn · clear_queueQueue work behind a running turn.
steer_active_turnInject a correction into a turn already running.
cancel_active_turnCancel.
choose_chat_attachments · import_chat_attachments · remove_chat_attachmentAttachments, 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_projectProjects.
list_recoverable_project_deletions · stage_project_deletion · undo_project_deletion · commit_project_deletionStaged deletion with undo.
set_project_instructionsStanding instructions, up to 32,000 characters.
get_project_scratchpad · update_project_scratchpadThe versioned Notes.
list_project_documents · choose_project_documents · import_project_documentsFiles, extracted and indexed locally.
search_project_documents · ask_project_documentsRetrieval and cited answers.
export_project_document_answer_docxExport an answer with its citations.
compare_project_documents · export_project_comparison_docxTwo-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_workflowWorkflows.
list_recoverable_workflow_deletions · stage_workflow_deletion · undo_workflow_deletion · commit_workflow_deletionStaged deletion with undo.
list_workflow_authoring_capabilities · get_workflow_authoring_definitionThe authorable step set and a workflow's definition.
run_workflow · list_workflow_runs · get_workflow_run · resume_workflow_runRuns, and resuming from a paused step.
create_workflow_routine · list_workflow_routines · set_workflow_routine_active · run_due_workflow_routinesRoutines.
list_schedules · create_schedule · toggle_schedule · delete_scheduleSchedules.
get_background_work_status · set_background_work_enabledThe macOS Login Item registration.

2.8 Connections

Command
list_connectionsEvery connection, in one list.
start_google_oauth · get_google_workspace_status · disconnect_google_workspaceGoogle Workspace.
list_remote_setup_manifests · begin_remote_oauth · get_remote_oauth_status · test_remote_connection · remove_remote_connectionBuild-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_serverLocal 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_connectionManifest-configured MCP connections.
connect_remote_channel · list_remote_channels · test_remote_channel · disconnect_remote_channel · remove_remote_channelTelegram and Discord delivery.
list_macos_access_statuses · open_macos_access_settingsLive TCC state, and a jump to the right System Settings pane.
list_apple_shortcuts_statusInstalled Apple Shortcuts.
create_email_draftCreate 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_sessionStart a local session from the launcher.
preview_quick_launcher_calculation · evaluate_quick_launcher_calculationNative arithmetic, no model involved.
get_quick_launcher_clipboard_contextClipboard context for the prompt.
copy_quick_launcher_result · open_quick_launcher_conversationCopy, or promote to a full chat.
resize_quick_launcher · dismiss_quick_launcherWindow control.
list_executive_recipes · inspect_recipe_clipboard · prepare_recipe_invocationQuick actions, and clipboard classification.

2.11 Briefing, activity, and ledger

Command
get_or_generate_morning_briefing · copy_morning_briefing · draft_morning_briefing_memoThe morning briefing. Registered on the bridge, with no interface calling them in this build.
list_activity_recordsEverything running, waiting, or finished.
get_model_usage_ledgerLocal versus cloud usage, by period.

2.12 Profile, memory, and security

Command
get_profile_settings · save_profile_settingsDisplay name, locale, appearance, cloud access, defaults.
list_internal_memories · delete_internal_memorySaved memories, and forgetting one.
get_enterprise_security_status · set_air_gap_modeAir-Gap Mode.
export_audit_logsThe 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_downloads currently 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.