agent-backbone 0.2.0__tar.gz → 0.3.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.
- agent_backbone-0.3.0/PKG-INFO +256 -0
- agent_backbone-0.3.0/README.md +217 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/USAGE.md +45 -32
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/INDEX.md +10 -2
- agent_backbone-0.3.0/docs/api.md +789 -0
- agent_backbone-0.3.0/docs/cli-presentation.md +102 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/cli.md +342 -70
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/concepts.md +65 -18
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/configuration.md +81 -14
- agent_backbone-0.3.0/docs/deep-reviews.md +288 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/diagnostics.md +94 -16
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/getting-started.md +155 -186
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/github-app-setup.md +41 -51
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/github.md +37 -13
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/how-it-works.md +200 -50
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/integrations.md +11 -6
- agent_backbone-0.3.0/docs/media/banner.png +0 -0
- agent_backbone-0.3.0/docs/media/film-why-backbone.jpg +0 -0
- agent_backbone-0.3.0/docs/media/films.md +21 -0
- agent_backbone-0.3.0/docs/owner-confirmed-messages.md +554 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/report-audio.md +0 -1
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/reports.md +1 -1
- agent_backbone-0.3.0/docs/runtime-capabilities.md +147 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/security.md +80 -35
- agent_backbone-0.3.0/docs/skills.md +181 -0
- agent_backbone-0.3.0/docs/sources.md +146 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/status-and-roadmap.md +35 -32
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/swarms.md +35 -19
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/telegram.md +25 -37
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/templates.md +42 -14
- agent_backbone-0.3.0/docs/token-usage.md +160 -0
- agent_backbone-0.3.0/help/agents.md +196 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/help/messaging.md +25 -1
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/help/reports.md +1 -1
- agent_backbone-0.3.0/help/reviews.md +63 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/help/setup.md +47 -17
- agent_backbone-0.3.0/help/skills.md +105 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/help/swarms.md +8 -8
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/help/templates.md +2 -2
- agent_backbone-0.3.0/help/token-usage.md +28 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/pyproject.toml +2 -3
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/app.py +111 -4
- agent_backbone-0.3.0/src/agent_backbone/api/confirmations.py +136 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/deps.py +5 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/models.py +313 -17
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/routes/agents.py +164 -8
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/routes/diagnostics.py +6 -0
- agent_backbone-0.3.0/src/agent_backbone/api/routes/fleet.py +93 -0
- agent_backbone-0.3.0/src/agent_backbone/api/routes/messages.py +359 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/routes/plans.py +13 -44
- agent_backbone-0.3.0/src/agent_backbone/api/routes/signing.py +286 -0
- agent_backbone-0.3.0/src/agent_backbone/api/routes/skills.py +144 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/routes/status.py +5 -0
- agent_backbone-0.3.0/src/agent_backbone/api/routes/usage.py +49 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/session_updates.py +39 -1
- agent_backbone-0.3.0/src/agent_backbone/api/signed.py +391 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/socketio_server.py +9 -2
- agent_backbone-0.3.0/src/agent_backbone/api/validation.py +227 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/cli/__init__.py +219 -9
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/cli/_common.py +84 -3
- agent_backbone-0.3.0/src/agent_backbone/cli/agents.py +1097 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/cli/completion.py +15 -4
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/cli/diagnostics.py +104 -44
- agent_backbone-0.3.0/src/agent_backbone/cli/fleet.py +164 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/cli/instructions.py +85 -43
- agent_backbone-0.3.0/src/agent_backbone/cli/presentation.py +145 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/cli/reports.py +12 -25
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/cli/server.py +76 -11
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/cli/service.py +13 -3
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/cli/setup.py +154 -44
- agent_backbone-0.3.0/src/agent_backbone/cli/signing.py +100 -0
- agent_backbone-0.3.0/src/agent_backbone/cli/skills.py +330 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/cli/status.py +53 -7
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/cli/swarms.py +40 -18
- agent_backbone-0.3.0/src/agent_backbone/cli/usage.py +215 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/config.py +225 -8
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/fs.py +2 -3
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/git.py +11 -4
- agent_backbone-0.3.0/src/agent_backbone/hooks/backbone_state.py +1226 -0
- agent_backbone-0.3.0/src/agent_backbone/hooks/chrome_tab_names/background.js +66 -0
- agent_backbone-0.3.0/src/agent_backbone/hooks/chrome_tab_names/manifest.json +17 -0
- agent_backbone-0.3.0/src/agent_backbone/hooks/chrome_tab_names_host.py +79 -0
- agent_backbone-0.3.0/src/agent_backbone/hooks/claude_hook.py +249 -0
- agent_backbone-0.3.0/src/agent_backbone/hooks/codex_hook.py +422 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/hooks/install.py +63 -0
- agent_backbone-0.3.0/src/agent_backbone/hooks/opencode_hook.js +575 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/models.py +16 -2
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/recent.py +0 -5
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/agents/__init__.py +9 -1
- agent_backbone-0.3.0/src/agent_backbone/services/agents/_file_reader.py +264 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/agents/_inference.py +187 -17
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/agents/_validation.py +14 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/agents/acknowledgement.py +5 -3
- agent_backbone-0.3.0/src/agent_backbone/services/agents/fleet.py +312 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/agents/instructions.py +17 -10
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/agents/launch.py +318 -59
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/agents/models.py +9 -2
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/agents/operations.py +109 -13
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/agents/queries.py +49 -5
- agent_backbone-0.3.0/src/agent_backbone/services/agents/skills_preview.py +173 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/agents/store.py +178 -16
- agent_backbone-0.3.0/src/agent_backbone/services/agents/transcript.py +282 -0
- agent_backbone-0.3.0/src/agent_backbone/services/agents/transitions.py +134 -0
- agent_backbone-0.3.0/src/agent_backbone/services/agents/usage.py +464 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/__init__.py +6 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/_agents_repo.py +87 -5
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/_delivery_repo.py +42 -1
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/_diagnostics_repo.py +92 -2
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/_events_repo.py +36 -3
- agent_backbone-0.3.0/src/agent_backbone/services/database/_fleet_repo.py +106 -0
- agent_backbone-0.3.0/src/agent_backbone/services/database/_queue_repo.py +938 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/_reports_repo.py +7 -9
- agent_backbone-0.3.0/src/agent_backbone/services/database/_signing_repo.py +1106 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/_time.py +12 -0
- agent_backbone-0.3.0/src/agent_backbone/services/database/_transitions_repo.py +159 -0
- agent_backbone-0.3.0/src/agent_backbone/services/database/_usage_repo.py +270 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/backbone_db.py +8 -0
- agent_backbone-0.2.0/src/agent_backbone/services/database/migrations/versions/2026_09_09_761f09f031b6_initial_schema.py → agent_backbone-0.3.0/src/agent_backbone/services/database/migrations/versions/2026_10_14_7c02e74cce0a_initial_schema.py +315 -7
- agent_backbone-0.3.0/src/agent_backbone/services/database/models.py +719 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/github/interface.py +40 -14
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/integrations/_notify.py +1 -1
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/integrations/telegram/_commands.py +92 -1
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/integrations/telegram/interface.py +41 -9
- agent_backbone-0.3.0/src/agent_backbone/services/jobs/__init__.py +30 -0
- agent_backbone-0.3.0/src/agent_backbone/services/jobs/_cursor.py +42 -0
- agent_backbone-0.3.0/src/agent_backbone/services/jobs/context_note.py +134 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/jobs/diagnostics.py +29 -2
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/jobs/escalation.py +173 -22
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/jobs/github_poll.py +71 -40
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/jobs/monitor.py +45 -15
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/jobs/pending.py +31 -17
- agent_backbone-0.3.0/src/agent_backbone/services/jobs/resources.py +138 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/jobs/retry.py +173 -9
- agent_backbone-0.3.0/src/agent_backbone/services/jobs/sources_poll.py +98 -0
- agent_backbone-0.3.0/src/agent_backbone/services/jobs/transitions.py +202 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/__init__.py +19 -1
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/_delivery.py +283 -46
- agent_backbone-0.3.0/src/agent_backbone/services/routing/_envelope.py +64 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/_format.py +20 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/_ingest.py +6 -2
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/_intelligence.py +33 -16
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/_outbox.py +18 -1
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/_resolution.py +12 -5
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/_router.py +21 -2
- agent_backbone-0.3.0/src/agent_backbone/services/routing/_steer.py +364 -0
- agent_backbone-0.3.0/src/agent_backbone/services/routing/_subscriptions.py +149 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/_targets.py +13 -3
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/models.py +5 -2
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/runtimes/__init__.py +35 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/runtimes/_pane.py +16 -4
- agent_backbone-0.3.0/src/agent_backbone/services/runtimes/_usage.py +90 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/runtimes/base.py +366 -41
- agent_backbone-0.3.0/src/agent_backbone/services/runtimes/capabilities.py +969 -0
- agent_backbone-0.3.0/src/agent_backbone/services/runtimes/claude.py +589 -0
- agent_backbone-0.3.0/src/agent_backbone/services/runtimes/codex.py +662 -0
- agent_backbone-0.3.0/src/agent_backbone/services/runtimes/deepcode.py +147 -0
- agent_backbone-0.3.0/src/agent_backbone/services/runtimes/gemini.py +367 -0
- agent_backbone-0.3.0/src/agent_backbone/services/runtimes/opencode.py +350 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/scheduler.py +6 -0
- agent_backbone-0.3.0/src/agent_backbone/services/sources/__init__.py +10 -0
- agent_backbone-0.3.0/src/agent_backbone/services/sources/_registry.py +56 -0
- agent_backbone-0.3.0/src/agent_backbone/services/sources/base.py +65 -0
- agent_backbone-0.3.0/src/agent_backbone/services/sources/gmail.py +216 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/swarm/__init__.py +1 -6
- agent_backbone-0.3.0/src/agent_backbone/services/swarm/_templates.py +31 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/swarm/interface.py +38 -9
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/terminal/__init__.py +10 -2
- agent_backbone-0.3.0/src/agent_backbone/services/terminal/_callers.py +132 -0
- agent_backbone-0.3.0/src/agent_backbone/services/terminal/_copy_mode.py +22 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/terminal/_core.py +9 -3
- agent_backbone-0.3.0/src/agent_backbone/services/terminal/_memory.py +66 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/terminal/_sessions.py +86 -10
- agent_backbone-0.3.0/src/agent_backbone/signing.py +222 -0
- agent_backbone-0.3.0/src/agent_backbone/skills.py +812 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/templates.py +50 -25
- agent_backbone-0.3.0/src/agent_backbone/usage.py +153 -0
- agent_backbone-0.3.0/templates/README.md +43 -0
- agent_backbone-0.3.0/templates/base.md +48 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/templates/swarm/coder.md +1 -1
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/templates/swarm/common.md +7 -2
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/templates/swarm/coordinator.md +21 -3
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/templates/swarm/reviewer.md +2 -2
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/templates/swarm/scout.md +2 -2
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/templates/swarm/worker.md +1 -1
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/tests/unit/help/test_help.py +10 -2
- agent_backbone-0.2.0/PKG-INFO +0 -210
- agent_backbone-0.2.0/README.md +0 -170
- agent_backbone-0.2.0/docs/api.md +0 -502
- agent_backbone-0.2.0/docs/deep-reviews.md +0 -100
- agent_backbone-0.2.0/docs/media/demo.gif +0 -0
- agent_backbone-0.2.0/help/agents.md +0 -98
- agent_backbone-0.2.0/help/reviews.md +0 -24
- agent_backbone-0.2.0/src/agent_backbone/api/routes/messages.py +0 -113
- agent_backbone-0.2.0/src/agent_backbone/cli/agents.py +0 -617
- agent_backbone-0.2.0/src/agent_backbone/hooks/backbone_state.py +0 -543
- agent_backbone-0.2.0/src/agent_backbone/hooks/claude_hook.py +0 -108
- agent_backbone-0.2.0/src/agent_backbone/hooks/codex_hook.py +0 -88
- agent_backbone-0.2.0/src/agent_backbone/hooks/opencode_hook.js +0 -161
- agent_backbone-0.2.0/src/agent_backbone/services/agents/_file_reader.py +0 -145
- agent_backbone-0.2.0/src/agent_backbone/services/database/_queue_repo.py +0 -500
- agent_backbone-0.2.0/src/agent_backbone/services/database/models.py +0 -387
- agent_backbone-0.2.0/src/agent_backbone/services/jobs/__init__.py +0 -15
- agent_backbone-0.2.0/src/agent_backbone/services/jobs/copy_mode.py +0 -50
- agent_backbone-0.2.0/src/agent_backbone/services/runtimes/claude.py +0 -231
- agent_backbone-0.2.0/src/agent_backbone/services/runtimes/codex.py +0 -326
- agent_backbone-0.2.0/src/agent_backbone/services/runtimes/deepcode.py +0 -78
- agent_backbone-0.2.0/src/agent_backbone/services/runtimes/gemini.py +0 -106
- agent_backbone-0.2.0/src/agent_backbone/services/runtimes/opencode.py +0 -116
- agent_backbone-0.2.0/src/agent_backbone/services/swarm/_templates.py +0 -39
- agent_backbone-0.2.0/src/agent_backbone/services/terminal/_copy_mode.py +0 -42
- agent_backbone-0.2.0/templates/README.md +0 -17
- agent_backbone-0.2.0/templates/base.md +0 -62
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/.gitignore +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/LICENSE +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/alembic.ini +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/docs/README.md +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/examples/report_speech_server.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/help/github.md +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/__init__.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/__init__.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/auth.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/routes/__init__.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/routes/config.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/routes/deliveries.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/routes/events.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/routes/help.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/routes/integrations.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/routes/issues.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/routes/reports.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/routes/swarms.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/api/routes/webhook.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/base/__init__.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/base/lifecycle.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/base/protocols.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/cli/__main__.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/cli/upgrade.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/help/__init__.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/hooks/__init__.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/hooks/gemini_hook.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/release.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/__init__.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/agents/_locks.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/agents/audit.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/_acks_repo.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/_dependencies_repo.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/_outbox_repo.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/_repo.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/_settings_repo.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/_state_repo.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/_swarms_repo.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/base.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/engine.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/migrations/env.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/database/migrations/script.py.mako +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/github/__init__.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/github/reviews.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/github/snapshot.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/integrations/__init__.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/integrations/_registry.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/integrations/base.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/integrations/telegram/__init__.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/integrations/telegram/_report_delivery.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/integrations/telegram/_routing.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/integrations/telegram/_speech.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/integrations/telegram/_topic_discovery.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/integrations/telegram/_topics.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/integrations/telegram/_updates.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/jobs/upgrade_watch.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/_create_notify.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/_dedup.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/_dependencies.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/_lifecycle.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/_priority.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/routing/_validity.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/runtimes/_opencode_launch.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/runtimes/aider.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/runtimes/catalog.json +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/runtimes/shell.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/swarm/_roster.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/swarm/_worktree.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/terminal/_attach.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/src/agent_backbone/services/terminal/_pty.py +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/templates/policies/python-example.md +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/templates/swarm/kickoff.md +0 -0
- {agent_backbone-0.2.0 → agent_backbone-0.3.0}/tests/unit/help/__init__.py +0 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: agent-backbone
|
|
3
|
+
Version: 0.3.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/INDEX.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: cryptography>=44.0
|
|
27
|
+
Requires-Dist: fastapi>=0.115
|
|
28
|
+
Requires-Dist: httpx>=0.27
|
|
29
|
+
Requires-Dist: pydantic>=2.0
|
|
30
|
+
Requires-Dist: python-dotenv>=1.0
|
|
31
|
+
Requires-Dist: python-socketio>=5.11
|
|
32
|
+
Requires-Dist: python-telegram-bot>=21.0
|
|
33
|
+
Requires-Dist: rich>=14.1
|
|
34
|
+
Requires-Dist: sqlalchemy[asyncio]>=2.0
|
|
35
|
+
Requires-Dist: uvicorn[standard]>=0.32
|
|
36
|
+
Provides-Extra: postgres
|
|
37
|
+
Requires-Dist: asyncpg>=0.29; extra == 'postgres'
|
|
38
|
+
Description-Content-Type: text/markdown
|
|
39
|
+
|
|
40
|
+
<div align="center">
|
|
41
|
+
|
|
42
|
+
<img src="docs/media/banner.png" alt="agent-backbone: your terminal agents, working as a team" width="720">
|
|
43
|
+
|
|
44
|
+
**Claude Code, Codex and OpenCode, working as one team on your machine.**<br>
|
|
45
|
+
Agents message each other by name, take work from GitHub Issues and reach you on your phone.<br>
|
|
46
|
+
They use the logins you already have, and core use needs no setup in your repositories.
|
|
47
|
+
|
|
48
|
+
[](https://pypi.org/project/agent-backbone/)
|
|
49
|
+
[](https://pypi.org/project/agent-backbone/)
|
|
50
|
+
[](https://github.com/eandualem/agent-backbone/actions/workflows/ci.yml)
|
|
51
|
+
[](https://pypistats.org/packages/agent-backbone)
|
|
52
|
+
[](LICENSE)
|
|
53
|
+
|
|
54
|
+
[Watch](#watch) · [Quick start](#quick-start) · [Why Backbone](#why-backbone) · [Docs](docs/INDEX.md) · [Security](docs/security.md)
|
|
55
|
+
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
## Watch
|
|
59
|
+
|
|
60
|
+
https://github.com/user-attachments/assets/695a6096-4196-4115-911c-a0043d632088
|
|
61
|
+
|
|
62
|
+
<p align="center"><sub>The overview, 1:23, captioned. Unmute for the narration.</sub></p>
|
|
63
|
+
|
|
64
|
+
<p align="center"><b>Up next</b> ›<br>
|
|
65
|
+
<a href="docs/media/films.md#why-backbone"><img src="docs/media/film-why-backbone.jpg" width="49%" alt="Why Backbone, 2 minutes 23: from 'set up Backbone for me' to a team on three CLIs"></a>
|
|
66
|
+
</p>
|
|
67
|
+
|
|
68
|
+
## Why Backbone
|
|
69
|
+
|
|
70
|
+
You already run coding agents in your terminal. Each one works alone, and you
|
|
71
|
+
carry every message between them. Backbone turns them into a team.
|
|
72
|
+
|
|
73
|
+
<table>
|
|
74
|
+
<tr>
|
|
75
|
+
<td width="50%" valign="top">
|
|
76
|
+
|
|
77
|
+
**Never typed into a busy agent**<br>
|
|
78
|
+
Agents reach each other by name. When the recipient is working or waiting
|
|
79
|
+
for you, the message is queued and delivered when the agent is ready, marked
|
|
80
|
+
with who sent it. Ordinary messages expire after 30 minutes by default, and
|
|
81
|
+
the sender is told.
|
|
82
|
+
|
|
83
|
+
</td>
|
|
84
|
+
<td width="50%" valign="top">
|
|
85
|
+
|
|
86
|
+
**No setup in your repositories**<br>
|
|
87
|
+
An agent is a folder and the CLI you choose, and the folder is its name.
|
|
88
|
+
Core use adds no configuration files, task schemas or commits to your
|
|
89
|
+
projects.
|
|
90
|
+
|
|
91
|
+
</td>
|
|
92
|
+
</tr>
|
|
93
|
+
<tr>
|
|
94
|
+
<td valign="top">
|
|
95
|
+
|
|
96
|
+
**GitHub Issues are the task list**<br>
|
|
97
|
+
In a repository worker owns or watches, label an issue `for:worker` and it
|
|
98
|
+
lands in worker's queue, one at a time.
|
|
99
|
+
To hand work on, an agent opens an issue for another. The issue stays as the
|
|
100
|
+
record.
|
|
101
|
+
|
|
102
|
+
</td>
|
|
103
|
+
<td valign="top">
|
|
104
|
+
|
|
105
|
+
**Mix CLIs in one team**<br>
|
|
106
|
+
Claude Code, Codex and OpenCode agents work side by side, and a swarm puts a
|
|
107
|
+
coordinator and helpers on different CLIs on one branch. A second model can
|
|
108
|
+
review the change.
|
|
109
|
+
|
|
110
|
+
</td>
|
|
111
|
+
</tr>
|
|
112
|
+
<tr>
|
|
113
|
+
<td valign="top">
|
|
114
|
+
|
|
115
|
+
**In the loop from anywhere**<br>
|
|
116
|
+
Watch any agent, step into its terminal, or answer from your phone. With
|
|
117
|
+
[Telegram set up](docs/telegram.md#one-topic-per-agent) in a group with
|
|
118
|
+
topics, every agent outside a swarm gets its own topic, with Allow and Deny
|
|
119
|
+
on permission prompts.
|
|
120
|
+
|
|
121
|
+
</td>
|
|
122
|
+
<td valign="top">
|
|
123
|
+
|
|
124
|
+
**State you can check**<br>
|
|
125
|
+
Backbone tracks whether each agent is idle, working or waiting for a person,
|
|
126
|
+
and shows the evidence behind every reading. Your agents decide the work.
|
|
127
|
+
|
|
128
|
+
</td>
|
|
129
|
+
</tr>
|
|
130
|
+
</table>
|
|
131
|
+
|
|
132
|
+
New sessions are briefed on these tools, so you can ask any agent to set up
|
|
133
|
+
the team you need: an agent per repository, skills and rules shared by tag,
|
|
134
|
+
specialists on request.
|
|
135
|
+
|
|
136
|
+
## Quick start
|
|
137
|
+
|
|
138
|
+
**Let your agent do it.** Open the coding agent you already use and say:
|
|
139
|
+
|
|
140
|
+
```text
|
|
141
|
+
Install agent-backbone with uv tool install agent-backbone,
|
|
142
|
+
then run backbone help setup and follow it.
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
The setup playbook is written for agents: each step ends with a check and
|
|
146
|
+
says when it needs you, for your accounts and secrets.
|
|
147
|
+
|
|
148
|
+
**Or by hand.** You need macOS or Linux, Python 3.11+, tmux,
|
|
149
|
+
[uv](https://docs.astral.sh/uv/) (or pipx), and an agent CLI installed and
|
|
150
|
+
signed in.
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
uv tool install agent-backbone
|
|
154
|
+
backbone init
|
|
155
|
+
backbone service install # start now and at login
|
|
156
|
+
backbone doctor # check dependencies and API access
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Then, from a repository you want an agent to work in:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
cd ~/code/app
|
|
163
|
+
backbone agent start --runtime claude # or --runtime codex, --runtime opencode
|
|
164
|
+
backbone tell app "Summarise what this repository does in three sentences."
|
|
165
|
+
backbone agent attach app # read its reply; Ctrl-b d detaches
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
The folder supplies the agent name. If startup reports a prompt or a timeout,
|
|
169
|
+
`backbone agent inspect app` shows what needs attention. `tell` reports
|
|
170
|
+
whether the message was delivered or queued; delivery does not mean the agent
|
|
171
|
+
has finished answering. A queued message waits until the agent is ready, up
|
|
172
|
+
to 30 minutes by default, so do not resend a message the queue accepted. If
|
|
173
|
+
`backbone` is not on your PATH, run `uv tool update-shell` and open a new
|
|
174
|
+
terminal. In a container without a login service, use `backbone up --detach`.
|
|
175
|
+
`ab` is a short alias; on macOS, use `backbone` if Apache Bench shadows it.
|
|
176
|
+
|
|
177
|
+
[Getting started](docs/getting-started.md) walks through a second agent,
|
|
178
|
+
GitHub and Telegram. [Quick usage](USAGE.md) is the everyday command guide.
|
|
179
|
+
|
|
180
|
+
## Built to be relied on
|
|
181
|
+
|
|
182
|
+
- **One delivery gate.** Everything typed into an agent's terminal passes the
|
|
183
|
+
same readiness check. Busy agents are never interrupted, and every message
|
|
184
|
+
carries where it came from.
|
|
185
|
+
- **The same result on every required CLI.** A capability ships only when it
|
|
186
|
+
works the same in Claude Code, Codex and OpenCode, checked by the same
|
|
187
|
+
behaviour test on each. The [runtime capability table](docs/runtime-capabilities.md)
|
|
188
|
+
and `backbone doctor` read one contract, and gaps are listed, not hidden.
|
|
189
|
+
- **More than 3,500 tests,** run on every change with no network, models or
|
|
190
|
+
services.
|
|
191
|
+
- **Built with itself.** Backbone is developed by agents running inside a
|
|
192
|
+
Backbone in daily use. The films in this README were made the same way.
|
|
193
|
+
- **An honest security model.** One trusted user on one machine, an API on
|
|
194
|
+
localhost, and a clear account of what agents can reach. Read
|
|
195
|
+
[Security](docs/security.md) before granting access.
|
|
196
|
+
|
|
197
|
+
Backbone is not an agent framework: it calls no models and needs no model API
|
|
198
|
+
keys. It is not a workflow engine or a dashboard either. It gives your
|
|
199
|
+
agents names, safe messages and evidence, and leaves the work to them.
|
|
200
|
+
|
|
201
|
+
## Works with
|
|
202
|
+
|
|
203
|
+
| CLI | Support |
|
|
204
|
+
|---|---|
|
|
205
|
+
| 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 |
|
|
206
|
+
| Gemini CLI, Deep Code, Aider | Supported on demand; each gap is listed in the [capability table](docs/runtime-capabilities.md) |
|
|
207
|
+
|
|
208
|
+
## Going further
|
|
209
|
+
|
|
210
|
+
- [GitHub](docs/github.md): route issues and review notifications, starting with
|
|
211
|
+
token-based polling. [GitHub App setup](docs/github-app-setup.md) adds webhooks.
|
|
212
|
+
- [Swarms](docs/swarms.md): put several specialists on one task.
|
|
213
|
+
- [Skills](docs/skills.md): keep one copy of each skill, tag it, and every agent
|
|
214
|
+
with that tag finds it in its own CLI.
|
|
215
|
+
- [Telegram](docs/telegram.md): send messages and read reports from your phone.
|
|
216
|
+
- [Token usage](docs/token-usage.md): tokens by agent, conversation and model.
|
|
217
|
+
- [API](docs/api.md): build a dashboard or automation; Backbone ships no UI.
|
|
218
|
+
- [Runtime support and limits](docs/status-and-roadmap.md): checked capabilities,
|
|
219
|
+
unsupported environments and known limitations.
|
|
220
|
+
- [How it works](docs/how-it-works.md): state detection, delivery and routing.
|
|
221
|
+
|
|
222
|
+
The [documentation index](docs/INDEX.md) covers configuration, diagnostics
|
|
223
|
+
and the remaining references. Installed copies are available through
|
|
224
|
+
`backbone docs`; `backbone help` contains short agent playbooks.
|
|
225
|
+
|
|
226
|
+
## Security model
|
|
227
|
+
|
|
228
|
+
Backbone runs as one trusted OS user on one machine. Agents are not isolated
|
|
229
|
+
from each other. The API binds to localhost by default and uses one full-admin
|
|
230
|
+
key; local sessions can read that key through the CLI. Backbone keeps its
|
|
231
|
+
control-plane secrets out of launched environments, but this is not a filesystem
|
|
232
|
+
security boundary. Read [Security](docs/security.md) before granting access or
|
|
233
|
+
exposing the API.
|
|
234
|
+
|
|
235
|
+
## Development
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
git clone https://github.com/eandualem/agent-backbone
|
|
239
|
+
cd agent-backbone
|
|
240
|
+
make install
|
|
241
|
+
make check
|
|
242
|
+
BACKBONE_DATA_DIR=/tmp/backbone-dev make dev
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
`make dev` runs on its own tmux server, so its agents stay apart from your own
|
|
246
|
+
tmux sessions and from a real backbone's agents. Run CLI commands for it from
|
|
247
|
+
a terminal outside tmux with the same settings, for example
|
|
248
|
+
`TMUX_TMPDIR=/tmp/backbone-dev-tmux-$(id -u) BACKBONE_DATA_DIR=/tmp/backbone-dev uv run backbone agent attach NAME`.
|
|
249
|
+
`agent attach`, and agent commands run while `make dev` is stopped, use tmux
|
|
250
|
+
directly.
|
|
251
|
+
|
|
252
|
+
See [Contributing](CONTRIBUTING.md) for branches, checks and releases.
|
|
253
|
+
|
|
254
|
+
## License
|
|
255
|
+
|
|
256
|
+
[MIT](LICENSE).
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="docs/media/banner.png" alt="agent-backbone: your terminal agents, working as a team" width="720">
|
|
4
|
+
|
|
5
|
+
**Claude Code, Codex and OpenCode, working as one team on your machine.**<br>
|
|
6
|
+
Agents message each other by name, take work from GitHub Issues and reach you on your phone.<br>
|
|
7
|
+
They use the logins you already have, and core use needs no setup in your repositories.
|
|
8
|
+
|
|
9
|
+
[](https://pypi.org/project/agent-backbone/)
|
|
10
|
+
[](https://pypi.org/project/agent-backbone/)
|
|
11
|
+
[](https://github.com/eandualem/agent-backbone/actions/workflows/ci.yml)
|
|
12
|
+
[](https://pypistats.org/packages/agent-backbone)
|
|
13
|
+
[](LICENSE)
|
|
14
|
+
|
|
15
|
+
[Watch](#watch) · [Quick start](#quick-start) · [Why Backbone](#why-backbone) · [Docs](docs/INDEX.md) · [Security](docs/security.md)
|
|
16
|
+
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
## Watch
|
|
20
|
+
|
|
21
|
+
https://github.com/user-attachments/assets/695a6096-4196-4115-911c-a0043d632088
|
|
22
|
+
|
|
23
|
+
<p align="center"><sub>The overview, 1:23, captioned. Unmute for the narration.</sub></p>
|
|
24
|
+
|
|
25
|
+
<p align="center"><b>Up next</b> ›<br>
|
|
26
|
+
<a href="docs/media/films.md#why-backbone"><img src="docs/media/film-why-backbone.jpg" width="49%" alt="Why Backbone, 2 minutes 23: from 'set up Backbone for me' to a team on three CLIs"></a>
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
## Why Backbone
|
|
30
|
+
|
|
31
|
+
You already run coding agents in your terminal. Each one works alone, and you
|
|
32
|
+
carry every message between them. Backbone turns them into a team.
|
|
33
|
+
|
|
34
|
+
<table>
|
|
35
|
+
<tr>
|
|
36
|
+
<td width="50%" valign="top">
|
|
37
|
+
|
|
38
|
+
**Never typed into a busy agent**<br>
|
|
39
|
+
Agents reach each other by name. When the recipient is working or waiting
|
|
40
|
+
for you, the message is queued and delivered when the agent is ready, marked
|
|
41
|
+
with who sent it. Ordinary messages expire after 30 minutes by default, and
|
|
42
|
+
the sender is told.
|
|
43
|
+
|
|
44
|
+
</td>
|
|
45
|
+
<td width="50%" valign="top">
|
|
46
|
+
|
|
47
|
+
**No setup in your repositories**<br>
|
|
48
|
+
An agent is a folder and the CLI you choose, and the folder is its name.
|
|
49
|
+
Core use adds no configuration files, task schemas or commits to your
|
|
50
|
+
projects.
|
|
51
|
+
|
|
52
|
+
</td>
|
|
53
|
+
</tr>
|
|
54
|
+
<tr>
|
|
55
|
+
<td valign="top">
|
|
56
|
+
|
|
57
|
+
**GitHub Issues are the task list**<br>
|
|
58
|
+
In a repository worker owns or watches, label an issue `for:worker` and it
|
|
59
|
+
lands in worker's queue, one at a time.
|
|
60
|
+
To hand work on, an agent opens an issue for another. The issue stays as the
|
|
61
|
+
record.
|
|
62
|
+
|
|
63
|
+
</td>
|
|
64
|
+
<td valign="top">
|
|
65
|
+
|
|
66
|
+
**Mix CLIs in one team**<br>
|
|
67
|
+
Claude Code, Codex and OpenCode agents work side by side, and a swarm puts a
|
|
68
|
+
coordinator and helpers on different CLIs on one branch. A second model can
|
|
69
|
+
review the change.
|
|
70
|
+
|
|
71
|
+
</td>
|
|
72
|
+
</tr>
|
|
73
|
+
<tr>
|
|
74
|
+
<td valign="top">
|
|
75
|
+
|
|
76
|
+
**In the loop from anywhere**<br>
|
|
77
|
+
Watch any agent, step into its terminal, or answer from your phone. With
|
|
78
|
+
[Telegram set up](docs/telegram.md#one-topic-per-agent) in a group with
|
|
79
|
+
topics, every agent outside a swarm gets its own topic, with Allow and Deny
|
|
80
|
+
on permission prompts.
|
|
81
|
+
|
|
82
|
+
</td>
|
|
83
|
+
<td valign="top">
|
|
84
|
+
|
|
85
|
+
**State you can check**<br>
|
|
86
|
+
Backbone tracks whether each agent is idle, working or waiting for a person,
|
|
87
|
+
and shows the evidence behind every reading. Your agents decide the work.
|
|
88
|
+
|
|
89
|
+
</td>
|
|
90
|
+
</tr>
|
|
91
|
+
</table>
|
|
92
|
+
|
|
93
|
+
New sessions are briefed on these tools, so you can ask any agent to set up
|
|
94
|
+
the team you need: an agent per repository, skills and rules shared by tag,
|
|
95
|
+
specialists on request.
|
|
96
|
+
|
|
97
|
+
## Quick start
|
|
98
|
+
|
|
99
|
+
**Let your agent do it.** Open the coding agent you already use and say:
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
Install agent-backbone with uv tool install agent-backbone,
|
|
103
|
+
then run backbone help setup and follow it.
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The setup playbook is written for agents: each step ends with a check and
|
|
107
|
+
says when it needs you, for your accounts and secrets.
|
|
108
|
+
|
|
109
|
+
**Or by hand.** You need macOS or Linux, Python 3.11+, tmux,
|
|
110
|
+
[uv](https://docs.astral.sh/uv/) (or pipx), and an agent CLI installed and
|
|
111
|
+
signed in.
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
uv tool install agent-backbone
|
|
115
|
+
backbone init
|
|
116
|
+
backbone service install # start now and at login
|
|
117
|
+
backbone doctor # check dependencies and API access
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Then, from a repository you want an agent to work in:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
cd ~/code/app
|
|
124
|
+
backbone agent start --runtime claude # or --runtime codex, --runtime opencode
|
|
125
|
+
backbone tell app "Summarise what this repository does in three sentences."
|
|
126
|
+
backbone agent attach app # read its reply; Ctrl-b d detaches
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
The folder supplies the agent name. If startup reports a prompt or a timeout,
|
|
130
|
+
`backbone agent inspect app` shows what needs attention. `tell` reports
|
|
131
|
+
whether the message was delivered or queued; delivery does not mean the agent
|
|
132
|
+
has finished answering. A queued message waits until the agent is ready, up
|
|
133
|
+
to 30 minutes by default, so do not resend a message the queue accepted. If
|
|
134
|
+
`backbone` is not on your PATH, run `uv tool update-shell` and open a new
|
|
135
|
+
terminal. In a container without a login service, use `backbone up --detach`.
|
|
136
|
+
`ab` is a short alias; on macOS, use `backbone` if Apache Bench shadows it.
|
|
137
|
+
|
|
138
|
+
[Getting started](docs/getting-started.md) walks through a second agent,
|
|
139
|
+
GitHub and Telegram. [Quick usage](USAGE.md) is the everyday command guide.
|
|
140
|
+
|
|
141
|
+
## Built to be relied on
|
|
142
|
+
|
|
143
|
+
- **One delivery gate.** Everything typed into an agent's terminal passes the
|
|
144
|
+
same readiness check. Busy agents are never interrupted, and every message
|
|
145
|
+
carries where it came from.
|
|
146
|
+
- **The same result on every required CLI.** A capability ships only when it
|
|
147
|
+
works the same in Claude Code, Codex and OpenCode, checked by the same
|
|
148
|
+
behaviour test on each. The [runtime capability table](docs/runtime-capabilities.md)
|
|
149
|
+
and `backbone doctor` read one contract, and gaps are listed, not hidden.
|
|
150
|
+
- **More than 3,500 tests,** run on every change with no network, models or
|
|
151
|
+
services.
|
|
152
|
+
- **Built with itself.** Backbone is developed by agents running inside a
|
|
153
|
+
Backbone in daily use. The films in this README were made the same way.
|
|
154
|
+
- **An honest security model.** One trusted user on one machine, an API on
|
|
155
|
+
localhost, and a clear account of what agents can reach. Read
|
|
156
|
+
[Security](docs/security.md) before granting access.
|
|
157
|
+
|
|
158
|
+
Backbone is not an agent framework: it calls no models and needs no model API
|
|
159
|
+
keys. It is not a workflow engine or a dashboard either. It gives your
|
|
160
|
+
agents names, safe messages and evidence, and leaves the work to them.
|
|
161
|
+
|
|
162
|
+
## Works with
|
|
163
|
+
|
|
164
|
+
| CLI | Support |
|
|
165
|
+
|---|---|
|
|
166
|
+
| 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 |
|
|
167
|
+
| Gemini CLI, Deep Code, Aider | Supported on demand; each gap is listed in the [capability table](docs/runtime-capabilities.md) |
|
|
168
|
+
|
|
169
|
+
## Going further
|
|
170
|
+
|
|
171
|
+
- [GitHub](docs/github.md): route issues and review notifications, starting with
|
|
172
|
+
token-based polling. [GitHub App setup](docs/github-app-setup.md) adds webhooks.
|
|
173
|
+
- [Swarms](docs/swarms.md): put several specialists on one task.
|
|
174
|
+
- [Skills](docs/skills.md): keep one copy of each skill, tag it, and every agent
|
|
175
|
+
with that tag finds it in its own CLI.
|
|
176
|
+
- [Telegram](docs/telegram.md): send messages and read reports from your phone.
|
|
177
|
+
- [Token usage](docs/token-usage.md): tokens by agent, conversation and model.
|
|
178
|
+
- [API](docs/api.md): build a dashboard or automation; Backbone ships no UI.
|
|
179
|
+
- [Runtime support and limits](docs/status-and-roadmap.md): checked capabilities,
|
|
180
|
+
unsupported environments and known limitations.
|
|
181
|
+
- [How it works](docs/how-it-works.md): state detection, delivery and routing.
|
|
182
|
+
|
|
183
|
+
The [documentation index](docs/INDEX.md) covers configuration, diagnostics
|
|
184
|
+
and the remaining references. Installed copies are available through
|
|
185
|
+
`backbone docs`; `backbone help` contains short agent playbooks.
|
|
186
|
+
|
|
187
|
+
## Security model
|
|
188
|
+
|
|
189
|
+
Backbone runs as one trusted OS user on one machine. Agents are not isolated
|
|
190
|
+
from each other. The API binds to localhost by default and uses one full-admin
|
|
191
|
+
key; local sessions can read that key through the CLI. Backbone keeps its
|
|
192
|
+
control-plane secrets out of launched environments, but this is not a filesystem
|
|
193
|
+
security boundary. Read [Security](docs/security.md) before granting access or
|
|
194
|
+
exposing the API.
|
|
195
|
+
|
|
196
|
+
## Development
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
git clone https://github.com/eandualem/agent-backbone
|
|
200
|
+
cd agent-backbone
|
|
201
|
+
make install
|
|
202
|
+
make check
|
|
203
|
+
BACKBONE_DATA_DIR=/tmp/backbone-dev make dev
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
`make dev` runs on its own tmux server, so its agents stay apart from your own
|
|
207
|
+
tmux sessions and from a real backbone's agents. Run CLI commands for it from
|
|
208
|
+
a terminal outside tmux with the same settings, for example
|
|
209
|
+
`TMUX_TMPDIR=/tmp/backbone-dev-tmux-$(id -u) BACKBONE_DATA_DIR=/tmp/backbone-dev uv run backbone agent attach NAME`.
|
|
210
|
+
`agent attach`, and agent commands run while `make dev` is stopped, use tmux
|
|
211
|
+
directly.
|
|
212
|
+
|
|
213
|
+
See [Contributing](CONTRIBUTING.md) for branches, checks and releases.
|
|
214
|
+
|
|
215
|
+
## License
|
|
216
|
+
|
|
217
|
+
[MIT](LICENSE).
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
# Quick usage
|
|
2
2
|
|
|
3
|
-
**Open this guide in your terminal: `backbone usage`** (`ab usage` works too).
|
|
3
|
+
**Open this guide in your terminal: `backbone help usage`** (`ab help usage` works too).
|
|
4
4
|
`backbone docs usage` opens the same page. Use `backbone --help` for all commands.
|
|
5
5
|
|
|
6
6
|
Prefer an agent to handle setup? Point it to [README.md](README.md) and ask it
|
|
7
|
-
to follow `backbone help setup`.
|
|
7
|
+
to follow `backbone help setup`. For prerequisites and a first task, use
|
|
8
|
+
[Getting started](docs/getting-started.md).
|
|
8
9
|
|
|
9
|
-
##
|
|
10
|
+
## Install and start Backbone
|
|
10
11
|
|
|
11
12
|
```bash
|
|
12
|
-
uv tool install
|
|
13
|
+
uv tool install agent-backbone
|
|
13
14
|
backbone init
|
|
14
15
|
backbone service install # start now and at login
|
|
15
16
|
backbone status
|
|
@@ -22,11 +23,14 @@ Run `backbone doctor` if setup needs attention.
|
|
|
22
23
|
|
|
23
24
|
```bash
|
|
24
25
|
cd ~/code/app
|
|
25
|
-
backbone agent start --runtime codex
|
|
26
|
+
backbone agent start --runtime codex
|
|
27
|
+
backbone tell app "Summarise this repository in three sentences."
|
|
26
28
|
backbone agent attach app # open its terminal; Ctrl-b d detaches
|
|
27
|
-
backbone agent start app #
|
|
28
|
-
backbone agent
|
|
29
|
+
backbone agent start app # new conversation, same CLI and model
|
|
30
|
+
backbone agent resume app # continue its previous conversation instead
|
|
29
31
|
backbone updates # latest progress from the team
|
|
32
|
+
backbone skills list # shared skills and which agents receive them
|
|
33
|
+
backbone skills app # the skills one agent gets, with their tags
|
|
30
34
|
```
|
|
31
35
|
|
|
32
36
|
An already running agent stays running. Starting from its directory also finds
|
|
@@ -37,8 +41,8 @@ changing CLI without a model clears the old CLI's model setting.
|
|
|
37
41
|
|
|
38
42
|
```bash
|
|
39
43
|
backbone updates # latest reports from the team
|
|
40
|
-
backbone updates --agent
|
|
41
|
-
backbone updates --agent
|
|
44
|
+
backbone updates --agent app # one agent's latest report
|
|
45
|
+
backbone updates --agent app --history # its earlier reports
|
|
42
46
|
backbone updates show 12 # full report and links (use an ID shown above)
|
|
43
47
|
backbone updates --limit 20 # a larger page
|
|
44
48
|
```
|
|
@@ -49,10 +53,12 @@ has not published one. Reading reports does not interrupt agents or ask them to
|
|
|
49
53
|
produce one. `backbone status` shows whether agents are working; `backbone updates`
|
|
50
54
|
shows what they say they have accomplished.
|
|
51
55
|
|
|
52
|
-
In Telegram, use `/updates`, `/updates
|
|
53
|
-
`/updates show 12`.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
In Telegram, use `/updates`, `/updates app`, `/updates history app`, or
|
|
57
|
+
`/updates show 12`. New reports appear in General and the ordinary agent's topic,
|
|
58
|
+
with buttons for the full report and team feed. Delivery retries when Telegram
|
|
59
|
+
is unavailable. Swarm participants send findings to their repository agent,
|
|
60
|
+
which publishes the consolidated report. Optional voice messages need
|
|
61
|
+
[local speech setup](docs/report-audio.md).
|
|
56
62
|
|
|
57
63
|
## Publish your progress (for agents)
|
|
58
64
|
|
|
@@ -67,39 +73,46 @@ The author defaults to the current agent; use `--agent NAME` outside an agent
|
|
|
67
73
|
session. Reports must be short; oversized reports are rejected. See
|
|
68
74
|
`backbone help reports` for the section limits and when to publish.
|
|
69
75
|
|
|
76
|
+
During long work, agents can read corrections themselves without waiting for
|
|
77
|
+
terminal delivery: `backbone inbox` (or `--agent NAME`). After applying or
|
|
78
|
+
superseding messages, use `backbone inbox --ack TOKEN ...`. Check between meaningful
|
|
79
|
+
steps and before a commit or handoff. Details: `backbone help messaging`.
|
|
80
|
+
|
|
81
|
+
For `--ack`, copy each complete `ack_token` from the inbox response. Numeric row
|
|
82
|
+
IDs alone cannot acknowledge work; tokens prevent stale acknowledgements from
|
|
83
|
+
consuming a different message after queue cleanup.
|
|
84
|
+
|
|
70
85
|
## Rename an agent
|
|
71
86
|
|
|
72
87
|
Wait until the agent finishes its work, then:
|
|
73
88
|
|
|
74
89
|
```bash
|
|
75
|
-
backbone agent stop
|
|
76
|
-
backbone agent rename
|
|
77
|
-
backbone agent start
|
|
90
|
+
backbone agent stop app
|
|
91
|
+
backbone agent rename app backend
|
|
92
|
+
backbone agent start backend --attach
|
|
78
93
|
```
|
|
79
94
|
|
|
80
95
|
The directory, settings, watches and saved conversation ID stay with the agent.
|
|
81
96
|
Use the new name in messages, scripts and external `for:` labels. Renaming requires
|
|
82
97
|
a stopped agent; active swarm members cannot be renamed.
|
|
83
98
|
|
|
99
|
+
## Read token usage
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
backbone usage # separate CLI conversations for each agent
|
|
103
|
+
backbone usage --agent backend --current
|
|
104
|
+
backbone usage session ID # input, cache and output details
|
|
105
|
+
backbone usage --since 1h --by model
|
|
106
|
+
backbone usage --cost # optional standard API estimate
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Use `--json` for data, or `backbone help token-usage` for sources and coverage.
|
|
110
|
+
Unsupported sources are unavailable, not zero usage. Cost is separate from a
|
|
111
|
+
subscription bill. [Full token usage reference](docs/token-usage.md).
|
|
112
|
+
|
|
84
113
|
## Find more
|
|
85
114
|
|
|
86
115
|
- `backbone agent start --help` — command options.
|
|
87
116
|
- `backbone templates list` — injected instructions you can inspect and edit.
|
|
88
117
|
- `backbone docs index` — the [documentation reading guide](docs/INDEX.md).
|
|
89
118
|
- `backbone docs usage` — this page from an installed package.
|
|
90
|
-
|
|
91
|
-
Ordinary agent reports appear in General and the agent's topic, with separate
|
|
92
|
-
delivery receipts. Swarm participants, including coordinators, cannot publish human-facing reports.
|
|
93
|
-
Only their repository agent reports consolidated progress to the owner. Optional full-report voice messages can be enabled with
|
|
94
|
-
`backbone config set telegram.report_audio true` after local speech setup.
|
|
95
|
-
See `backbone docs report-audio` for the model, service, voice and FFmpeg setup.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
During long work, agents can read corrections themselves without waiting for
|
|
99
|
-
terminal delivery: `backbone inbox` (or `--agent NAME`). After applying or
|
|
100
|
-
superseding messages, use `backbone inbox --ack TOKEN ...`. Check between meaningful
|
|
101
|
-
steps and before a commit or handoff. Details: `backbone help messaging`.
|
|
102
|
-
|
|
103
|
-
For `--ack`, copy each complete `ack_token` from the inbox response. Numeric row
|
|
104
|
-
IDs alone cannot acknowledge work; tokens prevent stale acknowledgements from
|
|
105
|
-
consuming a different message after queue cleanup.
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# Documentation index
|
|
2
2
|
|
|
3
|
-
Start with [
|
|
3
|
+
New here? Start with [Getting started](getting-started.md) to install and send
|
|
4
|
+
a first task. [Quick usage](../USAGE.md) covers everyday commands. Each page is also
|
|
4
5
|
available as `backbone docs PAGE` after installation (for example,
|
|
5
|
-
`backbone docs getting-started`).
|
|
6
|
+
`backbone docs getting-started`). Installed help describes your installed version; GitHub pages describe the
|
|
7
|
+
branch or tag you are viewing. Relative links keep you on that same revision.
|
|
6
8
|
|
|
7
9
|
## 1. Get started
|
|
8
10
|
|
|
@@ -12,9 +14,11 @@ available as `backbone docs PAGE` after installation (for example,
|
|
|
12
14
|
|
|
13
15
|
## 2. Run your team
|
|
14
16
|
|
|
17
|
+
- [Token usage](token-usage.md) — per-agent CLI sessions, model tokens and optional API estimates.
|
|
15
18
|
- [Report audio](report-audio.md) — optional local read-aloud in Telegram.
|
|
16
19
|
- [Progress reports](reports.md) — goals, progress, blockers and next steps.
|
|
17
20
|
- [Instruction templates](templates.md) — edit base, role and tag instructions.
|
|
21
|
+
- [Skills](skills.md) — one shared store of skills, given to agents by tag.
|
|
18
22
|
- [Deep reviews](deep-reviews.md) — run reviews in the background and retrieve findings.
|
|
19
23
|
- [Swarms](swarms.md) — coordinate several agents on one task.
|
|
20
24
|
- [Configuration](configuration.md) — settings, secrets and data locations.
|
|
@@ -25,6 +29,7 @@ available as `backbone docs PAGE` after installation (for example,
|
|
|
25
29
|
- [GitHub](github.md) — issue routing and review notifications.
|
|
26
30
|
- [GitHub App setup](github-app-setup.md) — configure webhook intake.
|
|
27
31
|
- [Telegram](telegram.md) — talk to agents and read updates from your phone.
|
|
32
|
+
- [Sources and subscriptions](sources.md) — agents subscribe to inbound events (Gmail) with filters and priority.
|
|
28
33
|
- [API reference](api.md) — build scripts and dashboards.
|
|
29
34
|
- [Integrations](integrations.md) — add another communication channel.
|
|
30
35
|
|
|
@@ -32,6 +37,9 @@ available as `backbone docs PAGE` after installation (for example,
|
|
|
32
37
|
|
|
33
38
|
- [How it works](how-it-works.md) — follow requests through the system.
|
|
34
39
|
- [Security](security.md) — trust boundaries and defaults.
|
|
40
|
+
- [Signed senders and owner-confirmed messages](owner-confirmed-messages.md) —
|
|
41
|
+
how an app signs its requests and enrolls its key.
|
|
42
|
+
- [Runtime capabilities](runtime-capabilities.md) — which capabilities work on which agent CLI.
|
|
35
43
|
- [Status and roadmap](status-and-roadmap.md) — verified capabilities and remaining work.
|
|
36
44
|
- [Contributing](../CONTRIBUTING.md) — development and checks.
|
|
37
45
|
|