colincode.org
Powered by tenki.cloud · auto-resume

Claude Code opencode Codex in a box,
one command away.

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.

install.sh
$curl -fsSL https://colincode.org/install.sh | sh

macOS & Linux · installs colin into ~/.local/bin · needs the tenki CLI and jq

colin claude colin opencode colin codex
🔁 Pause-safe: tmux survives, sessions reattach 📱 Remote Control from claude.ai/code and mobile 📌 Sticky boxes — never reaped by a timer
Supported harnesses

Each agent gets its own box.

Boxes are named colincode-<harness> and are independent — colin claude down never touches your codex box.

Claude Code

Remote Control
$colin claude

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.

CLAUDE_CODE_OAUTH_TOKENANTHROPIC_API_KEY

opencode

Stable
$colin opencode

Same box treatment for opencode. Interactive over SSH, headless with colin opencode run -- "…". Bring an Anthropic or OpenAI key, or both.

ANTHROPIC_API_KEYOPENAI_API_KEY

Codex

Stable
$colin codex

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.

OPENAI_API_KEY
Start a box

Three commands from zero to a running agent.

1

Install once

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.

2

Store credentials (optional)

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.

3

Launch

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.

Why colin exists

The tenki CLI has every primitive. This is the glue.

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.

Auto-resume

A paused box is resumed, a pausing box is waited out, a missing box is created. No more "sandbox not RUNNING" errors.

Lives in tmux

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.

Remote Control

Claude Code boots with --remote-control, so the sandbox is one tap away in claude.ai/code or the mobile app.

Exclusive credentials

If both an OAuth token and an API key exist, only the token is injected — so Claude Code bills your subscription, not credits.

Usage

One verb per thing you want.

colin help
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
VariableDefaultMeaning
COLINCODE_HARNESSclaudeharness used when you omit one
COLINCODE_CPU4vCPU cores
COLINCODE_MEMORY_MB8192memory
COLINCODE_DISK_GB20root disk (tenki recommends 20 for agents)
COLINCODE_IMAGEnonestart from a published registry image
Roadmap

Where this is going.

Every harness from agentcamp

Next

The harness registry is one case statement away from supporting the full set of CLI agents already proven in agentcamp.

Relay setting

Planned

Pick a preferred inference provider per harness, nemocode.org-style, injected into the box so every agent talks to the models you choose.

Resume through a pause

Planned

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.

Put your agent in a box in one line.

Free and open source. Your tenki account, your keys, your sandbox — colin is just the glue.

$curl -fsSL colincode.org/install.sh | sh