jackin' drops AI coding agents into isolated Docker containers — full autonomy inside, your host untouched outside. One CLI. Same-path mounts. Per-agent state.
Every command in jackin' has a named concept behind it. Scroll to turn the page — or click a term in the rail to jump.
—You. Running the CLI from your host machine. The one who decides what gets loaded into a container, and when agents are pulled back out.
Every AI coding agent hands you two failure modes. The false choice is thinking you have to accept either one.
.env, cookies.jackin' gives you exactly one move: a clear boundary around an AI agent. You decide what's inside — toolchains, plugins, conventions — and what it can reach — paths, tokens, exposed ports. Two ways to get there.
Some orgs publish roles for their stack. The jackin' team ships the-architect — with everything the jackin' ecosystem requires to build jackin' itself. Zero config: load and start working.
Your framework's team can ship one just like it for yours.
Two files, one git repo. A short jackin.role.toml declares identity and Claude plugins. A Dockerfile installs your language toolchains and system packages. Versioned, reviewable, self-contained:
dockerfile = "Dockerfile" [identity] name = "Backend Engineer" [claude] plugins = [ "superpowers@superpowers-marketplace", ] [[claude.marketplaces]] source = "obra/superpowers-marketplace"
Smith, Jones, Brown — archetypes to adopt. Every other role, yours to cast.
The default starter. Clone, compile, commit.
Server-side in your company's stack.
UI with your team's conventions.
Platform engineer, SRE, security reviewer, ML researcher — whatever your team needs. Write the Dockerfile, declare the manifest, push the repo.
Same agent in different workspaces. Same workspace with different agents. Pick both — see what runs.
Too much context — worse decisions.
Focused context — better results, faster.
Five moves. Any number of agents. A full day's flow with jackin'.
Enter your project and jack in. Clones the agent repo, builds the derived image, launches the container, drops you into Claude Code.
# enter your project $ cd ~/Projects/my-app # jack in $ jackin load agent-smith → Pulling construct:trixie OK → Cloning agent-smith OK → Building derived image OK → Launching DinD sidecar OK ✓ Agent loaded. You're inside.
Same class, another instance. Spin up a second agent-smith on a different branch or service — separate container, separate state, its own network.
# first clone · auth redesign $ cd ~/Projects/auth-redesign $ jackin load agent-smith ✓ agent-smith #1 loaded. # second clone · payments v2 $ cd ~/Projects/payment-v2 $ jackin load agent-smith ✓ agent-smith #2 loaded. → 2 agents running. Separate containers, DinD, networks.
Reattach your terminal to a running agent. Closed the window, switched machines, back from a break — pick up where you left off.
$ jackin hardline agent-smith → Locating container OK → Attaching to session OK ✓ Session restored. History intact.
Stop one agent cleanly. State persists on disk for next time — the operator decides when a construct is torn down.
$ jackin eject agent-smith → Saving agent state OK → Stopping container OK → Removing network OK ✓ Ejected. State preserved.
Pull everyone out at once. Every agent stopped, every network removed. End of day, or a panic button.
$ jackin exile → Exiling 3 agents agent-smith OK the-architect OK docs-writer OK → All networks removed ✓ All clear. Host untouched.
Homebrew on Mac and Linux. Tap, install, load — you're in.