ScuttleBot
| 9a6b839… | lmata | 1 | # Contributing |
| 9a6b839… | lmata | 2 | |
| 9a6b839… | lmata | 3 | scuttlebot is in **stable beta** — the core is working and the fleet primitives are solid. Active development is ongoing and we welcome contributions of all kinds. |
| 9a6b839… | lmata | 4 | |
| 9a6b839… | lmata | 5 | --- |
| 9a6b839… | lmata | 6 | |
| 9a6b839… | lmata | 7 | ## What we're looking for |
| 9a6b839… | lmata | 8 | |
| 9a6b839… | lmata | 9 | - **New relay brokers** — wrapping a new CLI agent (e.g. Aider, Continue, an OpenAI Assistants runner) in the canonical broker pattern |
| 9a6b839… | lmata | 10 | - **Bot implementations** — new system bots that extend the backplane |
| 9a6b839… | lmata | 11 | - **API clients** — SDKs for languages other than Go |
| 9a6b839… | lmata | 12 | - **Documentation** — corrections, examples, guides, translations |
| 9a6b839… | lmata | 13 | - **Bug reports** — open an issue on GitHub with reproduction steps |
| 9a6b839… | lmata | 14 | |
| 9a6b839… | lmata | 15 | --- |
| 9a6b839… | lmata | 16 | |
| 9a6b839… | lmata | 17 | ## Getting started |
| 9a6b839… | lmata | 18 | |
| 9a6b839… | lmata | 19 | ```bash |
| 9a6b839… | lmata | 20 | git clone https://github.com/ConflictHQ/scuttlebot |
| 9a6b839… | lmata | 21 | cd scuttlebot |
| 9a6b839… | lmata | 22 | go build ./... |
| 9a6b839… | lmata | 23 | go test ./... |
| 9a6b839… | lmata | 24 | ``` |
| 9a6b839… | lmata | 25 | |
| 9a6b839… | lmata | 26 | The `run.sh` script wraps common dev workflows: |
| 9a6b839… | lmata | 27 | |
| 9a6b839… | lmata | 28 | ```bash |
| 9a6b839… | lmata | 29 | ./run.sh test # go test ./... |
| 9a6b839… | lmata | 30 | ./run.sh start # build + start in background |
| 9a6b839… | lmata | 31 | ./run.sh e2e # Playwright end-to-end tests (requires running server) |
| 9a6b839… | lmata | 32 | ``` |
| 9a6b839… | lmata | 33 | |
| 9a6b839… | lmata | 34 | See [Adding Agents](guide/adding-agents.md) for the canonical broker pattern to follow when adding a new runtime. |
| 9a6b839… | lmata | 35 | |
| 9a6b839… | lmata | 36 | --- |
| 9a6b839… | lmata | 37 | |
| 9a6b839… | lmata | 38 | ## Pull requests |
| 9a6b839… | lmata | 39 | |
| 9a6b839… | lmata | 40 | - Keep PRs focused. One feature or fix per PR. |
| 9a6b839… | lmata | 41 | - Run `gofmt` before committing. The linter enforces it. |
| 9a6b839… | lmata | 42 | - Run `golangci-lint run` and address warnings. |
| 9a6b839… | lmata | 43 | - Add tests for new API endpoints and non-trivial logic. |
| 9a6b839… | lmata | 44 | - Update `docs/` if your change affects user-facing behavior. |
| 9a6b839… | lmata | 45 | |
| 9a6b839… | lmata | 46 | --- |
| 9a6b839… | lmata | 47 | |
| 9a6b839… | lmata | 48 | ## Issues |
| 9a6b839… | lmata | 49 | |
| 9a6b839… | lmata | 50 | File bugs and feature requests at [github.com/ConflictHQ/scuttlebot/issues](https://github.com/ConflictHQ/scuttlebot/issues). |
| 9a6b839… | lmata | 51 | |
| 9a6b839… | lmata | 52 | For security issues, email [email protected] instead of opening a public issue. |
| 9a6b839… | lmata | 53 | |
| 974ed6a… | lmata | 54 | --- |
| 9a6b839… | lmata | 55 | |
| 9a6b839… | lmata | 56 | ## Acknowledgements |
| 9a6b839… | lmata | 57 | |
| 9a6b839… | lmata | 58 | scuttlebot is built on the shoulders of some excellent open source projects and services. |
| 9a6b839… | lmata | 59 | |
| 9a6b839… | lmata | 60 | **[Ergo IRC Server](https://ergo.chat/)** — scuttlebot embeds Ergo as its IRC backbone. Ergo is a modern, RFC-compliant IRCv3 server in Go, with SASL, TLS, bouncer mode, and automatic Let's Encrypt support built in. None of this works without the Ergo maintainers' extraordinary work. |
| 9a6b839… | lmata | 61 | |
| 9a6b839… | lmata | 62 | **[Go](https://go.dev/)** — the language, runtime, and standard library that make the whole thing possible. The Go team's focus on simplicity, static compilation, and excellent tooling is what lets scuttlebot ship as a single self-contained binary. |
| 9a6b839… | lmata | 63 | |
| 9a6b839… | lmata | 64 | **Claude (Anthropic), Codex (OpenAI), Gemini (Google)** — the AI runtimes that scuttlebot coordinates. Each team built capable, extensible CLIs that make the relay broker pattern practical. |
| 9a6b839… | lmata | 65 | |
| 9a6b839… | lmata | 66 | --- |
| 974ed6a… | lmata | 67 | |
| 9a6b839… | lmata | 68 | ## License |
| 974ed6a… | lmata | 69 | |
| 9a6b839… | lmata | 70 | MIT — [CONFLICT LLC](https://weareconflict.com) |