Coding agents need a machine that never sleeps. You need the code on the computer in front of you. Corami gives you both: the agent runs on an always-on Linux server, and each of your computers keeps a real copy of the code on its own disk, synced with the server in both directions.
Corami is the host, not the agent: you install OpenCode, Claude Code, Codex or any other harness on the server.
- At your desk, you give the agent a task. Its edits show up in the project folder on your Mac as it saves them. You follow them in your editor, and tests and Xcode run at local speed, with no remote filesystem.
- The agent needs the iOS simulator: it runs
corami exec --on macbook -- flutter run -d "iPhone 16", the Mac asks you once in a dialog, and the app builds in the synced copy on the Mac. - Time to leave: close the lid, no commit needed. Your last saves are already on the server, and the agent keeps working there.
- On the train, you open the preview on your phone and keep talking to the agent: the Next.js dev server runs on the server, and
corami serve 3000gave it a stable HTTPS address, so it can stay in your bookmarks. - Back at your desk, you open the lid: what the agent did while you were away syncs to the Mac by itself.
- On another computer,
corami project add ~/dev/myapp --from-server --name myappbrings the same files, uncommitted work included.
You need a Linux server (a small VPS is fine), a Tailscale account, free for personal use, and a laptop.
# on the server, as root
curl -fsSL https://github.com/tapeo/corami/releases/latest/download/install.sh | sh
# on the laptop, signed in to the same Tailscale account
curl -fsSL https://github.com/tapeo/corami/releases/latest/download/install.sh | sh
# copies the project to the server, which becomes the source of truth:
# the folder stays here, in sync with the copies on your other machines
corami project add ~/dev/myappThe quick start goes through it step by step, then adds your agent and a preview you open from the phone.
┌──────────────── Linux server (always on) ────────────────────┐
│ corami daemon · projects (source of truth) · previews │
│ your agent │
└──────▲──────────────────▲────────────────────▲───────────────┘
│ Tailscale │ Tailscale SSH │
│ (HTTPS) │ (Mutagen) │
phone ───────────────┘ macOS ──────┘ Linux/Windows┘
browser: agent UI, synced copy, synced copy,
previews builds (Xcode) builds
- One binary.
coramiis the CLI on every machine and the daemon on the server. - Sync. Files travel with Mutagen over Tailscale SSH. A conflict that cannot be solved without losing data is held and reported, never overwritten. Dependencies and build outputs (
node_modules,build,Pods...) stay out of the sync and each machine regenerates them. Everything else syncs, keys and env files included: keeping a secret off the machines is a decision made in the project, not by Corami. - Private. Nothing is on the public internet: the server, the agent and the previews are reachable only through your Tailscale network.
- Builds on a client. When only a client can do it (Xcode, a simulator, a phone on USB), the agent runs the command there with
corami exec, aftercorami exec setupon that client. What the agent may run is decided by the permissions of the harness. - Scriptable. Every command takes
--json, the default without a terminal.corami exec --onis the exception: it passes the output of the command through, and collects it in the envelope only with--json.
Early: it works end to end on a real VPS with a macOS client. Binaries and updates come from the GitHub releases, and corami update keeps every machine current.
- Quick start: from nothing to an agent and a preview on your phone
- Security: what to keep in place, in order of weight
- CLI reference
- Previews: a dev server with an HTTPS address
- Builds: on the server, or on a client with
corami exec - Backup: what to save and how
- Architecture: how it is built
- Internals: invariants the code relies on
- Development
- Ideas for v2
Corami is released under the Functional Source License, version 1.1, with Apache 2.0 as the future license (FSL-1.1-ALv2), see LICENSE. You can use, modify and share it for any purpose except offering a competing commercial product or service. Each version becomes Apache 2.0 two years after its release. Contributions are welcome under the terms in CONTRIBUTING.md.
