Skip to content

feat(launcher): report agent status to Orca when running inside an Orca pane #3233

Open

Description

@alvag

Before submitting

  • I searched open and closed issues and did not find a request for this feature.
  • I reviewed this request and removed credentials, tokens, private paths, hostnames, and other sensitive data.

Problem or opportunity

Orca shows a live row for each agent pane: working, done, and needs input, plus
attention notifications. For Pi it gets those states from a status extension it writes into Pi's agent home
(~/.pi/agent/extensions/orca-agent-status.ts) and from hook coordinates it passes to the pane
(ORCA_AGENT_HOOK_PORT, ORCA_AGENT_HOOK_TOKEN, ORCA_PI_SOURCE_AGENT_DIR, ...).

Gentle Shell runs Pi with its own agent dir, so Pi never discovers that extension. Orca falls back to the terminal
title and OSC 7501. The row still says "gentle-shell", but while Gentle Shell waits on the user (for example an
ask_user_choice prompt) Orca keeps showing a working spinner, and no needs-input notification fires.

Proposed outcome

When Gentle Shell starts interactively inside an Orca pane, the launcher passes Orca's status extension to Pi with
-e, the same way it already handles the Herdr bridge:

  • Active only when Orca's hook coordinates are present.
  • Extension path, first readable file wins: ORCA_GENTLE_SHELL_STATUS_EXTENSION (a future Orca contract, see
    below), ORCA_PI_STATUS_EXTENSION, then $ORCA_PI_SOURCE_AGENT_DIR/extensions/orca-agent-status.ts.
  • Loads only that file, never Orca's title or prefill extensions, so Gentle Shell keeps its own title and identity.
  • Same opt-outs as Herdr: subagent children, non-TTY, -p/--print, non-text --mode, --export, --list-models,
    -v, Pi subcommands, and --no-extensions/-ne. Silent and non-fatal when anything is missing.

I tested this locally with Orca on macOS and on Windows ARM64: during an ask_user_choice prompt, the row, the
workspace and Orca's notifications show needs input, and the row gets assistant previews and event-driven turn
completion.

Alternatives considered

  • Do nothing: Orca keeps inferring state from the title, so a waiting prompt looks like work in progress.
  • A Gentle Shell reporter speaking Orca's hook protocol (like gentle-herdr-agent.ts for Herdr): Orca derives
    the row identity from the hook route, so it would still show "Pi", and it would duplicate an internal Orca protocol.

Additional context

Activity

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