Skip to main content

Local skill manager for AI agent skills with reproducible per-project installs

Project description

CocoaSkill

PyPI Python versions License CI

csk is a local skill manager for AI agent skills. It installs reusable skill packages from local git repositories into your project repositories with reproducible, content-hashed installs and multi-agent adapter support (Claude Code, Codex CLI, Cursor, Gemini).

The MVP design contract is frozen in docs/mvp-design.md.

Why

Agent skills are useful, but managing them across many projects by hand falls apart fast: drift between machines, no version pinning, README files and tests leaking into the agent context, no cleanup when a skill is removed.

CocoaSkill makes per-project skill installation declarative and reproducible:

  • One Skillfile.json per project, committed to version control.
  • Pinned git refs (tag / branch / revision) and content-hashed installs.
  • A whitelist-based stripped layout — README, tests, build files, and other non-skill content stay out of the agent's context.
  • One canonical location (.agents/skills/) with per-agent adapter symlinks or copies into .claude/skills/, .codex/skills/, .cursor/rules/, .gemini/skills/.
  • Skill-provided command shims exposed via a project-local .agents/bin/ directory on PATH.

Install

Pick whichever fits your machine. pipx is the recommended path on every platform.

pipx (recommended)

pipx install cocoaskills

uv tool

uv tool install cocoaskills

Homebrew (macOS, Linux)

brew tap ivanopcode/csk
brew install cocoaskills

mise

mise use -g pipx:cocoaskills@latest

Convenience install script

curl -fsSL https://cocoaskills.org/install.sh | sh

The script detects Python, prefers pipx or uv tool, and falls back to pip install --user. Read it before piping if you do not trust the network.

Plain pip

python -m pip install --user cocoaskills

Quick start

  1. Pick or create a directory of cloned skill git repositories. Example: ~/agents/skills/.

  2. Bootstrap the global config:

    csk bootstrap
    

    This writes ~/.cocoaskills/config.json with your skills_root, preferred locale, default agents, and a list of managed projects.

  3. In each managed project, declare which skills you want:

    {
      "schema_version": 1,
      "project": { "alias": "partners-ios" },
      "agents": ["claude_code", "codex_cli", "cursor"],
      "locale": "en",
      "skills": [
        { "name": "skill-youtrack", "tag": "v1.0.0" },
        { "name": "skill-grafana", "branch": "main" }
      ]
    }
    
  4. Run csk install . inside a checkout, or csk install from anywhere to install every configured project.

CLI

Command Behavior
csk bootstrap Interactively create the global config.
csk install [target] Apply Skillfile.json using current local git refs. Does not fetch. target may be an alias, ., or a project path.
csk update Fetch all git repositories under skills_root. Does not modify projects.
csk upgrade [target] Run update, then install.
csk status [target] Show manifest vs installed state. Supports csk status . without saving config.
csk list [--paths] List configured projects and declared skills.
csk project add <alias> <path> Register a project and create an empty manifest.
csk project resolve [target] Show resolved project alias, checkout alias, Skillfile, and install paths.
csk config show Print resolved config path and contents.
csk shell-init [zsh|bash|powershell] Print shell hook code for auto-PATH activation.
csk --version Print version and exit.

Flags shared by install and upgrade:

  • --dry-run — plan work without modifying files.
  • --verbose — print detailed progress.
  • --fix-gitignore — append the managed CocoaSkill block to .gitignore.
  • --strict-tags — fail if a tag was locally moved to another commit.

Exit codes: 0 success, 1 one or more projects or skills failed, 2 configuration error, 3 lock contention.

Development

Requires Python 3.11+.

git clone https://github.com/ivanopcode/cocoaskills.git
cd cocoaskills
python -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"
pytest

Build artifacts locally:

python -m build
twine check dist/*

The runtime package is stdlib-only. Versioning is driven by setuptools-scm from git tags; the generated src/csk/_version.py is not committed.

Documentation

  • MVP design specification — frozen contract for v0.1 covering manifests, refs, install pipeline, locking, adapters, security boundary, and test surface.
  • CHANGELOG — release history in Keep a Changelog format.

License

Apache-2.0. See LICENSE.

Project details


Download files

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

Source Distribution

cocoaskills-0.2.1.tar.gz (63.9 kB view details)

Uploaded Source

Built Distribution

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

cocoaskills-0.2.1-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

File details

Details for the file cocoaskills-0.2.1.tar.gz.

File metadata

  • Download URL: cocoaskills-0.2.1.tar.gz
  • Upload date:
  • Size: 63.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cocoaskills-0.2.1.tar.gz
Algorithm Hash digest
SHA256 af8b4f6c17e206ee0299094e4563edf63805b94044cf1ce38365dfe756059106
MD5 5b7476e973d1f753e48a0a842d9cdcc0
BLAKE2b-256 9a54f1516fa00990f318b3dd58209f87b8dacce9c2e32a5f6d0bd988d72f516b

See more details on using hashes here.

Provenance

The following attestation bundles were made for cocoaskills-0.2.1.tar.gz:

Publisher: release.yml on ivanopcode/cocoaskills

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

File details

Details for the file cocoaskills-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: cocoaskills-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 37.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cocoaskills-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b042c1c9311dde617778595e2b4339df9232771a752cb46fad333486b174d9b7
MD5 8e351d3c8db18f5e1b0c89a7dcaffb96
BLAKE2b-256 3988efcf6a39402c59423f2195d64d7e462e7bff7ec2430362757388dc2f6f5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cocoaskills-0.2.1-py3-none-any.whl:

Publisher: release.yml on ivanopcode/cocoaskills

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 Pingdom Monitoring Sentry Error logging StatusPage Status page