Repository navigation
Description
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.tsfor 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
- With today's Orca the row is labeled "Pi" once the extension loads. I'm proposing a
gentle-shellPi-compatible kind
in Orca (own hook route andORCA_GENTLE_SHELL_STATUS_EXTENSION) so the row keeps the gentle-shell name: [Feature]: Support gentle-shell as a Pi-compatible agent kind stablyai/orca#41728. This launcher change already prefers that variable when it exists. - Related, but a different problem: gentle_review from a Pi chat in Orca: reviewer acknowledgement is stripped, and targeted validation cannot be reached #2735 (review from a Pi chat in Orca).
- I have a branch ready: one commit, about 200 lines, most of them tests in
tests/gentle-shell-bin.test.ts, plus a
docs section indocs/readme-reference.md.
Activity