Skip to content
Esc
navigateopen⌘Jpreview
On this page

pony CLI

Use the bundled pony command to list, inspect, read, and send input to active PonyMux Terminals from scripts or another authenticated Terminal.

The experimental pony CLI is available in every regular PonyMux Terminal through PATH. It is a local control surface for inspecting and coordinating active Terminals without adding a project, task, or orchestration model to the app.

pony CLI The CLI returns plain terminal output for people, with JSON available for scripts and agents.

Commands

pony list
pony inspect <terminal-id>
pony read <terminal-id> --lines 80
pony send <terminal-id> "Continue with the review"

pony list

Lists active Terminals with their id, title, working directory, live state, and agent status. Archived and trashed Terminals are not included.

Use an id from this output with the other commands.

pony inspect

Returns the selected Terminal’s summary and the current Inspector session facts, such as provider, model, effort, context size, and last request time when available.

pony read

Reads text from a live Terminal screen. It returns 80 lines by default; --lines accepts values from 1 through 2,000.

pony read <terminal-id> --lines 200

pony send

Clears the target’s current input line, pastes the supplied text, and presses Enter. The target must have a live PTY that can receive input.

If no text argument is provided, pony send reads from standard input:

printf '%s' "Run the focused tests" | pony send <terminal-id>

Use -- before text that begins with an option-like prefix:

pony send <terminal-id> -- "--help"

Send input is limited to 64 KiB per request and 60 requests per minute.

JSON output

All four commands support --json for scripts and agents:

pony list --json
pony inspect <terminal-id> --json
pony read <terminal-id> --lines 120 --json
pony send <terminal-id> --json "Continue"

Security boundary

pony is not a network API. PonyMux accepts a request only when macOS process facts authenticate it to a live source Terminal and the current Terminal generation. Requests from an unrelated process or a stale Terminal are rejected.

The command addresses the PonyMux app bundle that supplied its executable. Development variants therefore control their own Terminals by default. Cross-app control works only when both app bundles belong to the same verified local signing domain.

Last updated on Sep 12, 2026