Skip to main content

boring-swarm

Self-contained multi-agent swarm orchestration. One binary (bsw), one declarative flow.toml, and default worker prompts.

Swarm Concept

bsw runs a bead-native software factory in tmux.

  • Work unit: a bead (br issue) with labels like needs-impl, needs-proof, needs-review.
  • Orchestrator: bsw daemon/robot, which assigns beads, enforces transitions, and manages worker lifecycle.
  • Workers: dedicated panes per role (implement, proof, review, optional committer, plan-review).
  • Source of truth: bead state and comments (STATE ...), plus your local .bsw/flow.toml.

Each worker is single-purpose. A worker does not switch roles.

Actors

  • implement: writes code/docs for assigned bead only.
  • proof: executes gates and evidence checks; does not implement.
  • review: validates correctness/scope against bead acceptance criteria.
  • committer (optional): async commit/push worker triggered by configured workflow events.
  • plan-review (optional): runs after bead lane is exhausted to close or regenerate follow-up work.

Quality Gates

Default quality model is strict lane progression:

  • Gate 1: implementation complete (STATE impl:done) moves bead to proof.
  • Gate 2: proof pass/fail (STATE proof:passed|failed) moves bead to review or back to implement.
  • Gate 3: review pass/fail (STATE review:passed|failed) closes bead or sends it back to implement.

The gate semantics are encoded in flow.toml transitions/actions, not hardcoded in prompts.

Standard Flow

Default lane:

needs-impl -> needs-proof -> needs-review -> closed

On rejection:

proof failed -> back to needs-impl
review failed -> back to needs-impl

When no active bead work remains, optional plan-review can run and optionally stop daemon per flow policy.

Install

uv tool install boring-swarm

Or with pip/pipx:

pipx install boring-swarm

Quick Start

bsw init
bsw doctor
bsw spawn
bsw robot
  • bsw doctor validates deps + local flow/prompt files.
  • bsw robot runs hardened hybrid scheduling for autonomous operation.

Get Started (With Screenshots)

1) Initialize swarm files in your project

cd /path/to/your-project
bsw init
bsw doctor

This creates:

  • .bsw/config.json
  • .bsw/flow.toml
  • .bsw/prompts/*.md

bsw init and doctor

2) Spawn tmux worker panes

bsw spawn
bsw sessions

This starts role-specific panes (implement, proof, review, committer, plan-review) and applies profile colors.

bsw spawn and sessions

3) Start autonomous orchestration (robot mode)

bsw robot

robot runs hybrid scheduling with event + fallback ticks. It auto-assigns beads, nudges waiting workers, and can recycle unhealthy panes.

4) Open the TUI dashboard

bsw tui

Use the TUI for:

  • system status and queue health
  • live pane/session states
  • bead lifecycle/timeline view
  • tick log inspection

bsw tui dashboard

5) Customize workflow behavior

Edit .bsw/flow.toml to change:

  • states and transitions
  • worker counts per role
  • provider/model/effort
  • lifecycle policy (max_idle, max_lifetime, max_busy_without_progress)
  • role colors (color_bg, color_fg, tmux_bg, tmux_fg)

DSL reference: docs/FLOW_DSL.md

Structure

boring-swarm/
├── cli/bsw/              # Go source — compiled into platform wheels via go-to-wheel
├── defaults/
│   ├── prompts/
│   │   ├── impl_worker.md
│   │   ├── impl_proofer.md
│   │   ├── impl_reviewer.md
│   │   ├── impl_committer.md
│   │   └── plan_reviewer.md
│   └── flow.toml         # Default state machine definition
└── deps.toml             # External dependency declarations

Dependencies

External — installed separately:

Dep Role
br Work item CRUD (beads)
bv Verification / robot ops
ntm Tmux session + pane management
agent-mail Inter-agent messaging (MCP)

Prompt resolution

bsw init materializes local files:

  1. .bsw/flow.toml
  2. .bsw/prompts/*.md

After init, runtime reads only local .bsw/* files. Users can fully overwrite flow.toml.

Flow DSL

  • Full DSL reference: docs/FLOW_DSL.md
  • Default example: defaults/flow.toml

Build wheels locally

Requires Go 1.24+ and go-to-wheel:

pip install go-to-wheel
go-to-wheel cli/bsw --name boring-swarm --version 0.1.0 --entry-point bsw

Wheels are built automatically on GitHub release via CI.

Metadata

Release files for boring-swarm 0.1.2

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

Built distributions (wheels)

Table of built distributions (wheels) for boring-swarm 0.1.2
File
boring_swarm-0.1.2-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
boring_swarm-0.1.2-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
boring_swarm-0.1.2-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
boring_swarm-0.1.2-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
boring_swarm-0.1.2-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
boring_swarm-0.1.2-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
boring_swarm-0.1.2-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
boring_swarm-0.1.2-py3-none-macosx_10_9_x86_64.whl Python 3 none macOS 10.9+ x86-64 Details

Total release size: 63.0 MB

Release files / boring_swarm-0.1.2-py3-none-win_arm64.whl

Download URL boring_swarm-0.1.2-py3-none-win_arm64.whl
Size 7.7 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
c557460d4daf89d4d303ae9d8e9da178e87fb7e80baeceed05850979ba993d2b
BLAKE2b-256 checksum
How to use checksums
9ca8511c3d43bf5257d52a3d95daf8348bce11b9b932527e207a8d91780e9f11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / boring_swarm-0.1.2-py3-none-win_amd64.whl

Download URL boring_swarm-0.1.2-py3-none-win_amd64.whl
Size 8.3 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
653c063c6f0400014799fdcf9ec2d009bdf315d98ec28aa97fce272374593d90
BLAKE2b-256 checksum
How to use checksums
4156944a79c97c1f0690991425788e4febce140645610610f075c7c770bb3a74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / boring_swarm-0.1.2-py3-none-musllinux_1_2_x86_64.whl

Download URL boring_swarm-0.1.2-py3-none-musllinux_1_2_x86_64.whl
Size 8.0 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
6c1bb7050f2c35f8260798c095042c0a5740c9938e68722f73019444c0dcb1ef
BLAKE2b-256 checksum
How to use checksums
7fef04b6498fd6e98af05c069c2be949005c7ea2f83296781a604184aeece107
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / boring_swarm-0.1.2-py3-none-musllinux_1_2_aarch64.whl

Download URL boring_swarm-0.1.2-py3-none-musllinux_1_2_aarch64.whl
Size 7.5 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
4d88ad5fa75a8e065319ac2c52bf1464c173f658b2c2b7aeda844b1e7bac0cea
BLAKE2b-256 checksum
How to use checksums
bb63f308eea3da93c3182c73e323c9634c37538a68fb7edbc724137049e2240b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / boring_swarm-0.1.2-py3-none-manylinux_2_17_x86_64.whl

Download URL boring_swarm-0.1.2-py3-none-manylinux_2_17_x86_64.whl
Size 8.0 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
e92a01d6f4a5d9717fb65b54c22b713359ba376da351b6038767749852db0824
BLAKE2b-256 checksum
How to use checksums
c1c5e2b97dba8dc0d1cef23b5980a02ef5a033eab657393f315a7d0368225169
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / boring_swarm-0.1.2-py3-none-manylinux_2_17_aarch64.whl

Download URL boring_swarm-0.1.2-py3-none-manylinux_2_17_aarch64.whl
Size 7.5 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
313526f566de666e62ed56e80a7e98a3864cf3ba8b595649df7f85669183917d
BLAKE2b-256 checksum
How to use checksums
2f8925ba72b2abbb7391cc52857ac2ce58546e05d929b4dda0de3c44d3a64191
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / boring_swarm-0.1.2-py3-none-macosx_11_0_arm64.whl

Download URL boring_swarm-0.1.2-py3-none-macosx_11_0_arm64.whl
Size 7.7 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
25dee4036e715673a0fc07f273c9a6c4cc06f4d92b5203ae4bc985449a7e2eb5
BLAKE2b-256 checksum
How to use checksums
595bae59fbff7b5fa57e53b99de6cf829848f0954df15a4756660e31752ab36b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / boring_swarm-0.1.2-py3-none-macosx_10_9_x86_64.whl

Download URL boring_swarm-0.1.2-py3-none-macosx_10_9_x86_64.whl
Size 8.2 MB
Tags Python 3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
aacf8c51db3a67e116b43fe181f7e00b810232c3d42bd098873bc84a22b12e73
BLAKE2b-256 checksum
How to use checksums
7045b219ba2a4b34452d847ac8147f0e7fe9c167cc0163ca482f15629a24e70d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Security for boring-swarm 0.1.2

Provenance

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

No provenance found

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

A note on package security

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

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

Release history Release notifications | RSS feed

This release

0.1.2 This release

8 release files No provenance

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