Skip to content

CLI and MCP

The skribly command and the skribly mcp server let agents, scripts and you control panes from outside the window. An agent can start a reviewer next to itself, wait for it and read the result.

How it works

  • A control API runs inside the app and listens only on 127.0.0.1, on a random free port.
  • The port and a random token are written to ~/.skribly/control.json, readable only by you. Requests without a valid token get 401.
  • skribly is a Node script with no dependencies. It works only while the app is running.
  • Sessions started this way appear in the Agents view like any other.

Turn it on

  1. Open Settings, Sessions & control, Local control API. It is on by default.
  2. Under skribly command, choose Install to add the command to your PATH.
  3. Optionally install the skribly skill in a project. It teaches Claude Code and Codex when and how to delegate work.

Commands

Commands take a target: a session name such as reviewer, a pane id, or current for the pane you are calling from. Every command prints JSON, and --text prints plain text for read and explain.

The skribly command
CommandWhat it does
skribly statusNumber of panes and agents, and their states
skribly workspace listProjects, worktrees and the panes in each
skribly pane listAll panes, shells and agents
skribly pane createOpens a new pane
skribly pane runTypes a shell command and Enter
skribly pane readReads the screen as text
skribly pane wait-outputWaits until output matches a regular expression
skribly pane renameNames a pane for the API
skribly pane closeCloses a pane
skribly agent listAgents and their states
skribly agent startStarts a named agent in a new pane, optionally in a worktree
skribly agent promptSends a message, and can wait for the end of the turn
skribly agent readReads the agent's screen
skribly agent waitWaits for chosen states
skribly agent explainShows why the agent is in its state
skribly agent stopCloses the agent's pane
skribly worktree listLists a project's worktrees
skribly worktree createCreates a worktree
skribly worktree removeRemoves a worktree and keeps the branch
skribly notifySends a system notification
skribly mcpRuns the MCP server
Exit codes
CodeMeaning
0Success
1Error, such as an unknown target
2Bad usage or no connection
124Timeout exceeded

MCP server

skribly mcp exposes the same operations as MCP tools over stdin and stdout.

Claude Code:

claude mcp add skribly -- skribly mcp

Codex, in ~/.codex/config.toml:

[mcp_servers.skribly]
command = "skribly"
args = ["mcp"]

Cursor and Gemini CLI, in their JSON settings:

{
  "mcpServers": {
    "skribly": { "command": "skribly", "args": ["mcp"] }
  }
}
MCP tools
ToolSame as
skribly_statusstatus
skribly_list_workspacesworkspace list
skribly_list_panespane list
skribly_list_agentsagent list
skribly_start_agentagent start
skribly_prompt_agentagent prompt
skribly_read_agentagent read
skribly_wait_agentagent wait
skribly_explain_agentagent explain
skribly_stop_agentagent stop
skribly_create_panepane create
skribly_run_in_panepane run
skribly_read_panepane read
skribly_wait_outputpane wait-output
skribly_list_worktrees, skribly_create_worktree, skribly_remove_worktreeworktree list, create, remove
skribly_notifynotify

Recipes

A reviewer next to the implementer

skribly agent start reviewer --kind claude --prompt "Review the changes from git diff."
skribly agent wait reviewer --until done --timeout 600
skribly agent read reviewer --lines 60 --text

Parallel worktrees

Each agent gets its own directory and branch, so they do not overwrite each other's files.

skribly agent start impl-api --kind codex --worktree feature/api-export --prompt "Build the CSV export endpoint per SPEC.md"
skribly agent start impl-ui --kind claude --worktree feature/ui-export --prompt "Build the export button per SPEC.md"
skribly agent wait impl-api --until finished --timeout 1800
skribly agent wait impl-ui --until finished --timeout 1800

Wait, then react

blocked means the agent is asking for permission or a choice.

skribly agent wait impl-api --until done,blocked --timeout 900
skribly agent explain impl-api --text
skribly agent read impl-api --lines 30 --text
skribly agent prompt impl-api "1"

Wait for a shell command

skribly pane create tests --kind shell
skribly pane run tests npm test
skribly pane wait-output tests "Tests:.*(passed|failed)" --timeout 300 --new

Safety

Other system users cannot read control.json, but any process of your own user can. If you do not use the API, turn it off with its switch in Settings.

Keep reading

Search this site

Arrows move through the results, Enter opens one, Esc closes. Ctrl K /