daemonless·local-first·built on tmux
Run Claude Code, Codex, Grok, OpenCode — or any command — as managed sessions: identity, live status, agent-to-agent coordination, and one dashboard over all of them.
$ curl -fsSL agentfactory.sh/install.sh | sh▋
requires tmux ≥ 3.2 · Linux and macOS
$ af status NAME HARNESS MODEL STATUS architect claude-code opus awaiting-input builder codex gpt-5 working reviewer grok grok-4 working docs opencode sonnet idle tests claude-code haiku done llama-8b custom - working
why af
Know when you're needed
A bell, a notification, or an on-screen prompt flips a session to awaiting-input the instant it blocks. No polling, no per-agent setup.
Agents that coordinate
One agent opens, steers, waits on, and reads another — a coordinator/worker loop with no daemon and no message bus.
Status you can trust
working · idle · awaiting-input · done, derived four independent ways — solid enough to script against or block on.
Unkillable by design
Sessions live in tmux; af only holds state. Restart, upgrade, or crash af — your agents never notice.
in 30 seconds
# launch a Claude Code agent in a repo $ af open --harness claude-code --model opus -C ~/src/api --name planner # see the whole fleet at a glance $ af status # hand it work, then block until it's done $ af send planner "refactor the auth middleware, then run tests" $ af wait planner --for done # step in with a full-fidelity attach when it needs you $ af attach planner
get af
$ curl -fsSL agentfactory.sh/install.sh | sh
The script downloads the release binary for your platform, verifies its SHA-256 checksum, and drops af on your PATH. Read it first if you like: install.sh.
Needs Go 1.25+. Builds and installs to ~/.local/bin with shell completion.
Linux and macOS, amd64 and arm64. Grab the archive, drop af on your PATH.