The local-first control layer for your AI coding CLIs. One canonical context for every tool, one cross-repo view of every agent you're running.
Sloop is a single Go binary that sits above your AI coding tools: Claude Code, Cursor CLI, Codex CLI, Copilot CLI, Gemini CLI, Google Antigravity, and whatever comes next. It doesn't replace them or proxy their models; it removes the friction of running several of them, across several repos, at once.
sloop ps: one board for every agent, across every repo. Answer a waiting one in a single key.
Three things get awkward once you run more than one agent:
| Problem | What sloop does |
|---|---|
| Each agent runs in its own terminal, so you lose track of who's waiting and who's working. | sloop ps lists every agent across every repo, waiting ones first; jump, reply, or kill in place. |
Each tool wants its own instructions file (CLAUDE.md, GEMINI.md, …), so guidance drifts. |
Write AGENTS.md once; each tool reads it natively or via a thin pointer file. Skills are symlinked into each tool. |
| Skills, hooks, and standard folders differ per provider, so setup is ad-hoc. | One adapter manifest per tool holds all of it. Adding a CLI is adding a file, not editing Go. |
One CGO-free binary: no daemon, no cloud, no required services. State stays on your machine.
macOS / Linux (Homebrew)
brew install stroops/tap/sloopGo (Any platform)
go install github.com/stroops/sloop/cmd/sloop@latestPrebuilt binaries are also available on the Releases page.
The fleet commands (run, ps, peek, …) launch agents inside a multiplexer so they keep running when you step away.
macOS / Linux (tmux)
brew install tmux # or: apt install tmuxsloop doctor # confirm your AI tools + multiplexer are detected
source <(sloop completion zsh) # optional shell completion (bash / fish too)Upgrading Sloop
Whenever a new version is released, simply run:
sloop update(Sloop will automatically detect if you installed via Brew, Scoop, Go, or downloaded the binary directly, and run the correct upgrade process).
cd ~/code/my-service
sloop init # scaffold AGENTS.md + .sloop/, deliver CLAUDE.md, register the repo
$EDITOR AGENTS.md # write your project guidance once
sloop run claude # sync context, then launch claude (inside tmux if present)
sloop hooks install # let `sloop ps` know exactly when an agent is waiting
sloop statusline install # the tool reports its model + context % into the status bar
# …open more agents in more repos…
sloop ps # the whole fleet: who's waiting, who's working, across every repoRunning sloop with no arguments opens an interactive menu over the common commands:
In sloop ps: ↑/↓ move · Enter jump in · 1/y answer a waiting agent · s send a line ·
x kill · q quit.
The orchestration features (ps, run --split, send, attach, peek, popup) run agents inside
a terminal multiplexer so they keep running when you step away. Everything else (init, sync,
check, doctor, …) works without one.
- Sloop drives tmux; it doesn't replace it. It shells out to
tmux(or psmux on native Windows, auto-detected; override withSLOOP_MUX). Install: tmux / psmux. - One session per agent, named
<workspace>__<tool>(e.g.api__claude). That single rule is what makes the fleet board,send, andattachpossible, with nothing untracked to lose. Enterattaches, detaching keeps it running. Step out with your tmux prefix thend(Ctrl+b d, orCtrl+a dif remapped); the agent keeps going and you land back at the fleet. Every session's status bar keeps you oriented: the left shows status · workspace·tool · model · context % · git branch (plus a badge when other agents wait) — everything worth knowing at a glance, on the side tmux never truncates first; the right just rotates hints like💡 detach: <prefix> dso you always know the way back.- Sloop never touches your
~/.tmux.conf. The status bar is set per-session; disable it withSLOOP_STATUSLINE=0.peekandpopupoverlay an agent in a floating popup (needs tmux ≥ 3.2). - Across reboots: tmux sessions live in memory, so a restart ends them (sloop is not
tmux-resurrect). The registry survives, so
sloop ls/sloop ps --allstill show your workspaces andsloop restorerelaunches the fleet.
sloop run claude@review # a 2nd claude in the same repo → claude·review
sloop run claude --new # auto-named next one → claude·2
sloop new claude -N -t "fix the flaky CI test" # same, but detached: spawn it and keep your terminal
sloop profile add work --config-dir ~/.claude-work # save a 2nd account once…
sloop run @work # …and launch under it from any repo--config-dir is the friendly form: you name the directory, sloop maps it to the tool's account
variable (CLAUDE_CONFIG_DIR for Claude), offers to create it if missing, and offers to symlink your
plugins/skills/agents from your main config. Your login (.credentials.json) is never shared. Today
this works for Claude Code; other CLIs follow as their account model is mapped into the adapter.
The handful you'll use most. Full reference, with every command and flag: docs/guide/USAGE.md.
| Command | Alias | What it does |
|---|---|---|
init |
- | Scaffold AGENTS.md + .sloop/, deliver pointers, register the workspace (--scan pre-fills from the codebase). |
run [tool] |
r |
Sync context, then launch a tool. tool@instance / --new for a 2nd agent; @profile for another account; --split for side-by-side. |
new [tool] |
- | run without the attach: spawn the agent in the background and keep your terminal (-a attaches, -N forces a fresh instance). |
ps [#] |
- | The cross-repo fleet. <#> jumps; -f live-monitors and alerts when an agent needs you. |
ls |
- | Registered workspaces (running or not) with their live agents. |
peek [agent] |
pk |
Overlay a waiting agent in a floating popup, answer it, drop back, without leaving your current screen (tmux ≥ 3.2). |
popup |
hud |
Open the whole fleet (ps) as a floating popup / HUD (tmux ≥ 3.2). |
profile add|ls|rm |
prof |
Save reusable run profiles (e.g. a 2nd account) in ~/.sloop/config.yaml. |
- Build on existing tools. Sloop syncs context and orchestrates sessions; it never proxies an LLM or replaces a CLI.
- Local-first & lightweight. One CGO-free binary, no daemon, no cloud.
- Canonical source, never clobbered.
AGENTS.mdis yours; delivery is create-if-missing. - Not an in-repo multi-agent orchestrator with worktrees/dashboards (tools like ntm and Claude Squad own that lane). Sloop's edge is portable context + the cross-repo fleet view.
- docs/guide/USAGE.md: hands-on guide, every command with examples
- docs/reference/CONFIG.md: the three config layers (local / global / built-in)
- docs/reference/ADAPTERS.md: the provider-aware adapter contract (add a CLI = add one YAML file)
- docs/reference/ARCHITECTURE.md: workspace layout, delivery, data flow, internals
- ROADMAP.md: pillars, what's next (v0.2.0 workflow hooks), how to contribute
MIT. See LICENSE.

