supacode-cli

Control Supacode worktrees, tabs, and terminal surfaces from the command line.

Updated Jun 4, 2026
One-click install
npx skills add https://github.com/PeteRichardson/skills --skill supacode-cli-peterichardson
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: supacode-cli
Source: https://github.com/PeteRichardson/skills/tree/main/supacode-cli
Command: npx skills add https://github.com/PeteRichardson/skills --skill supacode-cli-peterichardson

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Managing Supacode worktrees, tabs, and terminal surfaces manually through the GUI is slow and cannot be scripted. This Skill lets you drive the entire Supacode app programmatically from any Supacode terminal session via the supacode CLI. ## Core Features & Use Cases - Worktree Management: List, focus, archive, pin, rename, and delete Git worktrees, plus run or stop configured repository scripts. - Tab and Surface Automation: Create tabs and split terminal surfaces with explicit UUID targeting, run commands in them, and close them when done. - Repository Operations: Open repositories and create new worktrees with branch, base ref, and pin options. - Use Case: Spin up a new tab running npm start, split it vertically to run npm test alongside, capture the returned UUIDs, then close both surfaces once the checks pass — all in one scripted sequence. ## Quick Start Ask the AI to create a new Supacode tab running your dev server, split it vertically for tests, and capture the returned IDs so both surfaces can be managed and closed afterward.

Frequently Asked Questions about supacode-cli

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a new tab in Supacode from the terminal?

Run supacode tab new with an optional -i flag for the command to execute, and capture the printed UUID into a variable. For example, TAB_ID=$(supacode tab new -i "npm start") gives you the ID needed for all later operations on that tab.

How do I split a terminal surface in Supacode programmatically?

Use supacode surface split with -t and -s flags targeting the tab and surface, plus -d h or -d v for direction. For a newly created tab, the initial surface ID equals the tab ID, and the split command prints the new surface UUID to stdout.

Why does supacode surface split target my own shell instead of the new tab?

Omitting -t and -s makes the command default to $SUPACODE_TAB_ID and $SUPACODE_SURFACE_ID, which refer to your current shell session. Always pass the captured UUIDs explicitly when targeting resources you created.

Why do supacode commands fail with Operation not permitted?

The supacode CLI talks to the app over a Unix domain socket, and sandboxed environments that deny socket connections block every command. Re-run with escalated permissions or from an unsandboxed shell to resolve it.

What happens when I archive or delete the worktree I am working in?

Archiving or deleting your own worktree closes your current surface, so any commands after that call will not run. Make it your final operation after finishing all edits, commits, and reporting.