agent-backbone 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. agent_backbone-0.1.0/.gitignore +27 -0
  2. agent_backbone-0.1.0/LICENSE +21 -0
  3. agent_backbone-0.1.0/PKG-INFO +188 -0
  4. agent_backbone-0.1.0/README.md +149 -0
  5. agent_backbone-0.1.0/alembic.ini +43 -0
  6. agent_backbone-0.1.0/docs/README.md +28 -0
  7. agent_backbone-0.1.0/docs/api.md +243 -0
  8. agent_backbone-0.1.0/docs/cli.md +219 -0
  9. agent_backbone-0.1.0/docs/concepts.md +158 -0
  10. agent_backbone-0.1.0/docs/configuration.md +156 -0
  11. agent_backbone-0.1.0/docs/getting-started.md +353 -0
  12. agent_backbone-0.1.0/docs/github-app-setup.md +227 -0
  13. agent_backbone-0.1.0/docs/github.md +180 -0
  14. agent_backbone-0.1.0/docs/how-it-works.md +270 -0
  15. agent_backbone-0.1.0/docs/integrations.md +47 -0
  16. agent_backbone-0.1.0/docs/security.md +152 -0
  17. agent_backbone-0.1.0/docs/status-and-roadmap.md +75 -0
  18. agent_backbone-0.1.0/docs/swarms.md +136 -0
  19. agent_backbone-0.1.0/docs/telegram.md +108 -0
  20. agent_backbone-0.1.0/pyproject.toml +96 -0
  21. agent_backbone-0.1.0/src/agent_backbone/__init__.py +8 -0
  22. agent_backbone-0.1.0/src/agent_backbone/api/__init__.py +1 -0
  23. agent_backbone-0.1.0/src/agent_backbone/api/app.py +261 -0
  24. agent_backbone-0.1.0/src/agent_backbone/api/auth.py +48 -0
  25. agent_backbone-0.1.0/src/agent_backbone/api/deps.py +72 -0
  26. agent_backbone-0.1.0/src/agent_backbone/api/models.py +422 -0
  27. agent_backbone-0.1.0/src/agent_backbone/api/routes/__init__.py +1 -0
  28. agent_backbone-0.1.0/src/agent_backbone/api/routes/agents.py +381 -0
  29. agent_backbone-0.1.0/src/agent_backbone/api/routes/config.py +58 -0
  30. agent_backbone-0.1.0/src/agent_backbone/api/routes/deliveries.py +69 -0
  31. agent_backbone-0.1.0/src/agent_backbone/api/routes/events.py +23 -0
  32. agent_backbone-0.1.0/src/agent_backbone/api/routes/help.py +42 -0
  33. agent_backbone-0.1.0/src/agent_backbone/api/routes/integrations.py +47 -0
  34. agent_backbone-0.1.0/src/agent_backbone/api/routes/issues.py +188 -0
  35. agent_backbone-0.1.0/src/agent_backbone/api/routes/messages.py +58 -0
  36. agent_backbone-0.1.0/src/agent_backbone/api/routes/plans.py +139 -0
  37. agent_backbone-0.1.0/src/agent_backbone/api/routes/status.py +136 -0
  38. agent_backbone-0.1.0/src/agent_backbone/api/routes/swarms.py +87 -0
  39. agent_backbone-0.1.0/src/agent_backbone/api/routes/webhook.py +91 -0
  40. agent_backbone-0.1.0/src/agent_backbone/api/session_updates.py +184 -0
  41. agent_backbone-0.1.0/src/agent_backbone/api/socketio_server.py +348 -0
  42. agent_backbone-0.1.0/src/agent_backbone/base/__init__.py +6 -0
  43. agent_backbone-0.1.0/src/agent_backbone/base/lifecycle.py +83 -0
  44. agent_backbone-0.1.0/src/agent_backbone/base/protocols.py +27 -0
  45. agent_backbone-0.1.0/src/agent_backbone/cli/__init__.py +261 -0
  46. agent_backbone-0.1.0/src/agent_backbone/cli/__main__.py +5 -0
  47. agent_backbone-0.1.0/src/agent_backbone/cli/_common.py +113 -0
  48. agent_backbone-0.1.0/src/agent_backbone/cli/agents.py +442 -0
  49. agent_backbone-0.1.0/src/agent_backbone/cli/server.py +218 -0
  50. agent_backbone-0.1.0/src/agent_backbone/cli/service.py +207 -0
  51. agent_backbone-0.1.0/src/agent_backbone/cli/setup.py +277 -0
  52. agent_backbone-0.1.0/src/agent_backbone/cli/swarms.py +127 -0
  53. agent_backbone-0.1.0/src/agent_backbone/config.py +697 -0
  54. agent_backbone-0.1.0/src/agent_backbone/fs.py +33 -0
  55. agent_backbone-0.1.0/src/agent_backbone/git.py +52 -0
  56. agent_backbone-0.1.0/src/agent_backbone/help/__init__.py +93 -0
  57. agent_backbone-0.1.0/src/agent_backbone/help/agent-brief.md +39 -0
  58. agent_backbone-0.1.0/src/agent_backbone/help/topics/agents.md +49 -0
  59. agent_backbone-0.1.0/src/agent_backbone/help/topics/github.md +27 -0
  60. agent_backbone-0.1.0/src/agent_backbone/help/topics/messaging.md +41 -0
  61. agent_backbone-0.1.0/src/agent_backbone/help/topics/setup.md +120 -0
  62. agent_backbone-0.1.0/src/agent_backbone/help/topics/swarms.md +60 -0
  63. agent_backbone-0.1.0/src/agent_backbone/hooks/__init__.py +10 -0
  64. agent_backbone-0.1.0/src/agent_backbone/hooks/claude_hook.py +251 -0
  65. agent_backbone-0.1.0/src/agent_backbone/hooks/install.py +160 -0
  66. agent_backbone-0.1.0/src/agent_backbone/models.py +201 -0
  67. agent_backbone-0.1.0/src/agent_backbone/recent.py +61 -0
  68. agent_backbone-0.1.0/src/agent_backbone/services/__init__.py +1 -0
  69. agent_backbone-0.1.0/src/agent_backbone/services/agents/__init__.py +53 -0
  70. agent_backbone-0.1.0/src/agent_backbone/services/agents/_file_reader.py +127 -0
  71. agent_backbone-0.1.0/src/agent_backbone/services/agents/_inference.py +163 -0
  72. agent_backbone-0.1.0/src/agent_backbone/services/agents/acknowledgement.py +116 -0
  73. agent_backbone-0.1.0/src/agent_backbone/services/agents/launch.py +342 -0
  74. agent_backbone-0.1.0/src/agent_backbone/services/agents/models.py +69 -0
  75. agent_backbone-0.1.0/src/agent_backbone/services/agents/operations.py +101 -0
  76. agent_backbone-0.1.0/src/agent_backbone/services/agents/store.py +214 -0
  77. agent_backbone-0.1.0/src/agent_backbone/services/database/__init__.py +7 -0
  78. agent_backbone-0.1.0/src/agent_backbone/services/database/_acks_repo.py +49 -0
  79. agent_backbone-0.1.0/src/agent_backbone/services/database/_agents_repo.py +116 -0
  80. agent_backbone-0.1.0/src/agent_backbone/services/database/_delivery_repo.py +207 -0
  81. agent_backbone-0.1.0/src/agent_backbone/services/database/_dependencies_repo.py +57 -0
  82. agent_backbone-0.1.0/src/agent_backbone/services/database/_events_repo.py +104 -0
  83. agent_backbone-0.1.0/src/agent_backbone/services/database/_queue_repo.py +150 -0
  84. agent_backbone-0.1.0/src/agent_backbone/services/database/_repo.py +17 -0
  85. agent_backbone-0.1.0/src/agent_backbone/services/database/_settings_repo.py +41 -0
  86. agent_backbone-0.1.0/src/agent_backbone/services/database/_state_repo.py +71 -0
  87. agent_backbone-0.1.0/src/agent_backbone/services/database/_swarms_repo.py +101 -0
  88. agent_backbone-0.1.0/src/agent_backbone/services/database/_time.py +20 -0
  89. agent_backbone-0.1.0/src/agent_backbone/services/database/backbone_db.py +284 -0
  90. agent_backbone-0.1.0/src/agent_backbone/services/database/base.py +20 -0
  91. agent_backbone-0.1.0/src/agent_backbone/services/database/engine.py +53 -0
  92. agent_backbone-0.1.0/src/agent_backbone/services/database/migrations/env.py +83 -0
  93. agent_backbone-0.1.0/src/agent_backbone/services/database/migrations/script.py.mako +25 -0
  94. agent_backbone-0.1.0/src/agent_backbone/services/database/migrations/versions/2026_09_02_3fb2fe03898c_initial_schema.py +284 -0
  95. agent_backbone-0.1.0/src/agent_backbone/services/database/models.py +251 -0
  96. agent_backbone-0.1.0/src/agent_backbone/services/github/__init__.py +5 -0
  97. agent_backbone-0.1.0/src/agent_backbone/services/github/interface.py +408 -0
  98. agent_backbone-0.1.0/src/agent_backbone/services/integrations/__init__.py +11 -0
  99. agent_backbone-0.1.0/src/agent_backbone/services/integrations/_notify.py +46 -0
  100. agent_backbone-0.1.0/src/agent_backbone/services/integrations/_registry.py +92 -0
  101. agent_backbone-0.1.0/src/agent_backbone/services/integrations/base.py +92 -0
  102. agent_backbone-0.1.0/src/agent_backbone/services/integrations/telegram/__init__.py +5 -0
  103. agent_backbone-0.1.0/src/agent_backbone/services/integrations/telegram/_commands.py +329 -0
  104. agent_backbone-0.1.0/src/agent_backbone/services/integrations/telegram/_routing.py +122 -0
  105. agent_backbone-0.1.0/src/agent_backbone/services/integrations/telegram/_topic_discovery.py +179 -0
  106. agent_backbone-0.1.0/src/agent_backbone/services/integrations/telegram/_topics.py +118 -0
  107. agent_backbone-0.1.0/src/agent_backbone/services/integrations/telegram/interface.py +310 -0
  108. agent_backbone-0.1.0/src/agent_backbone/services/jobs/__init__.py +13 -0
  109. agent_backbone-0.1.0/src/agent_backbone/services/jobs/copy_mode.py +50 -0
  110. agent_backbone-0.1.0/src/agent_backbone/services/jobs/escalation.py +243 -0
  111. agent_backbone-0.1.0/src/agent_backbone/services/jobs/github_poll.py +190 -0
  112. agent_backbone-0.1.0/src/agent_backbone/services/jobs/monitor.py +133 -0
  113. agent_backbone-0.1.0/src/agent_backbone/services/jobs/pending.py +140 -0
  114. agent_backbone-0.1.0/src/agent_backbone/services/jobs/retry.py +173 -0
  115. agent_backbone-0.1.0/src/agent_backbone/services/routing/__init__.py +42 -0
  116. agent_backbone-0.1.0/src/agent_backbone/services/routing/_create_notify.py +63 -0
  117. agent_backbone-0.1.0/src/agent_backbone/services/routing/_dedup.py +32 -0
  118. agent_backbone-0.1.0/src/agent_backbone/services/routing/_delivery.py +287 -0
  119. agent_backbone-0.1.0/src/agent_backbone/services/routing/_dependencies.py +98 -0
  120. agent_backbone-0.1.0/src/agent_backbone/services/routing/_format.py +157 -0
  121. agent_backbone-0.1.0/src/agent_backbone/services/routing/_ingest.py +138 -0
  122. agent_backbone-0.1.0/src/agent_backbone/services/routing/_intelligence.py +126 -0
  123. agent_backbone-0.1.0/src/agent_backbone/services/routing/_lifecycle.py +158 -0
  124. agent_backbone-0.1.0/src/agent_backbone/services/routing/_priority.py +33 -0
  125. agent_backbone-0.1.0/src/agent_backbone/services/routing/_resolution.py +39 -0
  126. agent_backbone-0.1.0/src/agent_backbone/services/routing/_router.py +234 -0
  127. agent_backbone-0.1.0/src/agent_backbone/services/routing/_targets.py +130 -0
  128. agent_backbone-0.1.0/src/agent_backbone/services/routing/models.py +50 -0
  129. agent_backbone-0.1.0/src/agent_backbone/services/runtimes/__init__.py +132 -0
  130. agent_backbone-0.1.0/src/agent_backbone/services/runtimes/_pane.py +128 -0
  131. agent_backbone-0.1.0/src/agent_backbone/services/runtimes/aider.py +24 -0
  132. agent_backbone-0.1.0/src/agent_backbone/services/runtimes/base.py +396 -0
  133. agent_backbone-0.1.0/src/agent_backbone/services/runtimes/claude.py +117 -0
  134. agent_backbone-0.1.0/src/agent_backbone/services/runtimes/codex.py +103 -0
  135. agent_backbone-0.1.0/src/agent_backbone/services/runtimes/deepcode.py +78 -0
  136. agent_backbone-0.1.0/src/agent_backbone/services/runtimes/gemini.py +55 -0
  137. agent_backbone-0.1.0/src/agent_backbone/services/runtimes/opencode.py +40 -0
  138. agent_backbone-0.1.0/src/agent_backbone/services/runtimes/shell.py +30 -0
  139. agent_backbone-0.1.0/src/agent_backbone/services/scheduler.py +135 -0
  140. agent_backbone-0.1.0/src/agent_backbone/services/swarm/__init__.py +27 -0
  141. agent_backbone-0.1.0/src/agent_backbone/services/swarm/_roster.py +86 -0
  142. agent_backbone-0.1.0/src/agent_backbone/services/swarm/_templates.py +28 -0
  143. agent_backbone-0.1.0/src/agent_backbone/services/swarm/_worktree.py +81 -0
  144. agent_backbone-0.1.0/src/agent_backbone/services/swarm/interface.py +350 -0
  145. agent_backbone-0.1.0/src/agent_backbone/services/swarm/templates/coder.md +16 -0
  146. agent_backbone-0.1.0/src/agent_backbone/services/swarm/templates/common.md +42 -0
  147. agent_backbone-0.1.0/src/agent_backbone/services/swarm/templates/coordinator.md +45 -0
  148. agent_backbone-0.1.0/src/agent_backbone/services/swarm/templates/reviewer.md +19 -0
  149. agent_backbone-0.1.0/src/agent_backbone/services/swarm/templates/scout.md +17 -0
  150. agent_backbone-0.1.0/src/agent_backbone/services/swarm/templates/worker.md +12 -0
  151. agent_backbone-0.1.0/src/agent_backbone/services/terminal/__init__.py +49 -0
  152. agent_backbone-0.1.0/src/agent_backbone/services/terminal/_copy_mode.py +42 -0
  153. agent_backbone-0.1.0/src/agent_backbone/services/terminal/_core.py +205 -0
  154. agent_backbone-0.1.0/src/agent_backbone/services/terminal/_pty.py +337 -0
  155. agent_backbone-0.1.0/src/agent_backbone/services/terminal/_sessions.py +212 -0
  156. agent_backbone-0.1.0/src/agent_backbone/templates.py +28 -0
@@ -0,0 +1,27 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.egg-info/
5
+ dist/
6
+ build/
7
+ .venv/
8
+ .pytest_cache/
9
+ .ruff_cache/
10
+ .coverage
11
+ coverage_html/
12
+
13
+ # Local secrets and data
14
+ .env
15
+ *.pem
16
+
17
+ # Local data (SQLite db, state files, pids)
18
+ *.db
19
+ *.db-journal
20
+
21
+ # Editors / OS
22
+ .idea/
23
+ .vscode/
24
+ .DS_Store
25
+
26
+ # Test fixture key is intentionally committed
27
+ !tests/fixtures/*.pem
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 agent-backbone contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,188 @@
1
+ Metadata-Version: 2.5
2
+ Name: agent-backbone
3
+ Version: 0.1.0
4
+ Summary: Local control plane for terminal AI agents: run them, message them, coordinate them through GitHub Issues, reach them from Telegram.
5
+ Project-URL: Homepage, https://github.com/eandualem/agent-backbone
6
+ Project-URL: Documentation, https://github.com/eandualem/agent-backbone/blob/main/docs/README.md
7
+ Project-URL: Source, https://github.com/eandualem/agent-backbone
8
+ Project-URL: Issues, https://github.com/eandualem/agent-backbone/issues
9
+ License: MIT
10
+ License-File: LICENSE
11
+ Keywords: agents,claude-code,codex,github,orchestration,telegram,tmux
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: MacOS
17
+ Classifier: Operating System :: POSIX :: Linux
18
+ Classifier: Programming Language :: Python :: 3 :: Only
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Topic :: Software Development
23
+ Requires-Python: >=3.11
24
+ Requires-Dist: aiosqlite>=0.20
25
+ Requires-Dist: alembic>=1.13
26
+ Requires-Dist: fastapi>=0.115
27
+ Requires-Dist: httpx>=0.27
28
+ Requires-Dist: pydantic>=2.0
29
+ Requires-Dist: python-dotenv>=1.0
30
+ Requires-Dist: python-socketio>=5.11
31
+ Requires-Dist: python-telegram-bot>=21.0
32
+ Requires-Dist: sqlalchemy[asyncio]>=2.0
33
+ Requires-Dist: uvicorn[standard]>=0.32
34
+ Provides-Extra: github-app
35
+ Requires-Dist: cryptography>=44.0; extra == 'github-app'
36
+ Provides-Extra: postgres
37
+ Requires-Dist: asyncpg>=0.29; extra == 'postgres'
38
+ Description-Content-Type: text/markdown
39
+
40
+ # agent-backbone
41
+
42
+ [![PyPI](https://img.shields.io/pypi/v/agent-backbone)](https://pypi.org/project/agent-backbone/)
43
+ [![Downloads](https://img.shields.io/pypi/dm/agent-backbone)](https://pypistats.org/packages/agent-backbone)
44
+ [![CI](https://github.com/eandualem/agent-backbone/actions/workflows/ci.yml/badge.svg)](https://github.com/eandualem/agent-backbone/actions/workflows/ci.yml)
45
+ [![Visitors](https://api.visitorbadge.io/api/visitors?path=eandualem%2Fagent-backbone&label=visitors&countColor=%23263238)](https://github.com/eandualem/agent-backbone)
46
+
47
+ A lightweight control plane for the terminal coding agents you already use.
48
+
49
+ agent-backbone runs Claude Code, Codex, OpenCode, Deep Code and other command-line agents as persistent sessions on your machine, and gives them what a single terminal cannot: a way to communicate with each other, a manager that knows what each of them is doing, a channel for delegating work, and a way to form teams around a task. The agents stay the tools you already run, with their own logins, configuration and model access. The backbone adds no model, no subscription and no files to your repositories.
50
+
51
+ **What it enables**
52
+
53
+ - **Communication.** Any agent can message any other — across CLIs, models and repositories — with a single command. A message is delivered only when the recipient is ready to receive it and stored until then, so an agent in the middle of a task is never interrupted by another.
54
+ - **Management.** The backbone knows whether each agent is idle, working or waiting for a person, and shows the evidence behind that reading. Start, stop, inspect and attach to any agent from one place; hear about the ones that need you on Telegram.
55
+ - **Delegation.** GitHub Issues are the task list. An issue opened in an agent's repository is that agent's work; a `for:<agent>` label routes an issue to a specific agent; comments return to whoever opened it; closing an issue hands the agent its next one. An orchestrator is simply an agent that watches several repositories.
56
+ - **Teams.** When a task benefits from parallel work, an agent creates a swarm: a coordinator plus members on the runtimes and models it chooses, sharing one worktree and branch, finishing in a pull request. When the issue closes, the swarm is torn down and the branch remains.
57
+
58
+ Every agent the backbone starts is told at launch who it is and how to use all of this, so agents can start other agents, subscribe to repositories, message each other and form teams without a person in the loop. You can watch any session at any time, or step in.
59
+
60
+ > **Status:** pre-release. The core — state detection, safe delivery, GitHub routing, swarms, Telegram, the API — is tested and has been exercised against live Claude Code, Codex, OpenCode and Deep Code sessions. [Status and roadmap](https://github.com/eandualem/agent-backbone/blob/main/docs/status-and-roadmap.md) records what is verified and what is not.
61
+
62
+ ## Install
63
+
64
+ Requirements: macOS or Linux, Python 3.11+, `tmux`, [uv](https://docs.astral.sh/uv/) (or pipx), and at least one agent CLI on your PATH.
65
+
66
+ ```bash
67
+ uv tool install "agent-backbone[github-app]" # https://pypi.org/project/agent-backbone/
68
+ backbone init # data directory, .env with an API key, database
69
+ backbone service install # runs now and at every login (launchd / systemd --user)
70
+ ```
71
+
72
+ `pipx install "agent-backbone[github-app]"` works the same. If `backbone` is not found afterwards, run `uv tool update-shell` once and open a new terminal. `ab` is the same command under a short name (on macOS `/usr/sbin/ab`, Apache Bench, may shadow it — put `~/.local/bin` first in your PATH or use `backbone`).
73
+
74
+ There is no configuration file, no database server and no tunnel. Everything the backbone knows lives in `~/.local/share/agent-backbone/` (a SQLite file, hook state, `.env`); settings are changed with `backbone config set`.
75
+
76
+ ### Setting up with an agent
77
+
78
+ The setup can be delegated to any agent that has a shell — a Claude Code, Codex or OpenCode session in one of your repositories:
79
+
80
+ > Install agent-backbone from PyPI (`uv tool install "agent-backbone[github-app]"`), then run `backbone help setup` and follow it: get the backbone running, start an agent in this repository, and tell me what still needs me.
81
+
82
+ Everything the agent needs ships with the package: `backbone help` (the playbooks — `setup`, `agents`, `messaging`, `github`, `swarms`) and `backbone docs` (this documentation, page by page).
83
+
84
+ ## First run
85
+
86
+ An agent is started from the directory of the repository it will work in. The agent takes the directory's name, and that repository becomes its responsibility.
87
+
88
+ ```bash
89
+ cd ~/code/app
90
+ backbone agent start # → app: ready — claude repo acme/app
91
+ backbone tell app "Read every file under src/ and list the modules."
92
+ backbone tell app "…and then tell me which one is the largest." # while it is still working
93
+ ```
94
+
95
+ The second `tell` returns `"outcome": "agent_working"`: the message was not typed into a working terminal. `backbone agent inspect app` shows the agent's state, the evidence for it, and the message waiting. When the agent reaches its prompt, the message is delivered. [Getting started](https://github.com/eandualem/agent-backbone/blob/main/docs/getting-started.md) continues from here with a second agent, GitHub and an orchestrator.
96
+
97
+ ## How it works
98
+
99
+ - **Agents are discovered, not declared.** `backbone agent start` in a directory records the agent: its name, its runtime and model, and the repository read from `git remote origin`. The command returns when the agent is at its prompt; folder-trust dialogs are answered for you.
100
+ - **State comes from the runtime first, the terminal second.** Claude Code reports its state through hooks the backbone installs for the session; every other runtime is read from its terminal. Every reading carries its evidence, visible in `backbone agent inspect`.
101
+ - **Delivery is gated on state.** Text is pasted into an agent only when it is idle — not while it is working, waiting for a person, or while you are typing in that terminal. What cannot land now is queued in SQLite and delivered when the agent is free. The few deliberate exceptions are documented in [How it works](https://github.com/eandualem/agent-backbone/blob/main/docs/how-it-works.md).
102
+ - **Agents can unblock each other.** `backbone agent approve <name>` answers a runtime's permission dialog — only while it is on screen, only with its affirmative key, every approval audited — so a coordinator can keep a team moving without a person watching.
103
+ - **Coordination goes through GitHub, per repository.** Nothing is configured per repository: GitHub credentials are set once, and every repository an agent owns or watches is tracked on its own, by polling or by webhook.
104
+ - **You reach it from anywhere.** The CLI, Telegram (a forum topic per agent), and a REST + Socket.IO API for your own dashboard or automation. The backbone ships no UI.
105
+
106
+ ## Runtimes
107
+
108
+ Any CLI that runs in a terminal can be an agent; how much the backbone can do for it depends on the runtime:
109
+
110
+ | Runtime | Unattended start | Brief at launch | State detection | Delivery | Approve |
111
+ |---|---|---|---|---|---|
112
+ | `claude` (Claude Code) | ✅ | ✅ system prompt | ✅ hooks + terminal | ✅ verified | ✅ |
113
+ | `codex` | ✅ | ✅ first prompt | ✅ terminal | ✅ verified | ✅ |
114
+ | `opencode` | ✅ (no trust dialog) | ✅ first prompt | ✅ terminal | ✅ verified | ✅ |
115
+ | `deepcode` (Deep Code, DeepSeek) | ✅ (no trust dialog) | ✅ `-p` | ✅ terminal | ✅ verified | pending |
116
+ | `gemini` | ✅ `--skip-trust` | ✅ first prompt | ✅ terminal | unverified¹ | — |
117
+ | `aider`, `shell` | — | first message | terminal, best effort | untested | — |
118
+
119
+ ¹ Gemini CLI 0.46 completes Google OAuth and then refuses personal accounts ("no longer supported for Gemini Code Assist for individuals"); the backbone reports such a session as `waiting_for_human`. Delivery to a signed-in Gemini session (e.g. `GEMINI_API_KEY`) has not been tested yet. Deep Code is `@vegamo/deepcode-cli`, the community CLI DeepSeek's docs point to; its permission dialog has not been captured yet, so `agent approve` refuses it until then.
120
+
121
+ `backbone runtimes` lists every runtime, whether its binary is installed, and example model ids. The backbone does not manage per-repository runtime configuration (`CLAUDE.md`, `AGENTS.md`, MCP servers, …) — how a repository configures its tools is the repository's business.
122
+
123
+ ## Beyond the first run
124
+
125
+ **GitHub in two commands.** Issues become the agents' task list in every repository they own or watch:
126
+
127
+ ```bash
128
+ gh auth token | backbone secrets set GITHUB_TOKEN # the backbone's own .env, never a repo's
129
+ backbone service install # restart to pick it up
130
+ ```
131
+
132
+ That is poll intake (every 60 s, nothing exposed). For instant delivery and automatic coverage of every repository you create, do the one-time GitHub App + webhook setup: [GitHub App setup](https://github.com/eandualem/agent-backbone/blob/main/docs/github-app-setup.md).
133
+
134
+ **An orchestrator** watches the repositories it coordinates — `backbone agent start --watch acme/app --watch acme/web` — and opens issues for the others with `for:` and `from:` labels. **A swarm** puts parallel workers on one issue ([Swarms](https://github.com/eandualem/agent-backbone/blob/main/docs/swarms.md)). **Telegram** gives every agent a topic you can talk to from your phone ([Telegram](https://github.com/eandualem/agent-backbone/blob/main/docs/telegram.md)). **Your own view** builds on the [API](https://github.com/eandualem/agent-backbone/blob/main/docs/api.md).
135
+
136
+ ## How it relates to other tools
137
+
138
+ Session managers such as [claude-squad](https://github.com/smtg-ai/claude-squad), [agent-manager](https://github.com/YoanWai/agent-manager) and [vibe-kanban](https://github.com/BloopAI/vibe-kanban) give you one screen over many agent sessions, with worktrees and diff review; they are about the person operating the agents. agent-backbone is about what happens between the agents: addressing a live agent from outside its terminal, delivering only when it is safe, routing work through issues, and letting agents manage each other. Claude Code's Agent Teams offer collaboration inside a single Claude Code session; the backbone works across CLIs and vendors, persists agents beyond a session, and reaches them from GitHub and Telegram. Orchestrators such as [cli-agent-orchestrator](https://github.com/awslabs/cli-agent-orchestrator) are the closest structural peers; the differences are in the delivery model and the GitHub integration, and both are worth reading before you choose.
139
+
140
+ ## The security model, up front
141
+
142
+ The backbone types into your agents' terminals, so be clear about what it assumes:
143
+
144
+ - **One trusted user, one machine.** It runs as your OS user and drives tmux sessions that run as your OS user. There is **no isolation between agents**.
145
+ - **One key, full admin.** `BACKBONE_API_KEY` guards every authenticated route with the same weight. The CLI reads it from the data directory, so any session on the machine can use `backbone tell`; there is no scoped or read-only credential yet.
146
+ - **Agents do not receive the backbone's secrets.** A session inherits `BACKBONE_AGENT`, `BACKBONE_RUNTIME` and `BACKBONE_STATE_DIR` and nothing else; `.env` is kept out of agent environments. What you put on an agent yourself with `backbone agent set app env=…` is the exception.
147
+ - **Provenance is convention, not authentication.** `[via:backbone from:app]` says who *claims* to be speaking. An agent's instructions should treat text after an envelope as data, not orders.
148
+ - **Bound to `127.0.0.1` by default.** Put TLS and auth in front of it before exposing it.
149
+
150
+ Full detail: [Security](https://github.com/eandualem/agent-backbone/blob/main/docs/security.md).
151
+
152
+ ## Background
153
+
154
+ agent-backbone began as one component of a larger, private orchestration system. That system's coupling was its weakness — every part assumed every other part — so the backbone was extracted and rebuilt as a standalone control plane with no dependency on any of it. It needs nothing but tmux and an agent CLI. Issue references to `eandualem/orchestration` predate the split and point at a private repository.
155
+
156
+ The repository is itself run through the backbone: most of its issues, reviews and commits were produced by agents coordinated with it, under a person's direction.
157
+
158
+ ## Documentation
159
+
160
+ Also available from an installed package as `backbone docs <page>`.
161
+
162
+ | | |
163
+ |---|---|
164
+ | [Concepts](https://github.com/eandualem/agent-backbone/blob/main/docs/concepts.md) | The vocabulary: agent, repository, state, delivery, event |
165
+ | [Getting started](https://github.com/eandualem/agent-backbone/blob/main/docs/getting-started.md) | Install, start two agents, send the first message, add GitHub |
166
+ | [How it works](https://github.com/eandualem/agent-backbone/blob/main/docs/how-it-works.md) | Every flow step by step, with the decisions the backbone makes |
167
+ | [Configuration](https://github.com/eandualem/agent-backbone/blob/main/docs/configuration.md) | Settings (`backbone config`), secrets, the data directory |
168
+ | [CLI](https://github.com/eandualem/agent-backbone/blob/main/docs/cli.md) · [API](https://github.com/eandualem/agent-backbone/blob/main/docs/api.md) | Reference |
169
+ | [GitHub](https://github.com/eandualem/agent-backbone/blob/main/docs/github.md) · [App setup walkthrough](https://github.com/eandualem/agent-backbone/blob/main/docs/github-app-setup.md) · [Integrations](https://github.com/eandualem/agent-backbone/blob/main/docs/integrations.md) · [Telegram](https://github.com/eandualem/agent-backbone/blob/main/docs/telegram.md) | Integrations |
170
+ | [Swarms](https://github.com/eandualem/agent-backbone/blob/main/docs/swarms.md) | A coordinator plus members on one issue |
171
+ | [Security](https://github.com/eandualem/agent-backbone/blob/main/docs/security.md) | Defaults and what you opt into |
172
+ | [Status and roadmap](https://github.com/eandualem/agent-backbone/blob/main/docs/status-and-roadmap.md) | What works, what is missing, what is next |
173
+
174
+ ## Development
175
+
176
+ ```bash
177
+ git clone https://github.com/eandualem/agent-backbone && cd agent-backbone
178
+ make install # uv sync --all-extras
179
+ make test # pytest — SQLite in memory, no services required
180
+ make check # lint + format check + tests
181
+ make dev # backbone up --reload
182
+ ```
183
+
184
+ `uv tool install --editable ".[github-app]"` gives you a global CLI that follows your checkout. See [CONTRIBUTING.md](https://github.com/eandualem/agent-backbone/blob/main/CONTRIBUTING.md).
185
+
186
+ ## License
187
+
188
+ MIT — see [LICENSE](https://github.com/eandualem/agent-backbone/blob/main/LICENSE).
@@ -0,0 +1,149 @@
1
+ # agent-backbone
2
+
3
+ [![PyPI](https://img.shields.io/pypi/v/agent-backbone)](https://pypi.org/project/agent-backbone/)
4
+ [![Downloads](https://img.shields.io/pypi/dm/agent-backbone)](https://pypistats.org/packages/agent-backbone)
5
+ [![CI](https://github.com/eandualem/agent-backbone/actions/workflows/ci.yml/badge.svg)](https://github.com/eandualem/agent-backbone/actions/workflows/ci.yml)
6
+ [![Visitors](https://api.visitorbadge.io/api/visitors?path=eandualem%2Fagent-backbone&label=visitors&countColor=%23263238)](https://github.com/eandualem/agent-backbone)
7
+
8
+ A lightweight control plane for the terminal coding agents you already use.
9
+
10
+ agent-backbone runs Claude Code, Codex, OpenCode, Deep Code and other command-line agents as persistent sessions on your machine, and gives them what a single terminal cannot: a way to communicate with each other, a manager that knows what each of them is doing, a channel for delegating work, and a way to form teams around a task. The agents stay the tools you already run, with their own logins, configuration and model access. The backbone adds no model, no subscription and no files to your repositories.
11
+
12
+ **What it enables**
13
+
14
+ - **Communication.** Any agent can message any other — across CLIs, models and repositories — with a single command. A message is delivered only when the recipient is ready to receive it and stored until then, so an agent in the middle of a task is never interrupted by another.
15
+ - **Management.** The backbone knows whether each agent is idle, working or waiting for a person, and shows the evidence behind that reading. Start, stop, inspect and attach to any agent from one place; hear about the ones that need you on Telegram.
16
+ - **Delegation.** GitHub Issues are the task list. An issue opened in an agent's repository is that agent's work; a `for:<agent>` label routes an issue to a specific agent; comments return to whoever opened it; closing an issue hands the agent its next one. An orchestrator is simply an agent that watches several repositories.
17
+ - **Teams.** When a task benefits from parallel work, an agent creates a swarm: a coordinator plus members on the runtimes and models it chooses, sharing one worktree and branch, finishing in a pull request. When the issue closes, the swarm is torn down and the branch remains.
18
+
19
+ Every agent the backbone starts is told at launch who it is and how to use all of this, so agents can start other agents, subscribe to repositories, message each other and form teams without a person in the loop. You can watch any session at any time, or step in.
20
+
21
+ > **Status:** pre-release. The core — state detection, safe delivery, GitHub routing, swarms, Telegram, the API — is tested and has been exercised against live Claude Code, Codex, OpenCode and Deep Code sessions. [Status and roadmap](https://github.com/eandualem/agent-backbone/blob/main/docs/status-and-roadmap.md) records what is verified and what is not.
22
+
23
+ ## Install
24
+
25
+ Requirements: macOS or Linux, Python 3.11+, `tmux`, [uv](https://docs.astral.sh/uv/) (or pipx), and at least one agent CLI on your PATH.
26
+
27
+ ```bash
28
+ uv tool install "agent-backbone[github-app]" # https://pypi.org/project/agent-backbone/
29
+ backbone init # data directory, .env with an API key, database
30
+ backbone service install # runs now and at every login (launchd / systemd --user)
31
+ ```
32
+
33
+ `pipx install "agent-backbone[github-app]"` works the same. If `backbone` is not found afterwards, run `uv tool update-shell` once and open a new terminal. `ab` is the same command under a short name (on macOS `/usr/sbin/ab`, Apache Bench, may shadow it — put `~/.local/bin` first in your PATH or use `backbone`).
34
+
35
+ There is no configuration file, no database server and no tunnel. Everything the backbone knows lives in `~/.local/share/agent-backbone/` (a SQLite file, hook state, `.env`); settings are changed with `backbone config set`.
36
+
37
+ ### Setting up with an agent
38
+
39
+ The setup can be delegated to any agent that has a shell — a Claude Code, Codex or OpenCode session in one of your repositories:
40
+
41
+ > Install agent-backbone from PyPI (`uv tool install "agent-backbone[github-app]"`), then run `backbone help setup` and follow it: get the backbone running, start an agent in this repository, and tell me what still needs me.
42
+
43
+ Everything the agent needs ships with the package: `backbone help` (the playbooks — `setup`, `agents`, `messaging`, `github`, `swarms`) and `backbone docs` (this documentation, page by page).
44
+
45
+ ## First run
46
+
47
+ An agent is started from the directory of the repository it will work in. The agent takes the directory's name, and that repository becomes its responsibility.
48
+
49
+ ```bash
50
+ cd ~/code/app
51
+ backbone agent start # → app: ready — claude repo acme/app
52
+ backbone tell app "Read every file under src/ and list the modules."
53
+ backbone tell app "…and then tell me which one is the largest." # while it is still working
54
+ ```
55
+
56
+ The second `tell` returns `"outcome": "agent_working"`: the message was not typed into a working terminal. `backbone agent inspect app` shows the agent's state, the evidence for it, and the message waiting. When the agent reaches its prompt, the message is delivered. [Getting started](https://github.com/eandualem/agent-backbone/blob/main/docs/getting-started.md) continues from here with a second agent, GitHub and an orchestrator.
57
+
58
+ ## How it works
59
+
60
+ - **Agents are discovered, not declared.** `backbone agent start` in a directory records the agent: its name, its runtime and model, and the repository read from `git remote origin`. The command returns when the agent is at its prompt; folder-trust dialogs are answered for you.
61
+ - **State comes from the runtime first, the terminal second.** Claude Code reports its state through hooks the backbone installs for the session; every other runtime is read from its terminal. Every reading carries its evidence, visible in `backbone agent inspect`.
62
+ - **Delivery is gated on state.** Text is pasted into an agent only when it is idle — not while it is working, waiting for a person, or while you are typing in that terminal. What cannot land now is queued in SQLite and delivered when the agent is free. The few deliberate exceptions are documented in [How it works](https://github.com/eandualem/agent-backbone/blob/main/docs/how-it-works.md).
63
+ - **Agents can unblock each other.** `backbone agent approve <name>` answers a runtime's permission dialog — only while it is on screen, only with its affirmative key, every approval audited — so a coordinator can keep a team moving without a person watching.
64
+ - **Coordination goes through GitHub, per repository.** Nothing is configured per repository: GitHub credentials are set once, and every repository an agent owns or watches is tracked on its own, by polling or by webhook.
65
+ - **You reach it from anywhere.** The CLI, Telegram (a forum topic per agent), and a REST + Socket.IO API for your own dashboard or automation. The backbone ships no UI.
66
+
67
+ ## Runtimes
68
+
69
+ Any CLI that runs in a terminal can be an agent; how much the backbone can do for it depends on the runtime:
70
+
71
+ | Runtime | Unattended start | Brief at launch | State detection | Delivery | Approve |
72
+ |---|---|---|---|---|---|
73
+ | `claude` (Claude Code) | ✅ | ✅ system prompt | ✅ hooks + terminal | ✅ verified | ✅ |
74
+ | `codex` | ✅ | ✅ first prompt | ✅ terminal | ✅ verified | ✅ |
75
+ | `opencode` | ✅ (no trust dialog) | ✅ first prompt | ✅ terminal | ✅ verified | ✅ |
76
+ | `deepcode` (Deep Code, DeepSeek) | ✅ (no trust dialog) | ✅ `-p` | ✅ terminal | ✅ verified | pending |
77
+ | `gemini` | ✅ `--skip-trust` | ✅ first prompt | ✅ terminal | unverified¹ | — |
78
+ | `aider`, `shell` | — | first message | terminal, best effort | untested | — |
79
+
80
+ ¹ Gemini CLI 0.46 completes Google OAuth and then refuses personal accounts ("no longer supported for Gemini Code Assist for individuals"); the backbone reports such a session as `waiting_for_human`. Delivery to a signed-in Gemini session (e.g. `GEMINI_API_KEY`) has not been tested yet. Deep Code is `@vegamo/deepcode-cli`, the community CLI DeepSeek's docs point to; its permission dialog has not been captured yet, so `agent approve` refuses it until then.
81
+
82
+ `backbone runtimes` lists every runtime, whether its binary is installed, and example model ids. The backbone does not manage per-repository runtime configuration (`CLAUDE.md`, `AGENTS.md`, MCP servers, …) — how a repository configures its tools is the repository's business.
83
+
84
+ ## Beyond the first run
85
+
86
+ **GitHub in two commands.** Issues become the agents' task list in every repository they own or watch:
87
+
88
+ ```bash
89
+ gh auth token | backbone secrets set GITHUB_TOKEN # the backbone's own .env, never a repo's
90
+ backbone service install # restart to pick it up
91
+ ```
92
+
93
+ That is poll intake (every 60 s, nothing exposed). For instant delivery and automatic coverage of every repository you create, do the one-time GitHub App + webhook setup: [GitHub App setup](https://github.com/eandualem/agent-backbone/blob/main/docs/github-app-setup.md).
94
+
95
+ **An orchestrator** watches the repositories it coordinates — `backbone agent start --watch acme/app --watch acme/web` — and opens issues for the others with `for:` and `from:` labels. **A swarm** puts parallel workers on one issue ([Swarms](https://github.com/eandualem/agent-backbone/blob/main/docs/swarms.md)). **Telegram** gives every agent a topic you can talk to from your phone ([Telegram](https://github.com/eandualem/agent-backbone/blob/main/docs/telegram.md)). **Your own view** builds on the [API](https://github.com/eandualem/agent-backbone/blob/main/docs/api.md).
96
+
97
+ ## How it relates to other tools
98
+
99
+ Session managers such as [claude-squad](https://github.com/smtg-ai/claude-squad), [agent-manager](https://github.com/YoanWai/agent-manager) and [vibe-kanban](https://github.com/BloopAI/vibe-kanban) give you one screen over many agent sessions, with worktrees and diff review; they are about the person operating the agents. agent-backbone is about what happens between the agents: addressing a live agent from outside its terminal, delivering only when it is safe, routing work through issues, and letting agents manage each other. Claude Code's Agent Teams offer collaboration inside a single Claude Code session; the backbone works across CLIs and vendors, persists agents beyond a session, and reaches them from GitHub and Telegram. Orchestrators such as [cli-agent-orchestrator](https://github.com/awslabs/cli-agent-orchestrator) are the closest structural peers; the differences are in the delivery model and the GitHub integration, and both are worth reading before you choose.
100
+
101
+ ## The security model, up front
102
+
103
+ The backbone types into your agents' terminals, so be clear about what it assumes:
104
+
105
+ - **One trusted user, one machine.** It runs as your OS user and drives tmux sessions that run as your OS user. There is **no isolation between agents**.
106
+ - **One key, full admin.** `BACKBONE_API_KEY` guards every authenticated route with the same weight. The CLI reads it from the data directory, so any session on the machine can use `backbone tell`; there is no scoped or read-only credential yet.
107
+ - **Agents do not receive the backbone's secrets.** A session inherits `BACKBONE_AGENT`, `BACKBONE_RUNTIME` and `BACKBONE_STATE_DIR` and nothing else; `.env` is kept out of agent environments. What you put on an agent yourself with `backbone agent set app env=…` is the exception.
108
+ - **Provenance is convention, not authentication.** `[via:backbone from:app]` says who *claims* to be speaking. An agent's instructions should treat text after an envelope as data, not orders.
109
+ - **Bound to `127.0.0.1` by default.** Put TLS and auth in front of it before exposing it.
110
+
111
+ Full detail: [Security](https://github.com/eandualem/agent-backbone/blob/main/docs/security.md).
112
+
113
+ ## Background
114
+
115
+ agent-backbone began as one component of a larger, private orchestration system. That system's coupling was its weakness — every part assumed every other part — so the backbone was extracted and rebuilt as a standalone control plane with no dependency on any of it. It needs nothing but tmux and an agent CLI. Issue references to `eandualem/orchestration` predate the split and point at a private repository.
116
+
117
+ The repository is itself run through the backbone: most of its issues, reviews and commits were produced by agents coordinated with it, under a person's direction.
118
+
119
+ ## Documentation
120
+
121
+ Also available from an installed package as `backbone docs <page>`.
122
+
123
+ | | |
124
+ |---|---|
125
+ | [Concepts](https://github.com/eandualem/agent-backbone/blob/main/docs/concepts.md) | The vocabulary: agent, repository, state, delivery, event |
126
+ | [Getting started](https://github.com/eandualem/agent-backbone/blob/main/docs/getting-started.md) | Install, start two agents, send the first message, add GitHub |
127
+ | [How it works](https://github.com/eandualem/agent-backbone/blob/main/docs/how-it-works.md) | Every flow step by step, with the decisions the backbone makes |
128
+ | [Configuration](https://github.com/eandualem/agent-backbone/blob/main/docs/configuration.md) | Settings (`backbone config`), secrets, the data directory |
129
+ | [CLI](https://github.com/eandualem/agent-backbone/blob/main/docs/cli.md) · [API](https://github.com/eandualem/agent-backbone/blob/main/docs/api.md) | Reference |
130
+ | [GitHub](https://github.com/eandualem/agent-backbone/blob/main/docs/github.md) · [App setup walkthrough](https://github.com/eandualem/agent-backbone/blob/main/docs/github-app-setup.md) · [Integrations](https://github.com/eandualem/agent-backbone/blob/main/docs/integrations.md) · [Telegram](https://github.com/eandualem/agent-backbone/blob/main/docs/telegram.md) | Integrations |
131
+ | [Swarms](https://github.com/eandualem/agent-backbone/blob/main/docs/swarms.md) | A coordinator plus members on one issue |
132
+ | [Security](https://github.com/eandualem/agent-backbone/blob/main/docs/security.md) | Defaults and what you opt into |
133
+ | [Status and roadmap](https://github.com/eandualem/agent-backbone/blob/main/docs/status-and-roadmap.md) | What works, what is missing, what is next |
134
+
135
+ ## Development
136
+
137
+ ```bash
138
+ git clone https://github.com/eandualem/agent-backbone && cd agent-backbone
139
+ make install # uv sync --all-extras
140
+ make test # pytest — SQLite in memory, no services required
141
+ make check # lint + format check + tests
142
+ make dev # backbone up --reload
143
+ ```
144
+
145
+ `uv tool install --editable ".[github-app]"` gives you a global CLI that follows your checkout. See [CONTRIBUTING.md](https://github.com/eandualem/agent-backbone/blob/main/CONTRIBUTING.md).
146
+
147
+ ## License
148
+
149
+ MIT — see [LICENSE](https://github.com/eandualem/agent-backbone/blob/main/LICENSE).
@@ -0,0 +1,43 @@
1
+ [alembic]
2
+ script_location = %(here)s/src/agent_backbone/services/database/migrations
3
+ file_template = %%(year)d_%%(month).2d_%%(day).2d_%%(rev)s_%%(slug)s
4
+
5
+ [post_write_hooks]
6
+ hooks = ruff_format
7
+ ruff_format.type = exec
8
+ ruff_format.executable = uv
9
+ ruff_format.options = run ruff format REVISION_SCRIPT_FILENAME
10
+
11
+ [loggers]
12
+ keys = root,sqlalchemy,alembic
13
+
14
+ [handlers]
15
+ keys = console
16
+
17
+ [formatters]
18
+ keys = generic
19
+
20
+ [logger_root]
21
+ level = WARN
22
+ handlers = console
23
+ qualname =
24
+
25
+ [logger_sqlalchemy]
26
+ level = WARN
27
+ handlers =
28
+ qualname = sqlalchemy.engine
29
+
30
+ [logger_alembic]
31
+ level = INFO
32
+ handlers =
33
+ qualname = alembic
34
+
35
+ [handler_console]
36
+ class = StreamHandler
37
+ args = (sys.stderr,)
38
+ level = NOTSET
39
+ formatter = generic
40
+
41
+ [formatter_generic]
42
+ format = %(levelname)-5.5s [%(name)s] %(message)s
43
+ datefmt = %H:%M:%S
@@ -0,0 +1,28 @@
1
+ # agent-backbone documentation
2
+
3
+ Start with **Concepts** for the mental model, then **Getting started** to run
4
+ it, then **How it works** for the end-to-end flows. Everything else is
5
+ reference. These pages ship inside the package: `backbone docs <page>`
6
+ prints any of them from an installed backbone, and `backbone help <topic>`
7
+ prints the shorter playbooks written for agents (`setup`, `agents`,
8
+ `messaging`, `github`, `swarms`).
9
+
10
+ | Read this | When you want to |
11
+ |---|---|
12
+ | [Concepts](concepts.md) | Understand the handful of words the whole system is built from |
13
+ | [Getting started](getting-started.md) | Install, start two agents from their directories, send the first message, add GitHub |
14
+ | [How it works](how-it-works.md) | Follow a start, a message, an issue and a Telegram command through the system |
15
+ | [Configuration](configuration.md) | Every setting (`backbone config`), every secret, the data directory |
16
+ | [CLI](cli.md) | `backbone init / doctor / up / status / config / agent / swarm / tell / hooks / help / docs` |
17
+ | [Swarms](swarms.md) | A coordinator plus members on one worktree, one branch, one issue, one PR |
18
+ | [HTTP & Socket.IO API](api.md) | Build a dashboard or script against the backbone |
19
+ | [GitHub integration](github.md) | Repositories, labels, routing rules, intake modes, what an agent is expected to do |
20
+ | [GitHub App setup](github-app-setup.md) | The step-by-step production setup: App + webhook via Cloudflare Tunnel or ngrok, with checkpoints |
21
+ | [Integrations](integrations.md) | The contract every human-facing channel implements, and how to add one |
22
+ | [Telegram](telegram.md) | Bot setup, allowlist, forum topics, commands |
23
+ | [Security](security.md) | What is protected by default and what you opt into |
24
+ | [Status and roadmap](status-and-roadmap.md) | What works today, what is deliberately missing, what is next |
25
+
26
+ Conventions: `reviewer`, `builder`, `orch` are example agent names; `acme/app`
27
+ and `acme/web` are example repositories; `<data_dir>` is
28
+ `~/.local/share/agent-backbone` unless you changed it.