Skip to main content
agent-backbone: your terminal agents, working as a team

Claude Code, Codex and OpenCode, working as one team on your machine.
Agents message each other by name, take work from GitHub Issues and reach you on your phone.
They use the logins you already have, and core use needs no setup in your repositories.

PyPI Python CI Downloads License: MIT

Watch · Quick start · Why Backbone · Docs · Security

Watch

https://github.com/user-attachments/assets/695a6096-4196-4115-911c-a0043d632088

The overview, 1:23, captioned. Unmute for the narration.

Up next  ›
Why Backbone, 2 minutes 23: from 'set up Backbone for me' to a team on three CLIs

Why Backbone

You already run coding agents in your terminal. Each one works alone, and you carry every message between them. Backbone turns them into a team.

Never typed into a busy agent
Agents reach each other by name. When the recipient is working or waiting for you, the message is queued and delivered when the agent is ready, marked with who sent it. Ordinary messages expire after 30 minutes by default, and the sender is told.

No setup in your repositories
An agent is a folder and the CLI you choose, and the folder is its name. Core use adds no configuration files, task schemas or commits to your projects.

GitHub Issues are the task list
In a repository worker owns or watches, label an issue for:worker and it lands in worker's queue, one at a time. To hand work on, an agent opens an issue for another. The issue stays as the record.

Mix CLIs in one team
Claude Code, Codex and OpenCode agents work side by side, and a swarm puts a coordinator and helpers on different CLIs on one branch. A second model can review the change.

In the loop from anywhere
Watch any agent, step into its terminal, or answer from your phone. With Telegram set up in a group with topics, every agent outside a swarm gets its own topic, with Allow and Deny on permission prompts.

State you can check
Backbone tracks whether each agent is idle, working or waiting for a person, and shows the evidence behind every reading. Your agents decide the work.

New sessions are briefed on these tools, so you can ask any agent to set up the team you need: an agent per repository, skills and rules shared by tag, specialists on request.

Quick start

Let your agent do it. Open the coding agent you already use and say:

Install agent-backbone with uv tool install agent-backbone,
then run backbone help setup and follow it.

The setup playbook is written for agents: each step ends with a check and says when it needs you, for your accounts and secrets.

Or by hand. You need macOS or Linux, Python 3.11+, tmux, uv (or pipx), and an agent CLI installed and signed in.

uv tool install agent-backbone
backbone init
backbone service install           # start now and at login
backbone doctor                    # check dependencies and API access

Then, from a repository you want an agent to work in:

cd ~/code/app
backbone agent start --runtime claude   # or --runtime codex, --runtime opencode
backbone tell app "Summarise what this repository does in three sentences."
backbone agent attach app               # read its reply; Ctrl-b d detaches

The folder supplies the agent name. If startup reports a prompt or a timeout, backbone agent inspect app shows what needs attention. tell reports whether the message was delivered or queued; delivery does not mean the agent has finished answering. A queued message waits until the agent is ready, up to 30 minutes by default, so do not resend a message the queue accepted. If backbone is not on your PATH, run uv tool update-shell and open a new terminal. In a container without a login service, use backbone up --detach. ab is a short alias; on macOS, use backbone if Apache Bench shadows it.

Getting started walks through a second agent, GitHub and Telegram. Quick usage is the everyday command guide.

Built to be relied on

  • One delivery gate. Everything typed into an agent's terminal passes the same readiness check. Busy agents are never interrupted, and every message carries where it came from.
  • The same result on every required CLI. A capability ships only when it works the same in Claude Code, Codex and OpenCode, checked by the same behaviour test on each. The runtime capability table and backbone doctor read one contract, and gaps are listed, not hidden.
  • More than 3,500 tests, run on every change with no network, models or services.
  • Built with itself. Backbone is developed by agents running inside a Backbone in daily use. The films in this README were made the same way.
  • An honest security model. One trusted user on one machine, an API on localhost, and a clear account of what agents can reach. Read Security before granting access.

Backbone is not an agent framework: it calls no models and needs no model API keys. It is not a workflow engine or a dashboard either. It gives your agents names, safe messages and evidence, and leaves the work to them.

Works with

CLI Support
Claude Code, Codex, OpenCode Required set: a capability ships only when it works on all three, and any open gap is tracked as a defect
Gemini CLI, Deep Code, Aider Supported on demand; each gap is listed in the capability table

Going further

  • GitHub: route issues and review notifications, starting with token-based polling. GitHub App setup adds webhooks.
  • Swarms: put several specialists on one task.
  • Skills: keep one copy of each skill, tag it, and every agent with that tag finds it in its own CLI.
  • Telegram: send messages and read reports from your phone.
  • Token usage: tokens by agent, conversation and model.
  • API: build a dashboard or automation; Backbone ships no UI.
  • Runtime support and limits: checked capabilities, unsupported environments and known limitations.
  • How it works: state detection, delivery and routing.

The documentation index covers configuration, diagnostics and the remaining references. Installed copies are available through backbone docs; backbone help contains short agent playbooks.

Security model

Backbone runs as one trusted OS user on one machine. Agents are not isolated from each other. The API binds to localhost by default and uses one full-admin key; local sessions can read that key through the CLI. Backbone keeps its control-plane secrets out of launched environments, but this is not a filesystem security boundary. Read Security before granting access or exposing the API.

Development

git clone https://github.com/eandualem/agent-backbone
cd agent-backbone
make install
make check
BACKBONE_DATA_DIR=/tmp/backbone-dev make dev

make dev runs on its own tmux server, so its agents stay apart from your own tmux sessions and from a real backbone's agents. Run CLI commands for it from a terminal outside tmux with the same settings, for example TMUX_TMPDIR=/tmp/backbone-dev-tmux-$(id -u) BACKBONE_DATA_DIR=/tmp/backbone-dev uv run backbone agent attach NAME. agent attach, and agent commands run while make dev is stopped, use tmux directly.

See Contributing for branches, checks and releases.

License

MIT.

Metadata

Release files for agent-backbone 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agent-backbone 0.3.0
File Size Uploaded Provenance
agent_backbone-0.3.0.tar.gz 900.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for agent-backbone 0.3.0
File Interpreter ABI Platform
agent_backbone-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.9 MB

Release files / agent_backbone-0.3.0.tar.gz

Download URL agent_backbone-0.3.0.tar.gz
Size 900.3 kB
Tags Source
SHA-256 checksum
How to use checksums
c2788b3cbfcfa4f6d2249a596fe5629c7ca22a11687f1de5b48465a65960f561
BLAKE2b-256 checksum
How to use checksums
f303f5ae48bc9581b36e8eb4bb58ce5189c553f4b4eb71c4bcf19620ae44b778
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / agent_backbone-0.3.0-py3-none-any.whl

Download URL agent_backbone-0.3.0-py3-none-any.whl
Size 1.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
9146d6662fa0bdcc0c0eef4516816052e67d2ae3c9a33867020adfaa03e848f2
BLAKE2b-256 checksum
How to use checksums
59d92cfda53aafa248b54489975320e8891f3e067661f5a181c5cddff6f85282
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for agent-backbone 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page