Skip to main content

cchad

A package manager and lockfile for your Claude Code setup.

CI PyPI Python License: MIT

cchad scans a repo, detects its tech stack, and installs a curated, deconflicted set of MCP servers and skills for Claude Code — recording every choice in a committed manifest so anyone who clones the repo gets an identical setup with one command.

Mental model: a preset is your base tooling · auto_plugins_mcps.md is the lockfile · cchad sync is npm install.


Why

Claude Code gets its power from MCP servers, skills, and hooks — but assembling the right set is tedious and easy to get wrong:

  • Discovery is manual. The ecosystem is thousands of repos; finding the few that matter for this project is research every time.
  • Tools fight each other. Stack two workflow frameworks or two browser MCPs and they conflict and degrade the agent.
  • Config isn't shared. Everyone hand-configures their own .claude/ and .mcp.json, so teammates drift.

cchad does curated + auto-detected + deconflicted + team-synced in one tool, and the result is a plain file you can read and review in a PR.

What makes it different

  1. The manifest is the source of truth. A committed, human-readable auto_plugins_mcps.md records what was detected, what got installed, and why. The CLI applies the manifest — it never hides config in an opaque blob.
  2. Deconfliction is first-class. At most one workflow spine, one browser MCP, a capped number of servers, no redundant duplicates — every drop comes with a reason.

Principles: minimal by default, plan before apply, safe (atomic writes, backups, rollback, never auto-runs untrusted installers).


Install

# with uv (recommended)
uv tool install cchad          # or run ad-hoc: uvx cchad --help

# or with pipx
pipx install cchad

Inside Claude Code, install the plugin instead:

/plugin marketplace add Cypsy1714/cchad
/plugin install cchad@cchad

Quickstart

In a terminal

cchad setup        # once: pick a baseline, applied to your user scope
cchad init         # in a repo: detect → preview plan → apply + write the manifest

In Claude Code

/cchad:setup       # once: pick a baseline
/cchad:init        # in a repo: preview the plan, confirm, apply

Onboarding a teammate

Someone clones a repo that already has auto_plugins_mcps.md committed:

cchad sync         # rebuilds their local .mcp.json / .claude to match the manifest

They open Claude Code and it's configured identically.


How it works

cchad has two layers:

Layer Scope Lives in Set by
Base user (~/.claude/) your config.toml cchad setup
Project this repo committed auto_plugins_mcps.md cchad init
  • A preset (minimal / recommended / full) picks your base tooling — the things you want in every project.
  • Rules map the detected stack to project packages (e.g. mongodb → the MongoDB MCP, react → a React skill).
  • The resolver merges both layers and deconflicts them (see docs/deconfliction.md).
  • Apply writes real config: .mcp.json, skill directories, and a fenced block in CLAUDE.md. Plugins are never auto-installed — cchad prints the exact command.

The manifest

auto_plugins_mcps.md is committed to the repo. Its frontmatter is what cchad reads; the body is what your teammates review in a PR.

---
cchad_version: 0.1.0
generated: 2026-07-01
stack: [fastapi, javascript, mongodb, python, react, vite]
tools:
  - id: context7
    kind: mcp
    source: npx -y @upstash/context7-mcp
    scope: project
  - id: mongodb-mcp
    kind: mcp
    source: npx -y mongodb-mcp-server
    scope: project
skipped:
  - id: playwright-mcp
    reason: "only one browser tool allowed; kept 'chrome-devtools-mcp'"
---

# Claude Code setup for this repo
...

Commands

Command What it does
cchad setup Pick a base layer, save config, apply it to your user scope.
cchad init Detect the stack, preview the plan, apply it, write the manifest.
cchad plan Preview the plan (and diff vs the manifest). Writes nothing.
cchad apply Apply this repo's committed manifest to local config.
cchad sync Rebuild local config from the committed manifest (onboarding).
cchad update Reload the catalog and show drift vs the manifest.
cchad add / remove <id> Add or remove a project package in the manifest.
cchad base list / add / remove Manage your base layer.
cchad config edit Open your config in $EDITOR.
cchad rollback Undo the last apply from its .bak backups.

Global flags: --json, --yes, --plan-only, --no-base, --scope. See docs/cli.md.

Configuration

Your personal base choices and policy live in ~/.config/cchad/config.toml (not committed):

[base]
preset  = "recommended"        # minimal | recommended | full
enable  = []                   # extra base packages
disable = []                   # preset items to drop

[policy]
max_mcp_servers = 5
browser = "chrome-devtools-mcp"  # which single browser MCP wins
spine   = "superpowers"          # which single workflow spine wins

[catalog]
sources = []                   # your own catalog YAMLs (paths or github: refs)

See docs/configuration.md.

Extending the catalog

The value is the data. Add your own packages, presets, and rules — no code needed — by pointing [catalog].sources at a YAML file or a github:owner/repo ref. Your entries override the shipped ones by id. See docs/extending.md.

Safety

  • Plan before apply — nothing touches disk without a preview.
  • Atomic writes + .bak backups + cchad rollback — your existing .mcp.json and .claude/ are never corrupted.
  • No auto-run installers — cchad only writes config and installs from sources in its catalog. Plugins become a manual step with the exact command.
  • No secrets in the manifest — servers that need keys reference environment variables; tokens are never written to committed files.

Documentation

Contributing

Issues and PRs welcome — see CONTRIBUTING.md. Adding a package or a detection rule is usually a one-line change to a YAML file.

License

MIT © Cypsy1714

Metadata

Release files for cchad 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cchad 0.1.1
File Size Uploaded
cchad-0.1.1.tar.gz 47.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cchad 0.1.1
File Interpreter ABI Platform
cchad-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 94.3 kB

Release files / cchad-0.1.1.tar.gz

Download URL cchad-0.1.1.tar.gz
Size 47.4 kB
Tags Source
SHA-256 checksum
How to use checksums
0d7d76860119285479eb8214a0d008b26631b78b455af8c1841546ca53978560
BLAKE2b-256 checksum
How to use checksums
817ac04b65163a4b53195f82cbb150e595a7d0cf662f3033677199b4328d3263
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 1, 2026.

Transparency log

Release files / cchad-0.1.1-py3-none-any.whl

Download URL cchad-0.1.1-py3-none-any.whl
Size 46.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a6d25b6dddd83905e24158bfb6e54590dd3835de79c00bfe51d717a45248226d
BLAKE2b-256 checksum
How to use checksums
d1e1cff898456177a13caee3f261f21424434bd50934e12dcfea9c06860d902a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page