{"id":48054867,"url":"https://github.com/modem-dev/baudbot","last_synced_at":"2026-04-04T14:25:00.931Z","repository":{"id":339116622,"uuid":"1158687689","full_name":"modem-dev/baudbot","owner":"modem-dev","description":"Multiplayer, always-on AI dev assistant - like OpenClaw but for your whole team on Slack 🤖 ","archived":false,"fork":false,"pushed_at":"2026-03-15T03:44:50.000Z","size":1437,"stargazers_count":123,"open_issues_count":19,"forks_count":12,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-15T13:48:52.186Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/modem-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-15T19:08:05.000Z","updated_at":"2026-03-15T11:49:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/modem-dev/baudbot","commit_stats":null,"previous_names":["modem-dev/baudbot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/modem-dev/baudbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modem-dev%2Fbaudbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modem-dev%2Fbaudbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modem-dev%2Fbaudbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modem-dev%2Fbaudbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/modem-dev","download_url":"https://codeload.github.com/modem-dev/baudbot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modem-dev%2Fbaudbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31402398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-04T14:24:57.919Z","updated_at":"2026-04-04T14:25:00.923Z","avatar_url":"https://github.com/modem-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/user-attachments/assets/66ab2c6d-2e21-48d0-b95f-0d9dbdb57384\" width=\"256\" height=\"256\"/\u003e\n\n# Baudbot\n\n[![CI](https://github.com/modem-dev/baudbot/actions/workflows/ci.yml/badge.svg)](https://github.com/modem-dev/baudbot/actions/workflows/ci.yml)\n[![Integration](https://github.com/modem-dev/baudbot/actions/workflows/integration.yml/badge.svg)](https://github.com/modem-dev/baudbot/actions/workflows/integration.yml)\n[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n[![Last commit](https://img.shields.io/github/last-commit/modem-dev/baudbot)](https://github.com/modem-dev/baudbot/commits/main)\n[![Security Policy](https://img.shields.io/badge/security-policy-blue)](SECURITY.md)\n\n**Always-on, multiplayer dev-assistant for eng teams - write code, act on alerts, and more**\n\n💬 _Join us on the Modem Discord: https://discord.gg/MKkTFvQ4_\n\n---\n\nBaudbot runs a persistent AI control agent on Linux, connected to Slack, with worker agents that take tasks from request to PR. It works on real repositories with real tools (git, test runners, Docker wrapper, cloud browser automation), keeps persistent memory, and reports progress back in-thread.\n\nBuilt for teams that want autonomous execution speed **without giving up operational control**.\n\n_**⚠️ WARNING: Baudbot is in alpha/early testing. If you use this, prepare to fix things. It might burn tokens. Be careful!**_\n\n\u003cimg width=\"560\" height=\"688\" alt=\"image\" src=\"https://github.com/user-attachments/assets/1ca9c775-9190-4c64-962a-e124be4096dc\" /\u003e\n\n\n\n## What Baudbot does\n\n- **Shared Slack interface for the whole team.** Anyone in allowed channels can hand work to the same agent system.\n- **Always-on response and fast handoffs.** The control agent stays live, triages work instantly, and spins up task-scoped coding agents.\n- **End-to-end coding loop.** Branch, code, run tests, open PR, watch CI, push fixes, report status.\n- **Linux-native execution.** Agents can run the same project commands your engineers run (including guarded container workflows).\n- **Persistent team memory.** The system learns repo quirks, recurring fixes, and collaboration preferences across restarts.\n- **Self-improving operations.** Agents can update non-security skills/extensions and propose upstream improvements via PRs.\n\n## Team agent, not a personal copilot\n\nBaudbot is designed as shared engineering infrastructure, not a single-user desktop assistant:\n\n- multiplayer by default (Slack threads, shared todos, multiple sessions)\n- persistent service, not one-shot chat\n- autonomous task execution with humans in review loops\n- admin-managed runtime with deployment + rollback controls\n\n## Requirements\n\n| | Minimum | Recommended |\n|--|---------|-------------|\n| **OS** | Ubuntu 24.04 or Arch Linux | Any systemd-based Linux |\n| **RAM** | 4 GB (3 agents) | 8 GB (6 agents + builds/tests) |\n| **CPU** | 2 vCPU | 4 vCPU |\n| **Disk** | 20 GB | 40 GB+ (repos, dependencies, Docker images) |\n\nSystem package dependencies (installed by `baudbot install`): `git`, `curl`, `tmux`, `iptables`, `docker`, `gh`, `jq`, `sudo`.\n\n## Quick Start\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/modem-dev/baudbot/main/bootstrap.sh | bash\nbaudbot install\n```\n\n`baudbot install` has a guided config flow: pick an LLM provider, choose Slack integration mode (managed broker vs custom app), then opt into optional integrations (Kernel/Sentry). \n\nAfter install:\n\n```bash\n# deploy latest source/config to runtime\nsudo baudbot deploy\n\n# start the service\nsudo baudbot start\n\n# check health (includes deployed version + broker connection/health status)\nsudo baudbot status\nsudo baudbot doctor\n```\n\nUpgrade later:\n\n```bash\nsudo baudbot update\n```\n\nConnect/talk to the control agent:\n\n```\nsudo baudbot attach\n```\n\nInstall with a specific pi version (optional):\n\n```bash\nBAUDBOT_PI_VERSION=0.52.12 baudbot install\n```\n\nSlack broker registration:\n\n```bash\nsudo baudbot broker register\n```\n\nNeed to rotate/update a key later?\n\n```bash\nsudo baudbot env set ANTHROPIC_API_KEY\n# or: sudo baudbot env set OPENAI_API_KEY sk-... --restart\n```\n\nSee [CONFIGURATION.md](CONFIGURATION.md) for required environment variables and secret setup.\n\n## The Slack broker (optional)\n\nThe primary way to talk to Baudbot remotely is through Slack.\n\nYou have two choices:\n\n1. **Create/manage your own Slack app** (hard)\n2. **Use our hosted Slack broker + control plane** at https://baudbot.ai (easy) [ALPHA]\n\nWhat the Slack broker does:\n- One-click install to connect your Slack workspace to your Baudbot instance\n- Broker forwards messages to your Baudbot instance (encrypted)\n- Broker strips PII and sensitive values\n- Broker tool-restricts access to individual Slack users, channels, etc (COMING SOON)\n\nThe broker does not have access to your Baudbot instance. Baudbot is pull-only; it doesn't expose additional ports or host a control plane.\n\n## Core agents\n\n| Role | Purpose |\n|------|---------|\n| **control-agent** | Owns intake, triage, delegation, Slack comms, and lifecycle supervision |\n| **dev-agent** | Ephemeral coding worker that executes branch → code → PR → CI loops |\n| **sentry-agent** | On-demand incident investigator for Sentry alerts and triage support |\n\n## Architecture at a glance\n\n```text\nSlack\n   ↓\ncontrol-agent (always-on)\n   ├─ todo + routing\n   ├─ dev-agent(s) in isolated worktrees\n   └─ sentry-agent for incident triage\n        ↓\ngit commits, PRs, CI feedback, thread updates\n```\n\nBaudbot uses source/runtime separation: admin-managed source and immutable releases are deployed into an unprivileged agent runtime.\n\n## Security as an enabling layer\n\nBaudbot is built for utility **and** containment:\n\n- isolated `baudbot_agent` Unix user (no general sudo)\n- per-UID firewall controls + process isolation\n- source/runtime separation with deploy manifests\n- startup deploy-manifest integrity verification (`warn`/`strict` modes)\n- read-only protection for security-critical files\n- session log hygiene (startup redaction + retention pruning)\n- layered tool and shell guardrails (policy/guidance layer, not sole containment)\n\nSee [SECURITY.md](SECURITY.md) for full threat model, trust boundaries, and known risks. In particular: many controls here are defense-in-depth (helpful for drift prevention/detection and keeping healthy agents on-task), while hard containment comes from OS/runtime boundaries.\n\n## Documentation\n\n- [docs/team-workflow.md](docs/team-workflow.md) — request lifecycle and orchestration model\n- [docs/agents.md](docs/agents.md) — agent roles, responsibilities, and session model\n- [docs/memory.md](docs/memory.md) — persistent memory design and operating rules\n- [docs/linux-runtime.md](docs/linux-runtime.md) — Linux execution model, tools, and constraints\n- [docs/operations.md](docs/operations.md) — day-2 operations (start/stop/update/rollback/audit)\n- [docs/architecture.md](docs/architecture.md) — source/runtime/release architecture\n- [CONFIGURATION.md](CONFIGURATION.md) — full env var reference\n- [SECURITY.md](SECURITY.md) — deep security model and vulnerability reporting\n- [CONTRIBUTING.md](CONTRIBUTING.md) — contribution workflow\n\n## Tests\n\n```bash\n# All tests (unified Vitest runner)\nnpm test\n\n# JS/TS suites only\nnpm run test:js\n\n# Shell/security script suites only\nnpm run test:shell\n\n# JS/TS coverage\nnpm run test:coverage\n\n# Lint (Biome + ShellCheck) + typecheck\nnpm run lint \u0026\u0026 npm run typecheck\n\n# ShellCheck only\nnpm run lint:shell\n```\n\n## License\n\nMIT\n\n## About\n\nBrought to you by the team at Modem, your dev team's auto-triage product manager.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodem-dev%2Fbaudbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmodem-dev%2Fbaudbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodem-dev%2Fbaudbot/lists"}