The stream that unites everything.
Version: v3.12.4-earth
BACH is documented and shipped with translation surfaces for six languages:
English | Deutsch | Español | Русский | 日本語 | 中文
The current release snapshot enables de, en, es, ru, ja, and zh in system/exports/translations/languages_config.release.json and exports matching locale files in system/exports/translations/locales/. For crawlers and direct language entry points, each language also has its own README.md under docs/i18n/<lang>/.
BACH is a text-based operating system that empowers Large Language Models (LLMs) to work autonomously, learn, and self-organize. Part of the ellmos family (Extra Large Language Model Operating Systems), BACH provides comprehensive infrastructure for task management, knowledge management, automation, and LLM orchestration.
BACH is best described as a local-first LLM operating system: a persistent Python/SQLite workbench for autonomous agents, structured memory, scheduler-driven automation, prompt chains, MCP server integration, and multilingual operator surfaces. It is not a chatbot wrapper, hosted agent SaaS, Bash unit-test framework, music project, or LangChain-style pipeline library.
Useful search phrases include local-first LLM operating system, text-based OS for LLM agents, SQLite memory for AI agents, BACH ellmos agent OS, personal agentic OS Python SQLite, and multi-agent orchestration with MCP servers.
- 113+ Handlers - Full CLI and API coverage of all system functions
- 550+ Tools - Extensive tool library for file processing, analysis, and automation
- 1870+ Skills - Reusable workflows and templates
- 58 Workflow Templates - Pre-built process workflows
- 4400+ Tests - Comprehensive automated coverage across handlers, services, GUI, and MCP servers
- Knowledge Store - Lessons, Facts, and Multi-Level Memory System (6 memory types)
- Agent CLI -
bach agent start/stop/listfor direct agent control - Agent Doctor -
bach agent doctor [name] [--json]validates Claude CLI availability, runtime dirs, skill files, and stale PID state before a launch - Agent Operator Controls -
bach agent pause/resume/checkpoint/steer/clear-steer [name] [--json]lets operators stage cooperative pause requests and guidance before or during a run, record explicit safe-checkpoint acknowledgements, mirror that state intoOPERATOR_NOTES.md, preserve queued hints across the nextbach agent start, inject them into the generated sessionCLAUDE.md, and expose nestedoperator_controlsnapshots plusqueued_for_next_startfor automation-safe polling - Agent Runtime Policy Defaults -
bach agent startnow accepts--permission-mode,--allowed-tools, and--max-turns, and can preload the same defaults from agent SKILL frontmatter for per-agent guardrails - Scheduler Doctor -
bach scheduler doctor [--json]plusbach scheduler session doctor [--json]validate automation scripts, PID state, DB/config/profile surfaces, and suggest recovery steps before background services are started - Session Steering Controls -
bach scheduler session pause/resume/steer/clear-steer [--json]lets operators gate or retarget the next profile-specific auto-session without editing daemon config by hand - Scheduler Run Controls -
bach scheduler pause/resume/steer/clear-steer [--json]now exposes the same operator control plane for due scheduler jobs, including global pause and queued run guidance without hand-editing control files; queued scheduler hints now also hydrate llmauto chains into their next safe-checkpoint prompt path - Machine-readable Control & Status Surfaces -
bach agent list/start/stop/pause/resume/checkpoint/steer/clear-steer/status --json,bach scheduler status/jobs/session status --json, andbach scheduler session pause/resume/steer/clear-steer --json, including queue state,queued_for_next_start, timestamps, checkpoint acknowledgements, and operator-note metadata for automation-safe polling - Upgrade Drift & Repair -
bach upgrade list <path> --json,bach upgrade status/check --json, andbach upgrade repair [--dry-run] [--version <tag>]expose automation-safe version, status, drift, repair hints, and recovery for broken distribution metadata - Path Surface -
bach pathexposes canonical system/workspace/DB paths, validation, resolve helpers, and DB overrides in text or JSON - Prompt System - Central prompt management with board system and versioning
- Install Security Gate - Static pre-load scans block obvious code-injection patterns during
skills install/plugins load; MCP setup validates allowlisted packages/configs fail-closed, plugin setup contracts now require explicit shell/desktop/MCP checks, and blocked local imports are quarantined - Manifest-first Plugins -
bach plugins inspectpreviews activation, provider/model, setup, and capability metadata without importing plugin runtime code - Structured
bach_apiCore -taskandmemorynow expose discoverable methods viadir(...), return Python objects for common reads/writes, and still keepraw(...)for legacy handler-style calls - SharedMemory Bus - Multi-agent coordination with conflict detection and decay
- USMC Bridge - United Shared Memory Communication for cross-agent communication
- llmauto Chains - Claude prompts as chain steps with
bach://URL resolution - Chat Service - Multi-backend Telegram bot (5 backends), Control API, Web Dashboard, cross-platform System Tray
# Clone the repository
git clone https://github.com/ellmos-ai/bach.git
cd bach
# Install dependencies and make `bach` CLI available
pip install -e .
# Pre-flight check
bach setup preflight
# Full install (MCP servers, hooks, secrets, user profile)
bach setup full-installBACH provides two MCP servers for integration with Claude Code, Cursor, and other IDEs. Cross-platform tested on Windows, macOS (ARM64), and Linux:
# Install and configure MCP servers (recommended)
python system/bach.py setup mcp
# Or manually via npm:
npm install -g ellmos-codecommander-mcp ellmos-filecommander-mcp- ellmos-codecommander-mcp v1.3.8 - Code analysis and refactoring tools (17 tools)
- ellmos-filecommander-mcp v1.7.8 - File management and batch operations (44 tools)
# Start BACH
python bach.py --startup
# Create a task
python bach.py task add "Analyze project structure"
# Manage agents
python bach.py agent list
python bach.py agent start bueroassistent
# Manage prompts
python bach.py prompt list
python bach.py prompt add "My Prompt" --content "..."
# Check scheduler status
python bach.py scheduler status
# Shut down BACH
python bach.py --shutdownFull GTD system with prioritization, deadlines, tags, and context tracking.
Structured memory system with Facts, Lessons, and automatic consolidation (6 memory types, 210+ DB tables).
11 Boss agents orchestrate 22 experts for complex tasks. The Agent CLI allows direct starting, stopping, and listing of agents via bach agent, and now also supports prelaunch steering queues, cooperative pause requests, and explicit safe-checkpoint acknowledgements via bach agent checkpoint. Queued hints are injected into the generated session CLAUDE.md at launch, OPERATOR_NOTES.md mirrors steering, pause, and checkpoint state, and live JSON status surfaces expose the nested operator_control snapshot for dashboards.

Illustration shows BACH's five original boss agents: ati, officeassistant, finance-assistant, health-assistant, personal-assistant. The current system ships 11 boss agents and 22 experts.
Central management of prompt templates with board collections and full versioning (bach prompt).
Multi-backend Telegram bot with pluggable LLM backends (Ollama, Claude CLI, Codex CLI, Claude API, OpenAI API), HTTP Control API with web dashboard, and cross-platform system tray. Connector framework for additional services (Email, WhatsApp, etc.) and USMC Bridge for cross-agent communication.
SchedulerService for time-based jobs (chains, tasks, scripts) and event-driven workflows via the hook framework.
Multi-agent coordination with context generation, conflict detection, decay, and delta queries.
Chain steps as LLM prompts with bach:// URL resolution for dynamic context embedding.
All ellmos projects follow a water metaphor -- from a spring to a full stream:
| Tier | Project | Description | Repository |
|---|---|---|---|
| 1 | USMC | United Shared Memory Client -- the spring (shared memory only) | github.com/ellmos-ai/usmc |
| 2 | Rinnsal | The trickle -- USMC + llmauto (LLM orchestration), extremely compact | github.com/ellmos-ai/rinnsal |
| 3 | BACH | The stream that unites everything -- 113+ handlers, 1870+ skills, agents, GUI, bridge | github.com/ellmos-ai/bach |
- Languages: English | Deutsch | Español | Русский | 日本語 | 中文
- Quickstart Guide - Get your first workflow running in 5 minutes
- User Manual - Complete handbook
- Skills Catalog - Template and public entry point for available skills
- Agents Catalog - Template and public entry point for agents and experts
- Workflows - 59 workflow templates
- SKILL template - LLM operating instructions template for Claude, Gemini, Ollama, and Codex-style agents
How does BACH compare to OpenClaw, a popular open-source AI assistant?
| BACH | OpenClaw | |
|---|---|---|
| Focus | LLM Operating System -- deep autonomy, structured memory, multi-agent orchestration | Personal AI Assistant -- broad messaging gateway, voice, companion apps |
| Tools/Skills | 550+ tools, 1870+ skills, 59 workflows (local, curated) | Community-driven skill/plugin ecosystem; recent releases emphasize manifest-first plugin metadata and install safety |
| Memory | 6 memory types with decay, conflict detection, consolidation (210+ DB tables) | Session/runtime workspace with bootstrap files such as AGENTS.md, TOOLS.md, USER.md, and related context files |
| Agents | Boss-Expert orchestration (11 boss agents + 22 experts), SharedMemory Bus | Agent runtime with multi-session/channel operation |
| Messaging | Telegram, Email, WhatsApp (Bridge System) | 20+ platforms (WhatsApp, Telegram, Slack, Discord, Signal, Teams, Matrix...) |
| Interfaces | CLI, Python API, PySide6 GUI, Web GUI, Telegram Bot, Web Chat, System Tray | CLI, WebChat, macOS/iOS/Android apps, Voice |
| MCP | Own MCP servers (FileCommander, CodeCommander) | Native MCP Registry |
| Stack | Python 3.10+, SQLite | TypeScript, Node.js 22+ |
| License | MIT | MIT |
In short: BACH goes deep (structured memory, autonomous agents, scheduler, 210+ DB tables). OpenClaw goes wide (20+ messengers, native apps, voice, large community). Different philosophies, complementary strengths.
As of 2026-06-06, GitHub Releases shows 2026.6.1, published on June 3, 2026, as OpenClaw's current stable line, while the newest visible prerelease on the official release feed is 2026.6.5-beta.1, published on June 6, 2026. The latest stable and June beta signals most relevant to BACH are cleaner recovery after interrupted tool calls, stale session bindings, prompt-cache expiry, or Gateway restarts; stricter timer/retry bounds and doctor/upgrade wait paths; broader SQLite-backed auth, plugin-install, and inbound-queue state; wider Workboard and SecretRef surfaces; and more robust materialization of richer MCP tool-result blocks before they can poison session history. On the BACH side, the 2026-06-06 live care pass taught bach lang report to ignore additional JS class/id noise in generated markup, restored real umlauts across several visible GUI surfaces, indexed 29 additional GUI DE keys into the existing gui namespace, and refreshed the release artifacts to 17,488 exported translations. The same pass revalidated bach agent doctor test-agent --json, the full bach agent clear-steer/steer/start/status/pause/checkpoint/resume/stop/clear-steer --json control cycle, bach usecase run 12 --dry-run, bach usecase run 41 --dry-run, bach usecase run-all --dry-run, bach upgrade status/check --json, and bach lang report --surface gui --limit 20 --json; the GUI report now sits at 94 missing unique entries and 111 open occurrences, while usecase 41 still falls back to manual mode because no workflow file is linked. Next high-leverage steps remain deeper active-run steering inside long-running scheduler internals, low-cardinality telemetry, installer end-to-end coverage, GUI regression coverage, and prioritized i18n cleanup across GUI, help, skills, and tools.
MIT License - see LICENSE for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
BACH ist ein textbasiertes Betriebssystem, das Large Language Models (LLMs) befähigt, eigenständig zu arbeiten, zu lernen und sich zu organisieren.
Die vollständige deutsche Dokumentation findest du hier: README.de.md
ellmos BACH v3.12.4-earth - Text-Based Operating System for LLMs
Dieses Projekt ist eine unentgeltliche Open-Source-Schenkung im Sinne der §§ 516 ff. BGB. Die Haftung des Urhebers ist gemäß § 521 BGB auf Vorsatz und grobe Fahrlässigkeit beschränkt. Ergänzend gelten die Haftungsausschlüsse aus GPL-3.0 / MIT / Apache-2.0 §§ 15–16 (je nach gewählter Lizenz).
Nutzung auf eigenes Risiko. Keine Wartungszusage, keine Verfügbarkeitsgarantie, keine Gewähr für Fehlerfreiheit oder Eignung für einen bestimmten Zweck.
This project is an unpaid open-source donation. Liability is limited to intent and gross negligence (§ 521 German Civil Code). Use at your own risk. No warranty, no maintenance guarantee, no fitness-for-purpose assumed.


