chaparral
Health Uyari
- No license รขโฌโ Repository has no license file
- Description รขโฌโ Repository has a description
- Active repo รขโฌโ Last push 0 days ago
- Community trust รขโฌโ 13 GitHub stars
Code Uyari
- Code scan incomplete รขโฌโ No supported source files were scanned during light audit
Permissions Gecti
- Permissions รขโฌโ No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
๐ The connective tissue between your projects. Manages shared Claude Code skills and configuration across sibling repos.
chaparral
The connective tissue between your projects.
Chaparral manages shared Claude Code skills and brand identity across every repo in an organization. One brand repo holds the truth. Chaparral links it everywhere it needs to go.
Built for people who work across multiple orgs and clients. Multi-org by default.
The problem
You have an org directory โ say ~/code/manzanita-research/ โ with a dozen repos inside. They share a design language, a brand voice, a set of Claude Code skills that shape how AI works with your code. But Claude Code discovers skills per-project (.claude/skills/) or globally (~/.claude/skills/). There's no org level.
So you copy things around. You forget. Projects drift. The new repo never gets the frontend design skill. The brand voice doc is three versions behind in half your projects.
Claude Code has a plugin marketplace now, but it solves a different problem โ distribution to other people and machines. Plugins copy to a cache, require per-repo configuration, and need manual updates after changes. When you're actively developing shared skills across sibling repos, you need something faster.
The fix
Put a chaparral.json manifest in your brand repo. Chaparral finds it, reads it, and symlinks your shared skills and org-level CLAUDE.md into every sibling repo. Edit a skill in the brand repo and it's instantly live everywhere. No reinstalls, no cache invalidation, no per-repo setup.
~/code/manzanita-research/
โโโ CLAUDE.md โ symlink, managed by chaparral
โโโ brand/
โ โโโ chaparral.json โ manifest
โ โโโ org/
โ โ โโโ CLAUDE.md โ org-wide Claude instructions
โ โ โโโ skills/
โ โ โโโ frontend-design/
โ โ โโโ brand-voice/
โ โโโ ...
โโโ toyon/
โ โโโ .claude/skills/
โ โโโ frontend-design/ โ symlink
โ โโโ brand-voice/ โ symlink
โโโ ceanothus/
โ โโโ .claude/skills/
โ โโโ frontend-design/ โ symlink
โ โโโ brand-voice/ โ symlink
โโโ ...
Install
go install github.com/manzanita-research/chaparral/cmd/chaparral@latest
Or build from source:
git clone https://github.com/manzanita-research/chaparral.git
cd chaparral
go build -o chaparral ./cmd/chaparral
Usage
TUI dashboard
chaparral
Launch the interactive dashboard. Toggle between skills view and repos view with tab. Navigate with j/k, sync with s or enter, install marketplace plugins with i from the repos view.
Sync everything
chaparral sync
Discovers all org directories, finds brand repos (by chaparral.json), and links skills into every sibling. Idempotent โ safe to run anytime.
Check status
chaparral status
Shows what's linked, what's stale, what's new and unlinked. Also shows installed marketplace plugins per repo.
Validate skills
chaparral validate
Checks skill structure for errors and warnings โ missing SKILL.md, bad frontmatter, etc.
Generate plugin manifests
chaparral generate
chaparral generate --marketplace
Generates plugin.json manifests for each skill (dry run to stdout). With --marketplace, also generates the marketplace.json catalog.
Publish to marketplace
chaparral publish
chaparral publish --check
chaparral publish --write-only
Writes plugin manifests and pushes your marketplace to GitHub. Use --check to see if local skills are newer than published. Use --write-only to write manifests without pushing.
Clean up
chaparral unlink
Removes all chaparral-managed symlinks. Only touches symlinks it created.
The manifest
Your brand repo needs a chaparral.json at its root:
{
"org": "manzanita-research",
"claude_md": "org/CLAUDE.md",
"skills_dir": "org/skills",
"exclude": ["brand"]
}
| Field | What it does |
|---|---|
org |
Human-readable org name (for display) |
claude_md |
Path to the org-level CLAUDE.md, relative to brand repo root |
skills_dir |
Directory containing shared skills, relative to brand repo root |
exclude |
Repos to skip when linking (the brand repo itself, forks, archives) |
How discovery works
Chaparral looks for org directories in ~/code/. Any subdirectory that contains a repo with a chaparral.json is treated as an org. This means you can manage multiple orgs โ different clients, different brands, all from one tool:
~/code/
โโโ manzanita-research/ โ org (brand/ has chaparral.json)
โโโ temple-of-silicon/ โ org (identity/ has chaparral.json)
โโโ cosmic-computation-lab/ โ org (brand/ has chaparral.json)
โโโ personal-projects/ โ not an org (no chaparral.json anywhere)
Local skills vs marketplace plugins
Chaparral and Claude Code's plugin marketplace are complementary:
| Local skills (chaparral) | Marketplace plugins | |
|---|---|---|
| Propagation | Symlinks โ instant | Cache copies โ requires update |
| Setup | One manifest, auto-discovered | Per-repo .claude/settings.json |
| Best for | Active development, fast iteration | Stable distribution to others |
| Scope | Org directory | Per-user or per-project |
Chaparral is your workbench. The marketplace is your storefront. Develop locally with symlinks, then run chaparral publish to push them to your marketplace when they're stable.
What it doesn't do
- No file copying for sync. Symlinks only. One source of truth.
- No global installs into
~/.claude/. Everything stays org-scoped. - No magic. It creates symlinks and tells you what it did. Publishing is the one exception โ
publishwrites manifests and pushes to GitHub, but only when you ask.
Named for
The chaparral โ dense, fire-adapted brushland that covers California's coastal hills. Manzanita, ceanothus, sage, toyon โ they grow together in this ecosystem, their roots intertwined beneath the surface. Different plants, same soil. That's the idea.
With love from California.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi