skillgram

Skill governance for AI agents. One library, a contract that gates it, every agent reading the same thing.

skillgram is a registry of SKILL.md files that lives in one directory on disk, plus the layer that governs it: a contract every skill has to pass, provenance for each one, declared usage, and a ledger of what was propagated where. Claude Code, Codex, Cursor, Hermes, Reasonix, Gemini CLI, OpenCode, Kiro, Qwen Code, Aider and Copilot all read the same library.

Links are the mechanism; governance is the product. No LLM in the loop unless you ask for one, and no claim that it can see what an agent reads.

Install

pip install skillgram

Or from source, and then the whole machine in one idempotent command:

git clone https://github.com/Xhuk/skillgram
cd skillgram
python skillgram.py install --dry-run   # the exact commands, nothing written
python skillgram.py install             # harness -> hub -> MCP -> project scope

Python 3.9+, standard library only. Junctions on Windows, symlinks on macOS/Linux.

The model

One registry~/.agents/skills/<category>/<skill>/SKILL.md is the only real copy.
A contractlint --contract: trigger, hard rules, decisions, steps, output. Or it does not ship.
ProvenanceSKILLMETA.json: who wrote it, when, from where, and the hash that makes updates possible.
One link per skillEach harness gets a junction (or symlink) in its own skills/ folder.
Native skills untouchedA name collision is skipped and reported, never overwritten.
Project scopeuse + mount give a repo exactly its set, not the whole library.
Ask the hubskillgram mcp exposes 7 tools: search, missing, use, status, propose, touch, list.
Declared usagetouch + list --used: what an agent says it used, per project. It never claims to see what it reads.
IdempotentEvery command prints one JSON line and can run twice without changing anything.

What it is not

Not a prompt manager, not a memory store, not an embeddings index. It links and administers skills your agents already read, and it never guesses which harness is asking.

Read more