colin creates or resumes a sandbox on tenki.cloud, drops your coding agent into tmux, and hands you a session you can drive from the terminal or from claude.ai/code. A paused box costs you a few seconds, not an error.
curl -fsSL https://colincode.org/install.sh | shmacOS & Linux · installs colin into ~/.local/bin · needs the tenki CLI and jq
colin claude
colin opencode
colin codex
Boxes are named colincode-<harness> and are independent — colin claude down never touches your codex box.
Launches claude --remote-control inside tmux, so the box shows up in claude.ai/code and the mobile app. The only harness you can drive from your phone.
Same box treatment for opencode. Interactive over SSH, headless with colin opencode run -- "…". Bring an Anthropic or OpenAI key, or both.
Codex CLI in tmux with codex exec for one-shot prompts. Skip the key entirely and run codex login inside the box via colin codex shell.
Run the one-liner. It puts colin on your PATH and checks for the tenki CLI and jq. Log in with tenki login if you haven't already.
colin auth claude runs claude setup-token and saves the long-lived token to ~/.config/colincode/env with mode 0600. Or skip it and sign in inside the box.
Type colin claude. The box is created (or resumed), tmux is provisioned, the agent starts, and you get the Remote Control name to open on claude.ai/code. Reattach anytime with colin claude ssh.
Every subcommand routes through ensure_running(): it creates a missing box, resumes a paused one, waits out a pending one, and only then does what you asked.
A paused box is resumed, a pausing box is waited out, a missing box is created. No more "sandbox not RUNNING" errors.
Agents run in a named tmux session, so SSH drops and sandbox pauses don't kill them. Detach with Ctrl-b d, reattach with ssh.
Claude Code boots with --remote-control, so the sandbox is one tap away in claude.ai/code or the mobile app.
If both an OAuth token and an API key exist, only the token is injected — so Claude Code bills your subscription, not credits.
colin <harness> [action] harness: claude | opencode | codex colin <action> uses the default harness (claude) up (default) create or resume the box and start the agent ssh attach to the running agent session shell plain shell in the box run -- <prompt> one-shot headless prompt status show box state down pause the box (auto-resumed next time) rm terminate the box colin auth [harness] store credentials colin ls list every colincode box
| Variable | Default | Meaning |
|---|---|---|
COLINCODE_HARNESS | claude | harness used when you omit one |
COLINCODE_CPU | 4 | vCPU cores |
COLINCODE_MEMORY_MB | 8192 | memory |
COLINCODE_DISK_GB | 20 | root disk (tenki recommends 20 for agents) |
COLINCODE_IMAGE | none | start from a published registry image |
The harness registry is one case statement away from supporting the full set of CLI agents already proven in agentcamp.
Pick a preferred inference provider per harness, nemocode.org-style, injected into the box so every agent talks to the models you choose.
Reopen a Claude session started in a sandbox even after the sandbox paused — the box wakes on demand and the session picks up where it left off.
Free and open source. Your tenki account, your keys, your sandbox — colin is just the glue.
curl -fsSL colincode.org/install.sh | sh