tesser the same way it would call git or pnpm. You watch the result in
the browser.
Install the skill
~/.claude/skills/tesser/SKILL.md, which Claude Code loads for
every project. If you would rather keep the skill in the repository,
tesser skill install --project writes it to .claude/skills/tesser/ in the
current worktree, which is the same directory the service manifests live in.
Committing it gives every teammate’s agent the same instructions. For an
agent other than Claude Code, tesser skill print writes the skill to stdout
so you can place it wherever that agent reads instructions.
What the skill tells the agent
The skill is a single page describing the commands and the rules around them. The most important rules are:- Commands that create or select a box print only the box id on stdout, so
the agent can capture it with
BOX=$(tesser dev web). Progress messages go to stderr. tesser exec -- <cmd>runs on the worktree’s workbench, which never runs a dev server. Tests, typechecks, and installs belong there.- Files are edited on the laptop and never on the box, because the next sync overwrites the box’s copy.
stopandrmdo not ask for confirmation, andrmcannot be undone.
What you do
You starttesser daemon once and leave it running, and you open
localhost:3000 when the agent tells you a server is up. Every page served
through the daemon has a small panel in its corner that lists your boxes, so
when the agent has several branches running you can switch between them
without using the terminal.
If the agent reports that localhost:3000 refuses connections, the daemon is
not running. The agent cannot start it for you.