glossary
what is a cli (and why do agents love them)?
TL;DR
A CLI is a program you control by typing commands, like git, npm or docker. AI coding agents already spend their day typing commands, so a CLI is the easiest thing for them to use, with no special integration. Good agent CLIs give short, predictable output and explain themselves when asked. That's why Pane's control surface for agents is runpane, a CLI any agent can run.
CLI stands for Command Line Interface. It's a program you control by typing commands instead of clicking buttons. You're probably already using several: git, npm, docker.
gui vs cli
A GUI is built for eyes and a mouse. A CLI is built for typing, which is what agents do.
| GUI (graphical) | CLI (command line) | |
|---|---|---|
| how you use it | Click buttons, drag things | Type commands |
| example | GitHub Desktop | git push |
| for humans | Usually easier to start | Faster once you know the commands |
| for agents | Hard to use (need screenshots, clicking) | Native (agents already type commands) |
why agents love clis
Every agent already has a terminal, so a CLI works with all of them on day one.
AI coding agents spend their entire day typing commands in terminals. That's how they run your code, install packages, use git, and run tests. A CLI fits right into what they're already doing. No special integration needed.
This is why Pane built runpane as a CLI instead of requiring agents to use a custom protocol. Claude Code, Codex, Aider, a bash script, it doesn't matter. If it can type runpane panes create, it can control Pane.
what makes a cli agent-friendly
Structured output, a way to discover commands, short output and no prompts.
Not all CLIs are equally good for agents. Here's what matters:
- → JSON output. Agents can't reliably parse human-readable tables. A
--jsonflag gives them structured data they can actually work with. - → A discovery command. Agents shouldn't need to read docs to find out what commands exist. A command like
runpane agent-contexttells them everything in one call. - → Short default output. Agents have limited context windows. If a command dumps 500 lines of output by default, it wastes tokens. Good agent CLIs keep output short and let you ask for more with flags like
--limit 200. - → Non-interactive mode. Agents can't answer "Are you sure? (y/n)" prompts. A
--yesflag lets them skip confirmations in automated workflows. - → Readable before install. Agents should be able to check what a CLI can do before installing it. Pane publishes the full command list at a public URL so agents can look before they commit.
how runpane uses these principles
runpane follows all five rules, so any agent can drive Pane.
# Discovery: what commands exist?
runpane agent-context --json
# Short output: just what's on screen right now
runpane panels screen --panel <id> --limit 80 --json
# Non-interactive: skip the "are you sure?" prompt
runpane panes create --repo active --name "my-task" --yes --json
# Readable before install:
curl -fsSL https://runpane.com/runpane-cli-contract.jsonrelated
- → runpane CLI docs - the full reference
- → runpane CLI landing page - why Pane built a CLI
- → What Is MCP? - the protocol CLIs complement
- → What Does Agent-Agnostic Mean? - why CLIs enable it
Sources
- Corrections
- If anything here is wrong or out of date, tell us and we'll fix it and update the date at the top. Open an issue on GitHub
- Sources
frequently asked questions
By Parsa Khazaeepoul, co-founder of Pane. .