*. First proof is an Anthropic API (Claude) seat — not Navi, not a CLI harness.
Before you start
- Docker Desktop is running on the API machine.
- The desktop image exists:
porto/computer:v1. PORTO_COMPUTER=1is inbackend/.env(API and runner both source this file).- You restarted the API after setting the flag.
"ok": true and "image": { "present": true }.
If the report says image_missing:
GET /computerz is public, like /browserz. Start / stop / live view require the same owner bind as chat.
1. Add the operator seat
1
Open Add agent
In the room, click + Add agent.
2
Pick Claude — bare Anthropic API
Not Claude Code. Not Grok CLI. Connect Anthropic in Settings first.
3
Pick a role that is not Navi
Engineer is fine. Computer is never on by default. The preview lists Use a Computer under what this seat cannot do.
* engineer still does not get Computer.
2. Turn Computer on
- Click the seat name. Open Tools.
- Find the caution row Computer.
- Flip the switch on.
- Wait for the next turn. The grant applies then.
computer_* names. Navi has no Computer column.
3. Ask it to use the desktop
Mention the seat in chat. Example:
Open computer/fixtures/form_captcha.html on the Computer. Fill name and email from the resume at the project root. When the mock “I am not a robot” box appears, request a human.
What happens:
- Porto starts one Docker desktop for that seat.
- The agent opens Chromium on that desktop.
- Each click or type writes a JPEG under
artifacts/computer/{agent_id}/shots/. - Those shots show in chat. Do not
read_filethem.
?view=computer&seat={agent_id}.
While the agent has the floor, the view is watch-only. Take over gives you the floor. The lock is server-side (x11vnc -viewonly). The iframe query string is display only.
The desktop only mounts the project vault and the code root (/host/project, /host/code). Put the resume in the project.
4. When it needs you
The agent hands you the floor. The turn ends. You see:- A Computer needs you card in chat
- Inbox computer hold
- Cover chip Your turn
- Open live view from the card, or
?view=computer&seat=…. - Click the box / finish the login in the live view.
- Press I’m finished.
127.0.0.1). A remote browser still gets screenshots.
5. Stop or wipe
You can also tell the agent: “stop the Computer” or “wipe the Computer”.
If Computer is off
Quit Docker and porto chat still works.
Rules that will not bend
- One Computer per granted seat.
*does not grant Computer. The token must becomputer.- You solve your own CAPTCHA. porto will not bypass it.
- Occupancy lives at
~/.porto/computer/, not in the project tree. - The Computer container never gets
docker.sock. - First proof is Anthropic API (Claude). OpenAI gets a path plus markdown, not a vision block. CLI seats stay text.

