Install

Skillshed

Pliers, wrenches and screwdrivers hanging on a pegboard in a workshop
claude in ~/Developer/acme/api
> add row level security to the invoices table

Skills available here (39)
  core:skill-router      find the right skill or pack
  core:find-skill        search, vet and pin new skills
  core:vet-skill         check a skill for prompt injection
  matt:tdd               test-first features and fixes
  matt:diagnosing-bugs   a loop for hard bugs
  supabase:supabase      on in this project
  supabase:supabase-postgres-best-practices
  … 32 more

● Using supabase:supabase
  Reading references/security-model.md

Vetted agent skills for Claude Code and Codex.

Packs switch on per project, so the right skills trigger.

curl -fsSL https://skillshed.munyamakosa.com/install/site | bash

How a skill gets in

supabase
supabase/agent-skills

found with
skillshed find supabase

First you find it, on skill-issue.in or skills.sh.

supabase
supabase/agent-skills

scan     0 high
medium   3 to read
verdict  ok with notes

Then it is scanned and read, every file.

supabase
supabase/agent-skills

scan     0 high
commit   c9be0e9
licence  MIT
tracks   main, weekly PR

Then it is pinned to a commit in the lock.

supabase
supabase/agent-skills

commit   c9be0e9
pack     supabase
acme/api on
elsewhere off

Then the projects that need it turn it on.

The wall80 skills, 6 packs

Install Skillshed

Why it is safe to keep

Pinned to a commit

Every upstream skill is locked to a commit and a content hash. Edit one by hand and CI fails.

"supabase": {
  "source": "supabase/agent-skills",
  "commit": "c9be0e9…",
  "pinned": false,
  "computedHash": "3c95d48…"
}

Scanned on the way in

Hidden Unicode, override phrasing, curl piped to a shell, secret reads and exfiltration hosts block the add.

high   hidden-unicode  SKILL.md:6
high   override        SKILL.md:7
high   pipe-to-shell   SKILL.md:8
high   exfil-endpoint  SKILL.md:9
Removed injected-skill: high findings.

Updates arrive as a pull request

Each week upstream changes land in one PR with compare links and the scan report. Nothing merges by itself.

Sync vendored skills  open
matt: bdfcb8f…4e01a2c
expo: 3d1ca4e…9f72b10
Check: pass
Prompt-injection scan: 0 high

Your agent reads it too

The vet-skill skill walks your agent through every file as data, and ends with a verdict that quotes the lines.

vet-skill  eas-simulator
asks to work without asking again
  references/run-your-app.md:230
verdict: ok with notes

On only where it is needed

A project turns its packs on in files you commit, so every machine and teammate gets the same set.

.claude/settings.json
"enabledPlugins": {
  "supabase@skillshed": true
}
.codex/config.toml
[plugins."supabase@skillshed"]
enabled = true

Found even when it is off

The router knows every pack. If a task needs one that is off, it reads the skill and tells you how to turn it on.

core:skill-router
task: build an app store release
match: expo / eas-app-stores
expo is off in this project
turn it on: skillshed use expo

Bring your own tools

Just for you

Start a skill of your own, or add any skill from GitHub or skills.sh for yourself only. It is scanned and pinned like the shared ones, lives in your own skill folders, and works in Claude Code and Codex.

$ skillshed new release-notes "Use when writing release notes"
created ~/.agents/skills/release-notes/SKILL.md
$ skillshed add anthropics/skills@frontend-design
0 high, 0 medium across 1 skill
added frontend-design @ dbd4588
$ skillshed mine
frontend-design  anthropics/skills @ dbd4588 tracks main
release-notes    (yours)

Questionsasked plainly

What is an agent skill?

A skill is a folder with a SKILL.md file: instructions, and sometimes scripts, that an AI coding agent loads when a task matches the skill's description. Claude Code and Codex both read the open Agent Skills format, so the same skill works in both.

What does Skillshed add?

It gathers vetted skills into one plugin marketplace that Claude Code and Codex both understand, installs it with one command, keeps the always-on list short so skills keep triggering, and pins every third-party skill to a commit after scanning it for prompt injection.

Why are most packs off?

Agents read every enabled skill's description on every request, within a budget of about 1 to 2% of context. Past that, skills quietly stop triggering. Core and Matt Pocock's skills stay on; stack packs switch on only in projects that use them, with skillshed use supabase.

Can I add my own skills?

Yes. skillshed new my-skill "Use when ..." starts one, and skillshed add owner/repo@skill adds any skill from GitHub or skills.sh for you only. Both go into your own skill folders for Claude Code and Codex, scanned and pinned.

How do I share a skill with everyone?

Check it with skillshed vet owner/repo@skill, then submit it on GitHub. A workflow scans it and replies on the issue; a person reads every file before pinning it into a pack.

Is it safe?

No scanner can prove a skill is safe. Skillshed narrows the risk: every upstream skill is pinned to a commit and content hash, scanned for hidden text, override phrasing and data exfiltration, and only updated through pull requests a person merges.

How do I update or remove it?

skillshed update pulls the latest skills into both tools. To remove it, run claude plugin marketplace remove skillshed and codex plugin marketplace remove skillshed, then delete ~/.skillshed.

What does it cost?

Nothing. Skillshed is MIT licensed, and the skills it carries keep their own open-source licences.

An empty pegboard

One command, every machine

Clones Skillshed to ~/.skillshed, adds it to Claude Code and Codex with auto-update, and gives you the skillshed command. Run it again to update.

curl -fsSL https://skillshed.munyamakosa.com/install/site | bash
A wooden garden shed in a back yard