Skip to content

inhere/skillc

Repository files navigation

Skillc

GitHub go.mod Go version GitHub tag (latest SemVer) Unit-Tests


English | 简体中文

skillc Single binary file, a local skills management tool for the multi-Agent ecosystem.

Features

  • 📦 Multi-source management — Local paths and Git repositories as Skill sources
  • 🔍 Index & search — Auto-scans sources and builds a searchable index
  • One-shot install--source flag registers, syncs, and installs in a single command
  • 🧩 Profiles — Save a reusable Skill set and apply it to any project with a dry-run plan
  • 🔒 Lock file tracking — Records origin, version, and install path; supports restore
  • 🤖 Multi-agent adapters — Automatically targets each agent's install directory
  • 🔄 Batch update — Update all installed Skills with one command
  • ⌨️ Interactive selection — Filter and multi-select Skills for install, update, and profile creation

Installation

Install by eget

Can quickly install by inherelab/eget

eget install inhere/skillc

Install by Go

go install github.com/inhere/skillc/cmd/skillc@latest

Build from source

git clone https://github.com/inhere/skillc
cd skillc
make build          # compile to current directory
make install        # install to $GOPATH/bin

Quick Start

# 1. Initialize config
skillc config init

# 2. Add a Skill source (Git repo or local path)
skillc source add https://github.com/org/skills.git --id org-skills --name "Org Skills"
skillc source add /path/to/my-skills --id my-skills

# 3. Sync sources (clone/pull and rebuild index)
skillc source sync --all

# 4. Search for a Skill
skillc search typescript

# 5. Install a Skill
skillc install my-skill

# 6. List installed Skills
skillc list

Command Reference

config — Configuration

skillc config init               # initialize config file
skillc config show               # display current config
skillc config set <key> <value>  # update a config value

source — Source management

skillc source list                    # list all sources
skillc source add <path-or-git-url> [--id <id>] [--name <name>] [--ref <ref>] [--sync]
skillc source add git <url> [ref] [--id <id>] [--name <name>] [--sync]
skillc source add local <path> [--id <id>] [--name <name>] [--sync]
skillc source info <id>               # show source details (partial ID match supported)
skillc source sync <id>               # sync a source (partial ID match supported)
skillc source sync --all              # sync all sources
skillc source status                  # show source status
skillc source collections [source]    # list collections under sources
skillc source skills <source>         # list skills under a source
skillc source skills <source> --collection <name>
skillc source remove <id>             # remove a source

New generated source IDs no longer receive forced local- / git- prefixes. Existing configured IDs are left unchanged. source sync and source info support partial ID matching — e.g. skillc source sync edge matches golang-edge-skills.

registry — Discover and install registry Skills

skillc registry list
skillc registry add <path-or-url> --id official --name "Official Registry"
skillc registry add https://skillsmp.com --id skillsmp --name SkillsMP --provider skillsmp
skillc registry sync <id>
skillc registry sync --all
skillc registry search go                         # search Skill results by default
skillc registry search go --registry skillsmp     # remote search via SkillsMP provider
skillc registry info official/go-pro              # show a registry Skill result
skillc registry install official/go-pro --agent codex --scope project --yes
skillc registry search gstack --kind source       # inspect source catalog entries
skillc registry add-source official/gstack [--id <id>] [--name <name>] [--sync]

Registry providers discover Skill-level results from a generic JSON catalog or a built-in provider adapter. registry install materializes one Skill into the local registry cache and then uses the normal install/lock flow with source_type=registry provenance. registry add-source is optional and only turns a source result into a long-lived source subscription.

SkillsMP is the first built-in provider adapter. Unlike generic JSON registries, it performs remote keyword search and caches returned Skill results locally so registry info and registry install can reuse the normal Registry install flow.

Registry Skill entries can point at a Git/local source_url or an archive download_url. Archive downloads support zip, tar.gz, and tgz; checksum verifies the original archive bytes with SHA-256 before extraction:

{
  "skills": [
    {
      "id": "go-pro",
      "name": "Go Pro",
      "version": "1.0.0",
      "download_url": "https://example.com/skills/go-pro.zip",
      "checksum": "sha256:<archive-sha256>",
      "install_entry": "skills/go-pro"
    }
  ]
}

profile — Saved Skill sets

skillc profile list                              # list saved profiles
skillc profile show <name>                       # show profile details
skillc profile create <name> --from-installed    # create from current installed Skills
skillc profile create <name> --from-collection <source>/<collection>
skillc profile create go-dev --interactive       # pick Skills interactively
skillc profile diff <name>                       # preview profile apply plan
skillc profile apply <name> --dry-run            # print plan without installing
skillc profile apply <name> --yes                # apply profile without confirmation

project — Registered projects

skillc project list                              # list registered projects
skillc project add . --id my-project --name "My Project"
skillc project remove my-project
skillc project import-lock                       # import existing project paths from lock records

Registered projects are the explicit allowlist used by Web cross-project updates and update --all-projects.

install — Install Skills

skillc install <skill-id>             # install a Skill
skillc install <id1>,<id2>            # install multiple (comma-separated)
skillc install                        # restore all Skills from lock file
skillc install --interactive [keyword] # filter and multi-select Skills

# One-shot: register source → sync → install
skillc install --source https://github.com/org/skills.git my-skill
skillc install --source /path/to/local-skills my-skill

Options:

Flag Short Default Description
--scope -s project Install scope (project / global)
--agent -a claude-code Target agent name or directory
--yes -y false Skip confirmation prompt
--source -S Git URL or local path — auto-register & sync before installing
--interactive -i false Open an interactive Skill selector
--install-mode Install mode (symlink / junction / copy)
--copy false Install by copying files

Interactive selection uses gookit/cliui: type to filter the candidate list, press Space to multi-select, and press Enter to continue into the normal install confirmation and execution flow.

update — Update Skills

skillc update                        # update all installed Skills
skillc update --target <skill-id>    # update a specific Skill
skillc update --check                # preview update candidates without installing
skillc update --interactive          # filter and multi-select update candidates
skillc update --all-projects --check # preview registered project updates
skillc update --all-projects --projects my-project,api --target go-pro --yes

update --check and status report precise drift when the version is unchanged but the source metadata changed: Git sources compare resolved refs, and local sources compare directory-level checksums.

Project Registry and Cross-Project Updates

skillc project registers local projects that are allowed to be managed by Web and update --all-projects. Cross-project updates only operate on registered projects; they do not blindly scan unknown lock entries. Use skillc project add . --id <id> or skillc project import-lock, inspect with skillc update --all-projects --check, then execute with skillc update --all-projects --yes.

status — Skill health

skillc status                        # show current project skill status
skillc status --profile go-dev       # filter by profile
skillc status --agent claude-code    # filter by agent

web — Local management UI

skillc web
skillc web --port 8090
skillc web --host 127.0.0.1 --port 8090

The web manager runs on 127.0.0.1 by default and supports source/profile/status/install-map/version-drift views, Registry search/sync/install/add-source, guarded current-project profile apply and update, source add/sync/remove, profile save/from-installed/from-collection, uninstall, and registered-project cross-project update plan/run. Every Web write action is plan-first, requires confirm:true on the run request, appends a local skillc-web-history.jsonl record, and only operates on the current project or explicitly selected registered projects.

Open the Registry view in skillc web to search synced registry Skills, preview install plans, install a registry Skill into the current project, sync registry catalogs, or convert a registry source result into a configured source.

Version Drift also exposes checksum and Git ref signals, so same-version content changes are visible in Web alongside ordinary version differences.

uninstall — Remove Skills

skillc uninstall <skill-id> [...]    # uninstall one or more Skills

list — Installed Skills

skillc list                          # list installed Skills (current agent)
skillc list --scope global           # list globally installed Skills

search / show — Index search

skillc search <keyword>              # keyword search
skillc search <keyword> --agent claude  # filter by agent
skillc show <skill-id>               # show Skill details

Collections are browsed through source collections and source skills --collection; to reuse a collection as a project Skill set, create a profile from it and apply the profile.

doctor — Environment check

skillc doctor                        # verify git, config, index, and cache

Configuration

Config file lookup order:

  1. ./skillc.yaml (current directory)
  2. ~/.config/skillc/config.yaml

Key fields:

lock_file: skillc.lock.yaml        # lock file path
index_file: skillc-index.json      # index file path
repo_cache_dir: ~/.cache/skillc    # Git repo cache directory
proxy_url: ""                      # HTTP proxy (optional)
sources: []                        # registered sources
projects: []                       # registered local projects for cross-project updates
agent_tools:                      # agent tools config agent_name: config
  claude-code:
    dirname: .claude
    aliases:
    - claude
  codex:
    dirname: .codex
  opencode:
    # dirname: .opencode # default is .{agent_name}
    user_dir: ~/.config/opencode
  universal: # universal agent config, most agent tool support this
    dirname: .agents
    aliases:
    - agents
    user_dir: ~/.agents
    project_dir: .agents

Lock File

skillc.lock.yaml records every installed Skill and is used by skillc install (no args) to restore all Skills:

records:
  - skill_id: my-skill
    source_id: git-org-skills
    agent: claude-code
    scope: project
    installed_path: .claude/skills/my-skill
    installed_at: "2026-01-01T00:00:00Z"

Development

go test ./...    # run all tests
make build       # local build

License

MIT

About

Single binary file, a local Skill management tool for the multi-Agent ecosystem. 单二进制文件,面向多 Agent 生态的本地 Skill 管理工具

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors