Skip to main content
claude-bootstrap

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.

status DOI python license tests skills

Why · Install · Quick start · Profiles · What you get · Docs · Contributing


claude-bootstrap init: detect → plan → emit → reversible uninstall

🌐 English · Português · Español · Italiano · עברית

[!NOTE] v1.0.0 — first public release (2026-08-11). Install from a clone or with pip 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-interactive for CI.
  • 🧱 A real .claude/ tree. CLAUDE.md (≤60-line policy), PROJECT-STATE.md, a settings.json permissions baseline, profile skills + path-scoped rules, and subdirectory CLAUDE.md files where a folder has a distinct role.
  • ♻️ Idempotent + reversible. Re-running never clobbers your edits (create-only; <file>.new on update). A manifest records every emitted file so claude-bootstrap uninstall reverses 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 versionv1.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 --check prints 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.

claude-bootstrap detect across four project types

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.

Download files

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

Source Distribution

claude_bootstrap-1.0.0.tar.gz (849.6 kB view details)

Uploaded Source

Built Distribution

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

claude_bootstrap-1.0.0-py3-none-any.whl (950.2 kB view details)

Uploaded Python 3

File details

Details for the file claude_bootstrap-1.0.0.tar.gz.

File metadata

  • Download URL: claude_bootstrap-1.0.0.tar.gz
  • Upload date:
  • Size: 849.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for claude_bootstrap-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ee4ed6475fe26c857e87fc71f2933282c6feca4fc37db0553c844ddf535914f4
MD5 ca466717f54324bf5c551f5805aacf9d
BLAKE2b-256 4c8b7c45585c8a0805a622bf98074d8da65f1acc0cf35448e39aac3e7bec1780

See more details on using hashes here.

Provenance

The following attestation bundles were made for claude_bootstrap-1.0.0.tar.gz:

Publisher: release.yml on ulissesflores/claude-bootstrap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file claude_bootstrap-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for claude_bootstrap-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b00b0e5d34dc57ab1b5d6e6439240683879553bab8a094abf5de76902e2a0928
MD5 8d3f3258fb19001d54ff098f3f775daa
BLAKE2b-256 71b7d467274eacd383365fbbefce59217e3c9d015ff080dd430eec53abd03feb

See more details on using hashes here.

Provenance

The following attestation bundles were made for claude_bootstrap-1.0.0-py3-none-any.whl:

Publisher: release.yml on ulissesflores/claude-bootstrap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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