Detect, scaffold, and reverse a complete Claude Code setup — in one command.
claude-bootstrap inspects your project, tells you why it picked a profile, shows the plan, asks once — then emits a full .claude/ tree: a permissions baseline, curated license-audited skills, and path-scoped rules. Idempotent, with --check and a real uninstall.
Why · Install · Quick start · Profiles · What you get · Docs · Contributing
[!NOTE]
v1.0.0— first public release (2026-08-11). Install from a clone or withpip install git+https://github.com/ulissesflores/claude-bootstrap(Install). The PyPI package name follows via the release workflow.
Why it exists
Claude Code ships its own /init — and an interactive setup behind CLAUDE_CODE_NEW_INIT=1 — that writes a CLAUDE.md. claude-bootstrap is not a replacement; it's complementary, and deliberately does more on the axes that matter for a reproducible, auditable setup you re-run across many repos:
Native claude /init |
claude-bootstrap |
|
|---|---|---|
| Writes | CLAUDE.md (conversational; explores your code) |
the whole .claude/ tree from a detected profile |
| Permissions | does not touch settings.json |
emits a settings.json allow/deny baseline |
| Skills / rules | — | license-audited, provenance-verified skill bundles + path-scoped rules |
| Re-run | per session | idempotent, with --check, full uninstall, per-file manifest |
| Confidence | — | shows why the profile was chosen, asks before writing, every artifact prunable |
Use native /init for a quick conversational CLAUDE.md. Reach for claude-bootstrap when you want a reproducible, auditable, profile-based .claude/ baseline. (More: docs/02-state-of-the-art.md §7.2.)
What you get
- 🔎 Detect, then explain. Scans the project and prints the evidence for the profile it picks (e.g.
pyproject.toml found, torch in deps → data-science) — never a black box. - ✋ Confirm before write. Shows the plan via
--check, asks[y/N], writes nothing on decline. Skippable with--yes/--non-interactivefor CI. - 🧱 A real
.claude/tree.CLAUDE.md(≤60-line policy),PROJECT-STATE.md, asettings.jsonpermissions baseline, profile skills + path-scoped rules, and subdirectoryCLAUDE.mdfiles where a folder has a distinct role. - ♻️ Idempotent + reversible. Re-running never clobbers your edits (create-only;
<file>.newonupdate). A manifest records every emitted file soclaude-bootstrap uninstallreverses the whole thing — and keeps any file you modified. - 📦 License-audited skills with verified provenance. 30 bundled skills across profiles: 25 vendored, each pinned to an upstream commit and content-verified (
scripts/verify-skill-provenance.py; a weekly CI job flags drift), plus 5 first-party skills authored in this repository under its own MIT licence. Every bundled skill carries a redistribution licence we actually read — MIT or Apache-2.0 — with its full text shipped alongside. Four Anthropic skills were de-bundled 2026-07-26 because they carry no such grant; we point at upstream instead of redistributing them. - 🧹 Anti-bloat by design. Everything is plain Markdown/JSON you can read, edit, or delete — and the tool tells you how (
--check,skill remove,uninstall).
Install
[!IMPORTANT] Not on PyPI yet — install from a clone:
git clone https://github.com/ulissesflores/claude-bootstrap cd claude-bootstrap bin/bootstrap.sh init --profile=universal-software # or: uv run -m claude_bootstrap.cli init
The curl method is live now; uv / pipx / pip activate when the package lands on PyPI:
| Method | Command |
|---|---|
| uv (recommended) | uv tool install claude-bootstrap |
| pipx | pipx install claude-bootstrap |
| pip | pip install claude-bootstrap |
| curl | curl -LsSf https://raw.githubusercontent.com/ulissesflores/claude-bootstrap/main/install.sh | bash |
Verify: claude-bootstrap version → v1.0.0 or later. Requires Python 3.11+.
Quick start
# 1. (optional) see what kind of project this is — read-only
claude-bootstrap detect
# 2. scaffold: detect → rationale → plan → confirm → emit
claude-bootstrap init --profile data-science
# 3. health-check the install (13 checks)
claude-bootstrap doctor
# changed your mind? reverse the whole emit (keeps files you edited)
claude-bootstrap uninstall
[!TIP]
claude-bootstrap init --checkprints the full action plan and writes nothing — the safest way to preview.
Profiles
Single-stack repos get one profile; monorepos get a union of all detected code stacks. Adding a profile is zero-touch on the others. Each bundles skills with per-skill provenance in its NOTICE.md.
| Profile | Bundled skills | Upstream |
|---|---|---|
universal-software |
5 | — (first-party, MIT) |
academic |
3 | K-Dense-AI/scientific-agent-skills (MIT) |
data-science |
6 | alirezarezvani/claude-skills (MIT) |
frontend |
7 | anthropics/skills (Apache-2.0) + alirezarezvani/claude-skills (MIT) |
devops |
5 | alirezarezvani/claude-skills (MIT) |
backend |
4 | alirezarezvani/claude-skills (MIT) |
detect scans filesystem signals (*.tex → academic, torch/tensorflow in deps → data-science, package.json+tsconfig → frontend, a web framework → backend, *.tf/Chart.yaml → devops). A monorepo with several stacks in sub-projects (e.g. frontend/ + backend/) emits a single root .claude/ union — union permissions + all skills + path-scoped rules/<stack>.md — plus a thin <subdir>/CLAUDE.md per sub-project. academic stays exclusive (whole-repo). Details: docs/05-profiles.md.
What gets installed
your-project/
├── CLAUDE.md # project instructions (≤60-line policy)
├── PROJECT-STATE.md # curated state (you edit; not Claude's auto-memory)
├── .gitignore # soft-merged with yours
└── .claude/
├── settings.json # permissions allow/deny + env (profile-merged)
├── skills/<name>/ # curated, license-audited skills
├── rules/<name>.md # path-scoped rules
└── .bootstrap-manifest.json # records the emit so `uninstall` reverses it safely
All files are create-only: re-running won't overwrite your edits; update writes <file>.new for review. It's just files — prune freely.
Distribution
Beyond the CLI, each curated profile is also packaged as a Claude Code plugin via a .claude-plugin/marketplace.json — so the bundles can be pulled with /plugin install.
Docs
Organized by intent — start where your need is. Full index: docs/.
| You want to… | Read |
|---|---|
| Understand the architecture & flow | 00-overview · 06-bootstrap-flow |
| Match the current Claude Code spec | 01-canonical-anthropic · 02-state-of-the-art |
| Avoid common mistakes | 03-anti-patterns |
| Work with skills & profiles | 04-skills-curated · 05-profiles |
| Look up a term / get unstuck | 07-glossary · 08-faq |
Contributing
Issues and PRs welcome. Dev setup is one command (uv sync), commits follow Conventional Commits, and everything is gated by pytest + pre-commit. See CONTRIBUTING.md and the CODE_OF_CONDUCT.md.
License
MIT © Carlos Ulisses Flores. Bundled third-party skills retain their upstream licenses (MIT or Apache-2.0) — see each profile's NOTICE.md and the LICENSE.txt that ships inside every skill directory. The first-party skills in universal-software are MIT under this project's own license. Built one layer above superpowers; declares the dependency, never duplicates it.
Metadata
Release files for claude-bootstrap 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| claude_bootstrap-1.0.0.tar.gz | 849.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| claude_bootstrap-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.8 MB
Release files / claude_bootstrap-1.0.0.tar.gz
| Download URL | claude_bootstrap-1.0.0.tar.gz |
|---|---|
| Size | 849.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ee4ed6475fe26c857e87fc71f2933282c6feca4fc37db0553c844ddf535914f4
|
|
BLAKE2b-256 checksum How to use checksums |
4c8b7c45585c8a0805a622bf98074d8da65f1acc0cf35448e39aac3e7bec1780
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Aug 11, 2026.
Transparency logRelease files / claude_bootstrap-1.0.0-py3-none-any.whl
| Download URL | claude_bootstrap-1.0.0-py3-none-any.whl |
|---|---|
| Size | 950.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b00b0e5d34dc57ab1b5d6e6439240683879553bab8a094abf5de76902e2a0928
|
|
BLAKE2b-256 checksum How to use checksums |
71b7d467274eacd383365fbbefce59217e3c9d015ff080dd430eec53abd03feb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Aug 11, 2026.
Transparency log