Airsc miễn phí cho tất cả. Nếu nó giúp bạn, hãy ủng hộ $2–$20.

Ủng hộ
PluginCẩn thậnQuy trình & bộ nhớ agentCần cài đặt chút

chaparral

Manzanita-Research · Manzanita-Research/chaparral

Kết nối các dự án bằng cách quản lý các kỹ năng và cấu hình Claude Code dùng chung, sử dụng symlink để đảm bảo tính nhất quán trên các kho lưu trữ.

🔗 The connective tissue between your projects. Manages shared Claude Code skills and configuration across sibling repos.

15 sao1Giấy phép: Không có giấy phépCập nhật 5 tháng trước0 lượt mở

Xem trước

▍

Bạn có thể làm gì với nó

  • Chia sẻ một bộ kỹ năng Claude Code chung (ví dụ: giọng điệu thương hiệu, thiết kế frontend) trên tất cả các dự án trong tổ chức của bạn.
  • Đảm bảo tất cả các kho lưu trữ mới tự động kế thừa `CLAUDE.md` và cấu hình kỹ năng mới nhất của tổ chức.
  • Cập nhật một kỹ năng dùng chung một lần trong kho lưu trữ thương hiệu trung tâm và nó sẽ ngay lập tức lan truyền đến tất cả các dự án được liên kết.

Kiểm tra an toàn

Cẩn thận

Dùng được, nhưng nên đọc ghi chú trước.

  • ●Không có giấy phép rõ ràng: hỏi tác giả trước khi dùng cho sản phẩm thương mại.

Quét tự động các file trong repo. Luôn xem lại code trước khi chạy.

Trích từ README

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"]
}
FieldWhat it does
orgHuman-readable org name (for display)
claude_mdPath to the org-level CLAUDE.md, relative to brand repo root
skills_dirDirectory containing shared skills, relative to brand repo root
excludeRepos 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
PropagationSymlinks — instantCache copies — requires update
SetupOne manifest, auto-discoveredPer-repo .claude/settings.json
Best forActive development, fast iterationStable distribution to others
ScopeOrg directoryPer-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 — publish writes 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

Xem mã nguồn trên GitHub