Warning
This is not currently active or viable software. Combobulate is in early development and public for transparency, not for production use. Expect breaking changes, incomplete features, and stub implementations. Contributions and feedback welcome — just know what you're looking at.
Combobulate is a governance and configuration management tool for development environments. It provides bootstrapping and synchronization against official upstreams as well as other public and private repositories under several different trust levels. Adopted configurations can be divested as well as adopted, and full constraints, requirements, and conflicts are supported between concepts.
AI-assisted development is changing how teams write code, but it introduces governance problems that traditional tooling doesn't address:
Configuration drift at scale. When dozens of repositories each maintain their own steering files, hook definitions, agent configurations, and MCP server setups, keeping them consistent becomes a full-time job. One team updates a security rule; the rest discover it months later — or never.
No supply chain model for AI guidance. Package managers solve dependency governance for code. Nothing equivalent exists for the files that shape how AI agents behave in your repositories. Teams copy-paste steering documents between repos with no mechanism to detect when the source has changed, no way to roll back, and no audit trail.
Trust without boundaries. Sharing agent configuration from a central team is useful — but "take everything or nothing" is too coarse. A platform team should be able to enforce security hooks while only suggesting formatting preferences. Without graduated trust, teams either accept everything (risky) or nothing (wasteful).
Invisible compliance failures. When an AI agent operates without the steering it should have, the failure is silent. There's no build error, no test failure — just subtly wrong behavior that accumulates over time. Governance needs to shift left: catch missing or divergent configuration before it reaches production, not after.
No clean exit. Adopting shared configuration should not be a one-way door. Teams need to divest cleanly — understanding what depends on what, what conflicts are resolved by removal, and what state the project returns to — without manually reverse-engineering the changes.
Combobulate treats these as a configuration management problem with a familiar pipeline: resolve what's available, select what you want, plan what would change, and apply (or just report). It brings dependency-resolution semantics to development environment governance — with trust levels, cooldowns, conflict detection, and atomic failure.
Combobulate is one piece of a broader system. The tool itself is portable — designed for internal use, public sharing, and developing independent upstream repositories — but the reference ecosystem includes:
combobulatory — A public upstream repository hosting common skills, steering files, hooks, and other distributable boblets. This is the shared library that consuming projects can draw from: adopt what fits, exclude what doesn't, override targeting as needed. Think of it as the community package registry for development environment configuration — a curated collection of combobs ready to sync into your project.
combobulist — The maintenance and security layer for combobulatory. Responsible for ingesting new bobs, running security scans, validating consistency, and managing the lifecycle of individual comboblets within the upstream. It ensures that what combobulatory serves has been reviewed, is internally consistent, and meets the security bar before any consumer sees it.
These repositories demonstrate the pattern, but they aren't special. Any organization can stand up its own upstream with its own trust policies and its own collection of boblets — combobulate doesn't privilege one source over another. The architecture is designed so that a platform team can fork, extend, or build from scratch without depending on anything hosted here.
Install from source:
cargo install --path crates/combobulate-cli# Check configuration drift against upstreams
combobulate check
# Sync configuration from upstreams
combobulate sync
# Validate configuration consistency
combobulate validate
# Bootstrap a new project from a manifest
combobulate bootstrapRequires Rust (stable) and uv for Python tooling.
# Clone and build
git clone https://github.com/shift-leftists/combobulate.git
cd combobulate
cargo build --workspace
# Run checks
cargo clippy --workspace -- -D warnings
cargo fmt --check
cargo test --workspace
# Python environment (optional, for bindings/pre-commit hooks)
uv sync
uv run pytest
uv run ruff check .
uv run ty check .# Show available commands
cargo run -- --help
# Run a subcommand
cargo run -- sync
cargo run -- check
cargo run -- validate
cargo run -- bootstrapOnce installed (via cargo install --path crates/combobulate-cli), the binary is available as combobulate:
combobulate check
combobulate syncMIT
