cue-skills
Right skill, right moment.
Developers collect skills from GitHub (caveman, ponytail, superpowers, frontend-design and hundreds more), but they rarely get used when they should:
- You forget to invoke them.
- You don't know which of 200 installed skills fits the task.
- The agent chooses poorly once hundreds of skill descriptions crowd its context.
- The agent forgets too. Ten turns in, or after a context compaction, it drifts back to its defaults.
Cue takes skill choice out of your memory and the agent's judgment:
- It applies your rules:
always,never, andwhenconditions on prompt words, files and project markers. - It injects the matching skills automatically through each agent's hooks or plugins.
- It re-injects them after compaction and keeps a one-line reminder on every prompt, to fight drift.
- It shows what it injected and why (
cue-skills why).
Picking skills by meaning and measuring token savings are planned.
Adapters for Claude Code, Antigravity, OpenCode, OpenClaw, Codex, Gemini CLI and Cursor; see Supported surfaces.
Install
npm i -g cue-skills && cue-skills init
init detects the agents installed on your machine, registers Cue with each, and creates ~/.cue/rules.yaml from a commented template if the file is missing. It needs Node 18 or later. A PyPI package (pip install cue-skills) runs the same CLI through npx, but PyPI users must still npm i -g cue-skills before running cue-skills init, because init refuses to run from the npx cache.
Rules
Rules live in ~/.cue/rules.yaml (global) and <project root>/.cue/rules.yaml (project). Project lists append to global lists, and duplicates are dropped. A project's .cue/rules.yaml can inject skill text, so it is ignored until you run cue-skills trust in that project (see Security and trust).
always: [caveman, ponytail] # active every session, in priority order
never: [some-skill] # never injected; wins over everything
when:
- prompt: [design, ui, landing page] # case-insensitive word or phrase match on the user prompt
use: [frontend-design]
- files: ["**/*.tsx", "**/*.css"] # glob match on files the agent reads or edits (Claude Code only)
use: [frontend-design]
- project: [next.config.js] # marker file exists at the project root
use: [frontend-design]
skillDirs: [~/my-skills] # extra directories to scan
Skills are found in the standard skill folders of each agent, in installed Claude Code plugins, and in skillDirs. Use plugin:name to pick a skill from a specific plugin.
files globs: ** matches across directories only as a whole path segment (src/**/x.ts). Inside a segment, as in src/**.ts, it acts like *. A trailing a/** also matches a.
Supported surfaces
A surface is one config home. Products that share a config home between their CLI and IDE need one adapter. Tested means checked against the real agent; experimental means built from the agent's documentation.
| Product | Surfaces | Status |
|---|---|---|
| Claude Code | CLI, desktop Code tab, VS Code and JetBrains extensions | tested (unit), live pending |
| Antigravity | agy CLI, App and IDE (shared hooks file) | tested (agy CLI); App/IDE experimental |
| OpenCode | TUI/CLI, desktop app | tested |
| OpenClaw | gateway, every channel | tested |
| Codex | CLI, IDE extension, desktop app | experimental |
| Gemini CLI | CLI | experimental |
| Cursor | IDE, cursor-agent CLI |
experimental |
Codex requires you to trust the new hooks once through /hooks. Antigravity does not expose the prompt text, so prompt rules do not apply there.
Commands
cue-skills init [--only id,id]: install into detected agents. Ids: claude, codex, gemini, antigravity, cursor, opencode, openclaw.cue-skills uninstall: remove Cue from every agent it was installed into.cue-skills scan: rebuild the skill catalog and print counts per root.cue-skills list: print the catalog.cue-skills status: show the project-rules trust state, rule errors, duplicate skill names, active skills for the current directory, unresolved names, and each agent's state.stalemarks an OpenCode or OpenClaw plugin whose engine path no longer exists; runinitagain to fix it.cue-skills why [-n N]: print recent injections from~/.cue/log.jsonl.cue-skills sync: write the always-skills into./AGENTS.md(and a Cursor rule when.cursorexists). It refuses symlinks and anything outside the project.cue-skills trust [--revoke]: trust (or stop trusting) the current project's.cue/rules.yaml.
Set CUE_DISABLE=1 to turn injection off without uninstalling.
Security and trust
Anything a repository controls is untrusted until you opt in.
- Project rules (
<project root>/.cue/rules.yaml) are ignored until you runcue-skills trustin the project. Trust is stored in~/.cue/trusted.jsonas a hash of the file, so any edit revokes it; runtrustagain after reviewing the change.cue-skills trust --revokeremoves it, andcue-skills statusshows the state. The file must be a regular file you own, at most 64 KB. - Project skill folders (
.claude/skills,.agents/skills,.opencode/skills) are scanned only in a trusted project. ProjectskillDirsmust be relative and stay inside the repo. Symlinks inside the project are never followed, and aSKILL.mdover 256 KB or that is not a regular file is skipped. - Project rules cannot override your own: a project skill never replaces a skill named in your global rules, and a project
nevercan only remove skills that project added. - The project root is the nearest
.gityou own, never at or above your home directory. synconly writes regular files inside the project.- Hooks fail open: any error means no injection, never a blocked agent.
- Cue makes no network calls.
~/.cueis private to your user (mode 0700; state, log and trust files 0600).
Uninstall
cue-skills uninstall && npm rm -g cue-skills
Config edits keep a .bak copy of the original file. Your own hooks are left untouched. The .bak copies hold the original config as it was, including any secrets in it. Cue never deletes them; remove them yourself after uninstalling.
Credits
Created by Nipun Kumar.
License
MIT
Metadata
Release files for cue-skills 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cue_skills-0.1.0.tar.gz | 4.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cue_skills-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.9 kB
Release files / cue_skills-0.1.0.tar.gz
| Download URL | cue_skills-0.1.0.tar.gz |
|---|---|
| Size | 4.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
91ba35479a686a7bb6a8b9857382821190263b419ec2f44a062883e8f05823f6
|
|
BLAKE2b-256 checksum How to use checksums |
4bab7e4a01ef54ff7dfec2afe2d115a0955422d640fd7b87021994a2054b7f0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / cue_skills-0.1.0-py3-none-any.whl
| Download URL | cue_skills-0.1.0-py3-none-any.whl |
|---|---|
| Size | 5.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9d62e4ace33ac9d7174e4f04be804333a66e0f52920fd51cf21a5da8861ef21d
|
|
BLAKE2b-256 checksum How to use checksums |
2ceb55b2e0c66316e8e8ec83e939f06436349ad6159dffdec6d490adff10b685
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|