One local registry for every coding-agent skill on your machine.
中文 · Quick start · Why · Safety · CLI
Coding agents are getting useful enough that their skill libraries become real infrastructure. Then the copies multiply: Codex, Claude Code, OpenCode, Mavis, Cursor, OpenClaw, Hermes, and shared .agents/skills paths all start carrying slightly different versions of the same skill.
linka-skillhub turns that sprawl into one Git-backed source of truth.
- Finds every local skill across agent-specific and shared directories.
- Imports canonicals into
registry/skills/<name>/, with normal Git history. - Reviews before sharing using deterministic rules and optional code-agent reviewers.
- Distributes safely from the registry back to Codex, Claude, OpenCode, Mavis, Cursor, OpenClaw, Hermes, or shared paths.
- Reconciles drift with pull, push, fork, push-all, and agent-assisted merge.
- Works headless or visual: the Web console and CLI call the same core workflows.
pnpm install
pnpm mirror:local
pnpm build
pnpm serveOpen http://127.0.0.1:4873.
By default, mirror writes only to .sandbox/local-mirror, so you can test with mirrored real skills before touching your actual agent directories.
scan -> registry -> review -> distribute -> sync drift
lsh list
lsh registry import --create
lsh review --reviewer rules
lsh distribute preview --target codex,claude --skill writing-plans
lsh distribute apply --target codex,claude --skill writing-plans --yes
lsh sync status
lsh sync pull writing-plans --from claude
lsh sync merge writing-plans --from claude,opencode --by codex
lsh serveDuring local development, use pnpm lsh -- <command> after pnpm build, or pnpm lsh:dev -- <command> to run the TypeScript entrypoint.
| Profile | Writes to real agent dirs? | Best for |
|---|---|---|
mirror |
No | Default testing with mirrored real skills. |
sandbox |
No | Small deterministic fixtures. |
local |
Yes | Intentional writes to your real machine. |
Real skill directories are opt-in: use --profile local, and pass --yes for non-interactive writes.
- Preview first, apply second for distribution writes.
- Web apply requires a live server-side
confirmToken. - Unsafe, invalid, and agent-bound skills are excluded unless explicitly included.
- Registry writes are path-checked inside the active profile repo.
registry/instances.jsonis ignored by Git because it contains machine-local paths.- Overwrites create backups under the active
stateDir.
The browser UI is intentionally thin. It presents the same operations the CLI runs:
| Page | Use it for |
|---|---|
| Overview | Search skills, inspect status, source distribution, history, and evidence. |
| Intersect | Copy selected skills from one agent to another. |
| Distribute | Push registry skills to several agents with preview and confirmation. |
| Repo | Import, review, switch registry, bind a remote, pull, push, and browse history. |
pnpm typecheck
pnpm test
pnpm build
pnpm test:webui:functional
pnpm verifypnpm test:webui:functional builds the Web console, starts an isolated sandbox server, and clicks through language switching, registry loading, import, distribute, intersect, sync pull/push/push-all, merge gating, and remote push flows.
pnpm verify runs typecheck, tests, production build, UI audit, and UI flow checks.
MIT