Skip to main content
Tesser is designed to be driven by a coding agent. The agent edits files on your laptop as it normally does, and when it needs to run something it calls tesser the same way it would call git or pnpm. You watch the result in the browser.

Install the skill

This writes ~/.claude/skills/tesser-cli/SKILL.md, and it is only a few lines: a description so the agent picks it up when a box is what the task needs, and an instruction to run tesser --help first. Nothing in it changes between releases, so installing it once is the end of it. For an agent that reads instructions from somewhere else, tesser skill install --dir <path> writes the same file there.

Signing in

The agent can sign in for you. When the agent runs tesser login and finds no saved token, the CLI prints a sign-in link and exits instead of opening a browser. The agent sends you the link. Open it in any browser, choose the org, and approve. Then tell the agent you have approved it, and it runs:
The CLI collects the token, saves it the same way a browser sign-in does, and prints the account and org it signed in as. The link works for 10 minutes. Each tesser login --wait waits up to 100 seconds for the approval, so the agent can run it again if you have not approved yet. Only approve a link that you or your agent just made: whoever made it gets to act as you.

The CLI is the skill

Everything the agent needs to know lives in the binary, so it is current by construction:
  • tesser --help is the model and the rules: what a workbench is, what dev does, that files are edited on the laptop and never on the box, that rm does not confirm.
  • tesser <command> --help is that command’s actual behavior. tesser dev --help says it reuses the box per (worktree, service) and waits on its own port; tesser wire --help has the two-boxes recipe; tesser service --help is the manifest format.
  • Errors name the next command to run.
tesser update replaces the binary, and with it every word of the above. There is no second copy to fall behind.

What you do

You open the address the agent gives you (http://box-<id>.localhost:<port>) when it tells you a server is up. The daemon behind that address starts itself the first time the agent runs tesser dev; tesser daemon install makes it a login service so it is there after a reboot too. 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 focus one and see it on bare localhost:<port>, without using the terminal.

A typical session

Cloud agents

An agent that runs somewhere other than your laptop, such as Devin, uses the same CLI and signs in with a token instead of a browser. An admin creates a grant so the agent’s own id token is exchanged for one, or you give it your own token as TESSER_TOKEN. Agents and CI has the commands.