Disposable capsule
A fresh simulator device per session, made by cloning and thrown away at the end. No simulator window ever opens, only Kelvin's. We measured 3.3 s to clone and 16.1 s until the capsule is usable.
FEATURES
The code never leaves the machine of the person presenting. What crosses the network is the proof: the captures, the step by step of the run and the verdict.
A fresh simulator device per session, made by cloning and thrown away at the end. No simulator window ever opens, only Kelvin's. We measured 3.3 s to clone and 16.1 s until the capsule is usable.
The app is an MCP server: Claude, Codex or Cursor connect and start tapping, swiping, typing, installing, launching and capturing the screen — 18 actions, with you watching every one.
Every checkpoint goes into a package with a SHA-256 hash per file, and replay runs on a fresh capsule. Publishing a report takes human approval bound to those exact bytes: if they change, the approval falls.
| requirement | why |
|---|---|
| macOS 14 or newer, Apple Silicon | It is where Kelvin runs. |
| Xcode | The iOS runtimes come from it — Kelvin uses them, it does not replace them. |
| macOS 15 and idb-companion, via Homebrew | For touching the screen, typing and streaming the session. It is not in the DMG: install it once, before the first session. |
A run seals a package with the captures, the step by step and the verdict — 26 objects, each checked against the hash the run declared. An entry only counts as received once it matches.
exercised in productionIn a real run the home screen scored 0.999983 and checkout dropped to 0.568276. The run finished whole, with a failing verdict only where there was a failure: running and concluding are separate axes.
exercised in productionThe simulator on your Mac crosses the cloud and shows up in the browser of the person you called. One real session ran 28 min 51 s; in another, 251 inputs were accepted, with control moving from the agent to the person after the current action finished.
exercised in productionSomeone who can already read the proof of a run invites one person by e-mail, with a seven-day window and revocation at any time. Anyone not invited gets “not found”, never “not allowed”.
exercised in productionThe e-mail of the person you invite is never stored — only a hash of it. The system cannot even answer whether a person is a member.
exercised in productionThe Mac you enrol identifies itself with a key anchored in hardware, and the connection is outbound only: Kelvin opens no inbound port on your machine.
exercised in production| measure | value |
|---|---|
| Objects in a sealed package | 26 |
| Size of one package | 201,743 – 203,778 B |
| Run end to end | 142.4 s – 174.0 s |
| Similarity: intact screen / broken screen | 0.999983 / 0.568276 |
| Length of a live session | 28 min 51 s |
| Inputs accepted in one session | 251 |
| Window of an invitation | 7 days |
| Actions published by the remote connector | 15 |
| Green tests | 1,873 |
Measured on real runs. What we did not measure is not in this table. Every version of the app shows up in the changelog.
What leaves your machine, and where it goes, is in the privacy policy.
Kelvin's remote connector lives at a single address, and adding it takes two steps: copy the URL and paste it into Claude's connector settings. The button does both.
MCP server addresshttps://mcp.kelvincode.com/mcp
Copy the URL and open Claude's connectors
The agent signs in against your own membership: what it can do in a room is what you can do, never more. Reading can be granted quietly; anything that writes takes a consent you gave on screen.
Claude is a trademark of Anthropic. Kelvin Code is not affiliated with Anthropic and is not endorsed by it.
The local core runs on your Mac, free and with no account. Kelvin Code Cloud is in closed alpha: access is by named invitation.