Skrills

Crates.io Downloads Docs CI Coverage Audit License: MIT Mentioned in Awesome Codex CLI

Write a skill once, use it everywhere. Skrills validates and syncs skills, commands, agents, MCP servers, and hooks across Claude Code, Codex CLI, GitHub Copilot CLI, and Cursor, all from a single Rust binary.

Install · User Guide · CLI Reference · FAQ · Changelog

Install

macOS / Linux:

curl -LsSf https://raw.githubusercontent.com/athola/skrills/HEAD/scripts/install.sh | sh

Windows PowerShell:

powershell -ExecutionPolicy Bypass -NoLogo -NoProfile -Command ^
"Remove-Item alias:curl -ErrorAction SilentlyContinue; iwr https://raw.githubusercontent.com/athola/skrills/HEAD/scripts/install.ps1 -UseBasicParsing | iex"

Or cargo install skrills. See the installation guide for HTTP transport and service setup.

Everyday use

Skrills handles the loop of writing skills and keeping every CLI current. The common jobs:

Make your Claude skills work everywhere. Codex and Copilot are strict about frontmatter; Cursor uses its own rule format. Detect and fix the incompatibilities, then push to the other CLIs:

skrills validate --target both --autofix   # fix missing/invalid frontmatter and body
skrills sync-all                            # mirror everything to all four CLIs

Keep two environments in sync. Edit in one, mirror to another. File hashing preserves manual edits on both sides:

skrills sync --from cursor --to claude

Trim context-window cost. Surface your token-heaviest skills with reduction suggestions:

skrills analyze --min-tokens 1000 --suggestions

Watch what's loaded, live. cold-window continuously re-reads your plugins, skills, commands, and subagents, applying per-source token attribution and tiered alerts. Render it as a terminal TUI or a browser dashboard (or both):

skrills cold-window --tui                    # live TUI in this terminal (q / Ctrl-C to quit)
skrills cold-window --browser --port 8888    # same engine, browser dashboard at /dashboard

Keep it always-on in Zellij. Dedicate a pane to the TUI that respawns if it exits. Save as ~/.config/zellij/layouts/skrills.kdl and launch with zellij --layout skrills:

layout {
    tab name="cold-window" focus=true {
        pane command="bash" {
            // Loop respawns the TUI after a crash or reboot.
            args "-c" "until skrills cold-window --tui; do echo restarting...; sleep 2; done"
        }
    }
}

Already inside a Zellij session? Open it in a split without a layout file: zellij run -d down -- bash -c 'until skrills cold-window --tui; do sleep 2; done'.

Skrills cold-window TUI

Let other tools call Skrills. The MCP server exposes 36 tools (validation, sync, intelligence, research) over stdio or HTTP:

skrills serve --http 127.0.0.1:3000 --open

See the quickstart tutorial for a full walkthrough and the CLI reference for every command, including skill lifecycle tools (skill-deprecate, skill-rollback, skill-import, skill-score, skill-catalog).

Skrills Demo

Supported environments

Skrills syncs eight asset types across four CLIs. Each cell reflects what the adapter reads and writes today:

Asset Claude Code Codex CLI Copilot CLI Cursor
Skills Y Y Y Y
Commands Y Y -- Y
Agents Y -- Y Y
MCP Servers Y Y Y Y
Hooks Y -- -- Y
Instructions / Rules Y -- Y Y
Preferences Y Y Y --
Plugin Assets Y -- -- Y

A dash means that asset doesn't sync to that CLI, either because the CLI has no equivalent (Copilot CLI has no slash commands) or because the mapping isn't built yet (Cursor preferences). Plugin assets sync to Cursor's plugins/local/ so synced plugins appear installed, and stale entries are pruned automatically. See the sync guide for details.

CI integration

Validate skills on every pull request with the reusable GitHub Action:

- uses: athola/skrills/.github/actions/[email protected]
  with:
    targets: all
    strict: true
    path: skills/

Configuration

Persistent settings live in ~/.skrills/config.toml (precedence: CLI flags > environment variables > config file):

[serve]
auth_token = "your-secret-token"
tls_auto = true
cors_origins = "https://app.example.com"

See security docs for TLS setup and the FAQ for environment variables.

Documentation

Resource Description
User Guide Primary documentation (mdBook)
CLI Reference All commands with examples
Sync Guide Cross-CLI sync workflows
MCP Tutorial Server setup and tool reference
Architecture Crate graph and runtime flow
Security Auth, TLS, threat model
Changelog Release history

Limitations

  • Skrills validates and syncs files; it does not inject skills into prompts at runtime.
  • Session-history mining works best with recent Claude Code / Codex CLI versions.
  • LLM-based skill generation requires ANTHROPIC_API_KEY or OPENAI_API_KEY.

Contributing

make lint test --quiet

Builds on stable Rust. See the development guide and process guidelines. Update docs and tests with code. Report bugs with your OS, skrills --version, and logs (--trace-wire for MCP). For security, see the security policy.

License

MIT

Star History Chart