Docs
Doors
A door is any client attached to the user channel. The occlusion is in the runtime, not in a client, so every door sees the same view and writes the same record.
The doors
| Door | For | How it reaches the session |
|---|---|---|
| Browser workspace | Contractors with nothing to install: editor, terminal, preview and submit | Connects to the workspace for the length of the session |
| VS Code over SSH | People who keep their own editor | A certificate per grant, valid as long as the grant. The terminal opens on the person's side, and the editor's server installs into their temporary home |
| MCP | Claude Code, Codex, Cursor and CI | The tools read_file, list_files, search, write_file and run_command map onto the same operations as every other door. run_command runs a named script, never a shell. A service that already routes your agents' tool calls sees one MCP server |
| Agent inside Occlude | Tasks run by Occlude's own agent | Under its own grant, through the same protocol as the browser. Its file tools see the person's side; its checks run as named jobs |
Parity
One task, "add a currency field to Dashboard.tsx", under one grant, through every door:
| Step | Browser | MCP | VS Code over SSH | Agent inside Occlude |
|---|---|---|---|---|
List src/ | File list on the person's side | list_files, same event | ls in a terminal on the person's side | list_files tool, same event |
| Read an Occluded file | ENOENT, logged as an attempt | ENOENT, logged | No such file or directory, logged | ENOENT, logged, scope drift recorded |
| Hover an Occluded function | Signature from the stub | Not applicable | Signature from the same stub | Not applicable |
| Run the dev server | dev, by name | run_command dev | npm run dev | Its checks run the build, the tests and a smoke test |
| Submit | occlude submit | run_command submit | occlude submit | A pull request at the end of the plan |
| Record | Same events, tagged with the door | Same | Same | Same, plus the plan |
The rule every door is tested against: the same task produces the same record, byte for byte, apart from the door's tag.
Local mode
Occlude's bridge can also run on a developer's own machine and speak the same protocol. There is no person's side and no build's side there, and whoever owns the machine owns the workspace. Local mode is outside the security claim: it is labelled unenforced in the interface and on every event, an admin can forbid it per repository, and it is never presented as a boundary.