CS

changeroa/skillar

Developer tools
17 stars Quality 67 Trend 41MIT

Personal MCP skill registry with local server and Cloudflare Worker proxy

Overview

skillar Your skills. Your agents. One local workspace. English · 한국어 Connect the SKILL.md folders already on your machine to your coding agents. skillar searches them over MCP, records what each session searched and read, and makes that history visible in a local dashboard. Read the migration guide . Both packages own the gisool command; a direct global install collides. Follow the stop, backup, and package-handoff steps rather than using --force. init installs a LaunchAgent on macOS or a systemd user unit on Linux. The daemon listens on 127.0.0.1:8799. Prefer a foreground process? Run skillar init --no-service, then skillar serve. Already using skillar? skillar doctor checks your installation. For a source checkout, see development setup. Capture can also observe skills used natively when runtime hooks or telemetry report them. Skill tracing explains attribution, evidence limits, and the . Core MCP serving and session collection continue if herdr is unavailable.

README

skillar Your skills. Your agents. One local workspace. English · 한국어

Connect the SKILL.md folders already on your machine to your coding agents. skillar searches them over MCP, records what each session searched and read, and makes that history visible in a local dashboard.

Index in place · Read on demand · Keep history local

Quick start · Supported runtimes · Privacy · CLI & configuration

Quick start

macOS or Linux · Node.js 24.15+

Upgrading from gisool? Read the migration guide before installing. Both packages own the gisool command; a direct global install collides. Follow the stop, backup, and package-handoff steps rather than using --force.

For a fresh installation:

npm install -g skillar
skillar init --dry-run    # preview config and service changes; write nothing
skillar init              # connect detected runtimes and install the background service
skillar open              # open the local dashboard

init installs a LaunchAgent on macOS or a systemd user unit on Linux. The daemon listens on 127.0.0.1:8799. Prefer a foreground process? Run skillar init --no-service, then skillar serve.

Already using skillar? skillar doctor checks your installation. For a source checkout, see development setup.

From a skill folder to a session trace

Step What happens
Discover Index existing skill roots without copying or editing their files. Agents search with search_skills and receive ranked candidates.
Read The host reads the chosen SKILL.md and supporting files through standard MCP resources/read. Reading is evidence, not permission to execute.
Trace Inspect sessions, search candidates, skill reads, task → skill → outcome flows, and activity by weekday and hour in the dashboard.

Capture can also observe skills used natively when runtime hooks or telemetry report them. Skill tracing explains attribution, evidence limits, and the herdr requirement for pane/session tracing. Core MCP serving and session collection continue if herdr is unavailable.

Supported runtimes

Runtime --runtime ID
Claude Code claude-code
Codex codex
Gemini CLI gemini
Cursor cursor
OmO omo
Gajae Code gajae
OpenClaw openclaw

init detects installed runtimes. Select a subset with skillar init --runtime codex,claude-code. Packs configure MCP and runtime-specific telemetry or capture hooks; capture coverage varies by runtime.

Both MCP revision 2026-07-28 and the legacy initialize handshake are supported. Skill bodies require a host resource reader. See protocol and compatibility for headers, stdio, and legacy transport limits.

Privacy and storage

The local daemon stores prompts, searches, loads, and supporting-file reads in SQLite. It listens on loopback only, protects MCP, ingest, and API requests with a local bearer token, and does not upload captured telemetry. The dashboard uses a local authenticated cookie. Connected agents and their model providers handle data separately.

Choose what to retain in ~/.skillar/config.json:

Setting Behavior
captureLevel: "full" Store captured text as sent (default).
captureLevel: "redacted" Mask recognized secrets and truncate text to 2,048 characters; this does not guarantee every secret is removed.
captureLevel: "metadata" Keep text digests and lengths, without the text.
retentionDays Delete old sessions; null keeps history.

Fresh installs use ~/.skillar/; SKILLAR_HOME selects another home. Existing legacy homes and databases are reused according to the migration rules.

Path in the selected home Purpose
config.json Port, capture level, retention, and skill roots
token Local bearer token, mode 0600
skillar.db Skill index, sessions, events, and loads; existing gisool.db stays in place
logs/daemon.log Daemon log
backups/ Per-run configuration backups for rollback

Keep your setup portable

skillar doctor                                  # check daemon, service, index, capture, and herdr
skillar doctor --json
skillar init --rollback                         # undo the newest init run
skillar init --rollback --all                    # undo every run
skillar export ~/skillar-backup                  # settings only
skillar export ~/skillar-backup --with-history   # include sessions, events, and loads
skillar import ~/skillar-backup --dry-run        # preview; existing keys are kept
skillar eval                                    # measure search quality

Use skillar open --print to print the dashboard URL without opening a browser. See the CLI guide for import, service management, settings, and protocol details.

Documentation

Guide Use it for
Local CLI & MCP Installation, commands, settings, and protocol reference
Upgrade & compatibility Safe package handoff, legacy homes, commands, and identities
Skill tracing Capture coverage, herdr joins, attribution, and evidence limits
Architecture Daemon, storage, ingest, and API design

Remote registry and team distribution

The local CLI needs no hosted registry. This repository also contains a separate Node.js registry (server/, stdio or Streamable HTTP) and a Cloudflare Worker (worker/) for authenticated distribution from private R2 immutable releases. They implement the SEP-2640 Skills Extension.

The former personal Cloudflare deployment was retired on 2026-10-29. Historical addresses are not maintained endpoints; organization deployments are separate external resources. Self-hosting requires your own configuration and release validation. skillar init --disable-remote can disable a remote registration in connected runtimes.

Contributing

With Node.js 24 and npm, run node scripts/verify.mjs from the checkout to perform the same locked installs, builds, tests, search and plugin checks, and Worker dry-runs as CI. It does not deploy or publish content.

License

MIT. The name comes from 기술 — Korean for skill, craft, or technique.

View the full README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add changeroa/skillar
New to MCP? Start with the mcpskill.org guide →