Skip to content

[Feature]: OMP in structured native chat (via omp --mode rpc) #22650

Closed

Description

@Jelil-ah

What

Support OMP in the structured native chat runtime, not only the terminal-backed chat path.

Current behavior (v1.4.210)

  • omp is in NATIVE_CHAT_SUPPORTED_AGENT_LIST, but only via the terminal-backed path (transcript read locally, nativeChatRequiresLocalTranscript('omp') === true).
  • Structured chat is limited to Claude and Codex: isAgentSessionHandleProvider accepts only 'claude' | 'codex', so OMP launches resolve to agent-without-structured-session.
  • Result: OMP chat in Orca feels noticeably less fluid than Claude/Codex structured chat (streaming, turn boundaries, tool rows).

Why it's feasible

OMP ships a headless, structured protocol — no PTY scraping needed:

  • omp --mode rpc speaks JSONL over stdio: emits ready (protocolVersion 1, supported [1,2]), available_commands_update (slash commands), and answers commands such as get_state (active model, context window, thinking config).
  • rpc-ui mode also exists for UI-level requests.
    Tested with omp 18.3.0 on macOS.

Other GUIs already drive OMP this way with streamed thinking in the transcript (e.g. MonoCode).

Ask

Related

Activity

  1. nwparker commented on Oct 18, 2026

    @nwparker
    Contributor

    Implemented by merged #26401 (commit 2caea6c, October 8): OMP now has a registered structured-session provider over the shared ACP adapter lane, using omp acp. That fulfills the generic-adapter alternative here rather than adding a separate omp --mode rpc path.

    With Use updated structured native chat enabled and OMP 17.0.5 or later, OMP opens in structured Chat with streamed replies, tool rows, permission cards, Stop and restart/reopen support. Older versions or the setting off retain terminal-backed Chat.

    I verified the current launch spec and reran its launch, recorded-protocol and dialect suites: all 27 tests pass. The merged PR includes real OMP checks on macOS; it does not establish live Windows/Linux/SSH/mobile coverage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions