Skip to content

Any way for an extension to render a live panel in the terminal? #3979

Description

@hellices

Describe the feature or problem you'd like to solve

An extension has no way to render a live, refreshing panel in the terminal (e.g. a sub-agent progress dashboard) — session.log only appends scrolling text.

Proposed solution

I'm building a CLI extension that runs a bunch of sub-agents in parallel and I want to show progress while they run. Something like:

my-run · explore · 3/5 done · 02:14
✓ auth-coverage done 45s 12.3K tok
✓ input-validation done 38s 10.1K tok
⠿ rate-limiting streaming 41s 3.2KB 8.7K tok
⠿ error-handling tool 41s (web_fetch)
· cors-policy pending 0s

ideally refreshing in place.

As far as I can tell there's no way to do this from an extension right now. The only output options are session.log(..., { ephemeral: true }), which is just scrolling text with no fixed region, and the modal session.ui.* dialogs. Since stdout is the JSON-RPC channel I can't draw to the terminal myself either.

I have all the data on the extension side (state, elapsed, tokens, current tool per agent) — I just have no surface to render it on.

Would you consider an API for extensions to render a panel like this in the TUI?
Even a read-only snapshot (no keyboard, no live push) would be enough to start — the extension hands the host some structured rows and the host draws them. Live updates could come later.

@github/copilot ~1.0.65, extension via @github/copilot-sdk/extension.

Example prompts or workflows

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions