Skip to main content

Repository-native AI Chief of Staff orchestration

Project description

Brichan

PyPI version Python versions License

Coding agents are very good at the work in front of them and very bad at remembering why it was asked for. Context lives in a chat window, so it is lost when the window closes; decisions are re-litigated, status is reconstructed from memory, and the record of what was actually verified never outlives the session. Running several agents at once makes this worse, not better, because nothing owns the state between them.

This package introduces an AI Chief of Staff that sits above the coding agent rather than inside it. You give it a project goal; it keeps only the context that goal needs, hands bounded tasks to independent workers, checks the evidence they return, and records decisions and status as files in your repository — outside chat, where they survive the session.

The distribution, the importable package, and every console command all share the name brichan / brichan-*.

Requirements

Brichan coordinates independent worker sessions through Herdr, the approved worker-control plane. A single coordinator session runs without it, but Herdr is required as soon as Brichan hands off bounded tasks to workers.

Install it on Linux or macOS:

$ curl -fsSL https://herdr.dev/install.sh | sh

or via Homebrew on macOS:

$ brew install herdr

Then install the integration for your runtime, e.g.:

$ herdr integration install claude
$ herdr integration install codex

See the Herdr documentation for other install methods (mise, Nix, Windows preview) and integration options.

Installation

PyPI

To install Brichan, simply:

$ pip install brichan

Brichan runs on POSIX-compatible systems with Python 3.10 or newer. It has no runtime dependencies.

From source

The repository ships an installer that builds a wheel and installs every console command into a dedicated environment. It can be invoked from any directory and does not activate or modify your project's virtual environment:

$ /absolute/path/to/brichan/scripts/install-brichan

By default it creates an environment at $HOME/.local/share/brichan/venv and command symlinks in $HOME/.local/bin, selecting an available Python 3.10+ interpreter with pip, setuptools, venv, and wheel. If the command directory is not on PATH, the installer prints the exact export to add to your shell profile.

Usage

Brichan operates on an existing top-level Git repository. Initialization defaults to a dry run and performs zero writes, so you can preview the complete footprint before anything is created:

$ brichan init --project /absolute/path/to/repository

Once the footprint looks right, apply it:

$ brichan init --apply --project /absolute/path/to/repository

This creates only a versioned .brichan/ directory holding managed policy, model routing, Herdr skill resources, and mutable project memory. Repeating it against healthy state is idempotent. Your AGENTS.md, CLAUDE.md, .codex/, and provider configuration are left untouched.

Diagnose and launch from any directory by naming the target explicitly:

$ brichan status --project /absolute/path/to/repository
$ brichan doctor --project /absolute/path/to/repository
$ brichan run --project /absolute/path/to/repository -- <codex arguments>

From inside a healthy initialized repository, bare brichan launches Codex directly:

$ brichan

Arguments after -- are forwarded to Codex. Option-looking text after -- is treated as literal prompt content, so a prompt beginning with a dash cannot silently become a flag:

$ brichan run --project /absolute/path/to/repository -- --review the auth module

Before the --, Brichan rejects native delegation, permission bypasses, cwd/scope widening, profiles, remote execution, and arbitrary Codex configuration. State diagnostics reject malformed, dangling, symlinked, inaccessible, or incompatible .brichan/ state rather than silently repairing it. Schema v1 has no automatic migration: a package-version change requires deliberate backup and reinitialization.

Coordinating workers

Herdr is the worker control plane. Native runtime delegation stays disabled so worker ownership, evidence, and cleanup remain visible:

  1. You describe the outcome and constraints.
  2. Brichan reads only the project context that work needs.
  3. Brichan gives bounded tasks to independent workers through Herdr.
  4. Brichan verifies the results, records decisions and status, then reports back.

Herdr is needed only when Brichan coordinates independent worker sessions. Project context is written to projects/<project-slug>/ as a small set of Markdown files covering overview, current state, tasks, decisions, and references.

Coordinator defaults and worker routes are settings-driven, so the coordinator and the implementation, review, planning, or scan workers may each use a different runtime.

Other console commands

Installing brichan also provides:

  • brichan-codex — resolves coordinator routing from a Brichan source checkout (or BRICHAN_ROOT), or from an already-initialized project's .brichan/ state.
  • brichan-claude — resolves only from a checkout or BRICHAN_ROOT.
  • brichan-herdr-agent-start — starts a Herdr worker session.
  • brichan-validate-receipts — validates canonical handoff receipts.

brichan-codex and brichan-claude are checkout-oriented and intended for development, not standalone installed-project launches. --help and --version work from any directory.

License

Brichan is available under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brichan-0.7.0.tar.gz (40.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

brichan-0.7.0-py3-none-any.whl (46.9 kB view details)

Uploaded Python 3

File details

Details for the file brichan-0.7.0.tar.gz.

File metadata

  • Download URL: brichan-0.7.0.tar.gz
  • Upload date:
  • Size: 40.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.11

File hashes

Hashes for brichan-0.7.0.tar.gz
Algorithm Hash digest
SHA256 82d792358fe068d541067e2ce27ee410b632317a4c6e2b62e51626fdabbf79b7
MD5 cf4b736d2f543b7ff6c89c146120e43f
BLAKE2b-256 34d4ec8bc25f7fc4bb4542af3e3d1882d90fa358ed20aa3311e331df402633c3

See more details on using hashes here.

File details

Details for the file brichan-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: brichan-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 46.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.11

File hashes

Hashes for brichan-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5288e98561ae29e57da2b8d7e9787f55913a4e116717e488440d8dbaa4fcf018
MD5 6a7c37bad84f1f09eaae7f20d5efa929
BLAKE2b-256 2b7e61d3bb2f0fd388c3d2bde7314fb706d47331efd3a201886870de41bf94af

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page