main
John Lauer Fix Codex Store agreement flags and recover transient launch observations; test on crr 9fee13e 1mo ago
{
  "bridge": "codex",
  "version": "0.1.1",
  "verbs": [
    {
      "name": "codex_describe",
      "summary": "Describe every bridge command",
      "input": {},
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_status",
      "summary": "Read desktop installation and connection state",
      "input": {},
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_readiness",
      "summary": "Read prerequisites without installing anything",
      "input": {},
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_state",
      "summary": "Observe app windows and capture each through AB",
      "input": {},
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_progress",
      "summary": "Poll a long-running operation",
      "input": {
        "jobId": "optional string; omit to list this caller's jobs"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_desktop_install",
      "summary": "Install official Microsoft Store package 9PLM9XGG6VKS",
      "input": {
        "acceptAgreements": "boolean; true only after user accepts both Microsoft Store source and package agreements for the selected target"
      },
      "timeoutSeconds": 5,
      "longRunning": true,
      "statusVerb": "codex_progress",
      "example": {},
      "hint": "Poll codex_progress; inspect result.success and installer.args/exitCode/stdout/stderr. acceptAgreements:true passes BOTH Store source and package acceptance flags only after user consent on this target. If install_verification_failed, check codex_status before retrying: installation may already have completed. Send the AB toast before any expected UAC step."
    },
    {
      "name": "codex_desktop_uninstall",
      "summary": "Remove desktop package only; preserve Codex home",
      "input": {
        "confirm": "boolean, required true; close desktop first"
      },
      "timeoutSeconds": 5,
      "longRunning": true,
      "statusVerb": "codex_progress",
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_desktop_open",
      "summary": "Launch desktop and verify a window; Windows may foreground it",
      "input": {},
      "timeoutSeconds": 5,
      "longRunning": true,
      "statusVerb": "codex_progress",
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_connect",
      "summary": "Connect to the desktop daemon or a separate bundled backend",
      "input": {
        "mode": "standalone (default) | desktop (Unix daemon only)"
      },
      "timeoutSeconds": 5,
      "longRunning": true,
      "statusVerb": "codex_progress",
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_disconnect",
      "summary": "Disconnect this bridge's backend transport",
      "input": {},
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_uninstall",
      "summary": "AB uninstall cascade; preserve desktop, auth, projects and plugins",
      "input": {},
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_auth_import",
      "summary": "Import a staged auth cache without returning its contents",
      "input": {
        "path": "absolute host-local auth cache path; refuses existing destination"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_events",
      "summary": "Read bounded native event stream",
      "input": {
        "sinceSeq": "integer cursor; compare oldestSeq to detect missed events"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_requests",
      "summary": "Read native approval and user-input requests",
      "input": {},
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_request_reply",
      "summary": "Reply to a pending request with the native response shape",
      "input": {
        "requestId": "native JSON id",
        "result": "native JSON response; user authorization required for approvals"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_account_read",
      "summary": "Read account identity",
      "input": {
        "refreshToken": "boolean, default false"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_login_start",
      "summary": "Start native browser/device-code login",
      "input": {
        "type": "chatgpt | chatgptDeviceCode"
      },
      "timeoutSeconds": 5,
      "longRunning": true,
      "statusVerb": "codex_progress",
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_login_cancel",
      "summary": "Cancel this login attempt",
      "input": {
        "loginId": "string"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_models",
      "summary": "List native available models",
      "input": {
        "cursor": "optional string",
        "limit": "optional integer"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_thread_list",
      "summary": "List native threads",
      "input": {
        "cursor": "optional string",
        "limit": "optional integer",
        "sourceKinds": "optional array"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_thread_read",
      "summary": "Read native thread state",
      "input": {
        "threadId": "string, required",
        "includeTurns": "boolean"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_thread_start",
      "summary": "Create a conversation",
      "input": {
        "cwd": "absolute host directory",
        "model": "optional model",
        "approvalPolicy": "on-request recommended",
        "sandbox": "read-only | workspace-write"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_thread_resume",
      "summary": "Subscribe to an existing conversation",
      "input": {
        "threadId": "string, required"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_thread_fork",
      "summary": "Fork an existing conversation",
      "input": {
        "threadId": "string, required"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_thread_archive",
      "summary": "Archive an existing conversation",
      "input": {
        "threadId": "string, required"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_turn_start",
      "summary": "Submit a prompt",
      "input": {
        "threadId": "string, required",
        "input": "array, e.g. [{\"type\":\"text\",\"text\":\"...\"}]"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_turn_steer",
      "summary": "Steer an active turn",
      "input": {
        "threadId": "string",
        "expectedTurnId": "string",
        "input": "native input array"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_turn_interrupt",
      "summary": "Interrupt an active turn",
      "input": {
        "threadId": "string",
        "turnId": "string"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_plugin_list",
      "summary": "List plugin marketplaces and available plugins",
      "input": {
        "forceRefetch": "optional boolean",
        "cwds": "optional absolute directory array",
        "query": "optional case-insensitive search",
        "cursor": "optional offset from nextCursor",
        "limit": "optional integer, default 30, maximum 100"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_plugin_read",
      "summary": "Inspect a plugin",
      "input": {
        "pluginName": "string",
        "marketplacePath": "absolute local marketplace path, or use remoteMarketplaceName",
        "remoteMarketplaceName": "remote catalog marketplace name"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_plugin_install",
      "summary": "Install a named plugin through native Codex",
      "input": {
        "pluginName": "string",
        "remoteMarketplaceName": "string, or marketplacePath",
        "marketplacePath": "absolute local marketplace path"
      },
      "timeoutSeconds": 5,
      "longRunning": true,
      "statusVerb": "codex_progress",
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_plugin_uninstall",
      "summary": "Remove a named native plugin",
      "input": {
        "pluginId": "string"
      },
      "timeoutSeconds": 5,
      "longRunning": true,
      "statusVerb": "codex_progress",
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_skills_list",
      "summary": "List native skills",
      "input": {
        "cwds": "optional absolute directory array"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_mcp_status",
      "summary": "Read native MCP server connection status",
      "input": {
        "cursor": "optional string",
        "limit": "optional integer"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_config_read",
      "summary": "Read effective native config",
      "input": {
        "includeLayers": "optional boolean"
      },
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null,
      "example": {},
      "hint": "Native arguments are forwarded as structured JSON. Poll events and pending requests for progress."
    },
    {
      "name": "codex_desktop_tools",
      "summary": "Discover the running desktop app's native tools and JSON schemas",
      "input": {"desktopPipe": "optional verified endpoint name; required when discovery is ambiguous"},
      "timeoutSeconds": 150,
      "longRunning": false,
      "statusVerb": null
    },
    {
      "name": "codex_desktop_tool_call",
      "summary": "Invoke a discovered desktop tool through its verified named pipe",
      "input": {
        "tool": "native name from codex_desktop_tools",
        "threadId": "native Codex thread ID",
        "arguments": "native JSON object",
        "turnId": "optional native turn ID"
        ,"desktopPipe": "optional verified endpoint name; required when discovery is ambiguous"
      },
      "timeoutSeconds": 10,
      "longRunning": true,
      "statusVerb": "codex_progress"
    },
    {"name":"codex_thread_unsubscribe","summary":"Release a backend thread subscription","input":{"threadId":"string, required"},"timeoutSeconds":150,"longRunning":false,"statusVerb":null},
    {"name":"codex_thread_turns","summary":"Read paginated persisted turns","input":{"threadId":"string, required","cursor":"optional string","limit":"optional integer","itemsView":"notLoaded | summary | full"},"timeoutSeconds":150,"longRunning":false,"statusVerb":null},
    {"name":"codex_thread_items","summary":"Read paginated persisted thread items","input":{"threadId":"string, required","turnId":"optional string","cursor":"optional string","limit":"optional integer"},"timeoutSeconds":150,"longRunning":false,"statusVerb":null}
  ]
}