Bowline for coding agents
Bowline for Claude Code
Bowline gives Claude Code the same ~/Code on every machine and remote host: source, .env, and uncommitted work already present. No re-clone, no copied secrets.
Running Claude Code across machines
On a fresh remote or ephemeral host, claude has no repo, no login, and no .env. You re-clone, sign in again (or export ANTHROPIC_API_KEY), and copy secrets before it can do anything. Every edit it makes is stranded on that box until you commit and push.
- Vendor
- Anthropic
- Type
- CLI
- Runs on
- macOS, Linux, and Windows (native or WSL). Distributed as a native binary.
- Headless
- Yes. It runs non-interactively in CI or over SSH.
- Auth
- Signs in through a browser with a Claude subscription (Pro, Max, Team, or Enterprise) or an Anthropic Console account, or reads ANTHROPIC_API_KEY from the shell. Credentials live in the macOS Keychain, or in ~/.claude/.credentials.json on Linux.
- Env
- Runs your tools in your shell, so it inherits whatever is exported. It does not auto-load a project .env; ANTHROPIC_API_KEY and any tool secrets must already be in the environment (or set under `env` in settings.json).
What bowline does for Claude Code
bowline keeps the real project under ~/Code on every trusted host: source, opaque Git state, uncommitted work, .env, .mcp.json, and CLAUDE.md all travel, so claude starts against the same tree and instructions everywhere. You still sign Claude Code into your Anthropic account once per host. That is the one trust step. There is no re-clone, no copied .env, and no stale worktree. Edits claude makes sync straight back to your laptop; for risky runs, start the agent under a lease and gate it with `bowline review` and `bowline accept` before changes land.
How Claude Code is configured
The files Claude Code reads. Every one of these that lives in the project travels with ~/Code, so Claude Code sees the same configuration on every machine.
~/.claude/settings.jsonuser settings~/.claude/user config, agents, commands, credentials.claude/settings.jsonproject settings (checked in).claude/settings.local.jsonpersonal project overrides (gitignored)CLAUDE.mdproject instructions read on start.mcp.jsonproject MCP servers
Set it up
Install bowline, trust the machine or host, then run Claude Code against ~/Code with source, config, and .env already present.
curl -fsSL https://install.bowline.sh | sh # on your laptop, once bowline login bowline connect gpu-box # bootstrap the host over SSH; ~/Code lands there ssh gpu-box 'cd ~/Code/your-project && claude'
Questions
- Does Bowline replace claude login or my ANTHROPIC_API_KEY?
- No. bowline carries your project, .env, and Claude Code's in-repo config (CLAUDE.md, .mcp.json). You still sign Claude Code into your Anthropic account or export ANTHROPIC_API_KEY once per host. bowline removes the re-clone, the copied .env, and the stale worktree, not the model auth.
- Can I run Claude Code headless on a remote box with Bowline?
- Yes. claude -p runs non-interactively in CI or over SSH. With bowline the box already has the repo, config, and .env, so `cd ~/Code/your-project && claude -p '...'` works without a setup step, and its edits sync back to your other machines.
- Where do Claude Code's edits go when it runs on another machine?
- Into your real ~/Code on that host, which bowline syncs to every trusted device. Uncommitted edits travel too, so you can review or keep working from your laptop. For risky runs, start the agent under a lease and gate it with bowline review and bowline accept.
Your ~/Code, on every machine and every agent.
Install bowline and your projects follow you. It just works.
curl -fsSL https://install.bowline.sh | shmacOS app · Linux CLI. Then run bowline login.