Skills overview
Pixie ships with a library of Claude Code skills that live in
.claude/skills/. They load automatically when you open the repo in
Claude Code. Each skill has:
- A YAML frontmatter declaring the skill’s
name,description, and allowed tools. - A body of instructions Claude Code follows when the skill fires.
Skills are the only sanctioned way to add or modify tools. Pixie’s own dashboard intentionally has no “install tool” button — that responsibility lives in Claude Code, where the validator can be invoked end-to-end before any new tool appears.
How skills get triggered
Claude Code routes user phrases to skills via the description field. The descriptions are written defensively: every skill says what it does and what it doesn’t do, with handoff hints to neighbouring skills. Example:
add-tool-from-repo— Clones a Git repository and wraps its entrypoint as a Pixie tool. Use when the user gives a Git URL and asks to add, clone, or wrap a repo. Do NOT use for .zip (import-tool), .py (wrap-local-script), .ipynb (add-tool-from-notebook), or prose (add-tool-from-description).
This gives the router (and the user) a clear sense of which skill to reach for.
Categories
| Category | Skills it includes |
|---|---|
| Add tools | from description, from repo, from notebook, from CLI, from OpenAPI, from paper, from Excel, from local script, from Streamlit/Gradio, from zip |
| Edit & maintain tools | update, rename, fork, archive/unarchive, remove, lint, inspect, organise, migrate format, revalidate-all |
| Data & secrets | set-secret, fetch-dataset-from-url/Kaggle/HuggingFace, import-dataset-from-local |
| Runs, outputs & exports | list-outputs, find-output, view-runs, label-run, star-run, export-run, export-run-as-report, export-as-format, bulk-export, copy-output-to, copy-to-clipboard, send-to-folder, register-export-target, open-artefacts-folder, clear-old-outputs, share-tool, import-tool |
| Workspaces & organisation | workspace-create, workspace-add-tool, workspace-remove-tool, tag-tool, cite-source |
| Diagnostics | debug-tool, pixie-status, pixie-doctor, view-logs, audit-disk-usage, validate-against-reference, list-tools |
A printable cheatsheet of trigger phrases is at Cheatsheet.
Core principles every skill obeys
- Validator-first. Every skill that modifies a tool ends with
uv run pixie validate <tool_id>and surfaces the report verbatim. A skill may not claim success ifoverall == "fail". - Confirmation gates for destructive ops.
remove-tool,rename-tool,clear-old-outputsall require explicit “yes” confirmation listing every side effect. - Refuse cleanly. Skills refuse what they can’t do and route the
user to the right skill.
add-tool-from-reporefuses .zip files and points atimport-tool. - Never leak secrets.
set-secretreads from stdin without echoing,lint-toolreports hardcoded-secret line numbers only (not the value),share-toolexcludes.envfrom zips,import-toolrefuses zips that contain.env. - Two-attempt cap on auto-fix.
debug-toolmakes at most two repair attempts before surfacing the failure and stopping. No token-burning loops. - Read-only diagnostics.
pixie-status,pixie-doctor,inspect-tool,lint-tool,audit-disk-usage,view-runs,view-logs,list-tools,list-outputs,find-outputall use onlyBash/Read/Glob/Grep.
Routing accuracy
The skill library is gold-tested against a 130-prompt routing benchmark. Current pass rate: 97.7%. The disambiguations the test specifically exercises:
add-tool-from-papervscite-source— former creates a NEW tool from a paper; latter annotates an EXISTING tool with a citation.debug-toolvsupdate-tool— former fixes broken validation; latter modifies a working tool.rename-toolvsfork-tool— former changes one ID; latter duplicates under a new ID.export-runvsbulk-export— former exports ONE run; latter exports MULTIPLE.validate-against-referencevsdebug-tool— former compares schemas; latter repairs failures.
If a prompt is genuinely ambiguous, the skill clarifies before doing any mutation. None of the skills are silent.
Tools available to skills
Per Pixie’s safety policy, every skill declares its allowed-tools in
frontmatter. Only the smallest set required for the job. No skill has
access to:
- Network beyond what
add-tool-from-reponeeds forgit cloneand the data-fetch skills for their specific source (Kaggle, HF, URL). - The
Agenttool — skills don’t spawn other skills programmatically. - The Pixie dashboard’s UI — every action goes through the CLI or the
HTTP API at
127.0.0.1:7860/api/....
Writing your own skill
The shipped skills are documented templates. If you want to add a
domain-specific skill (e.g. add-tool-from-my-companys-internal-spec):
- Create
.claude/skills/<name>/SKILL.md. - YAML frontmatter:
---name: my-skilldescription: One line describing when this fires and when it doesn't.allowed-tools: Bash, Read, Write, Edit, Glob, Grep---
- Body: numbered steps, refusal templates, validator handoff if appropriate.
- Keep it ≤ 200 lines. Long skills are unreliable.
Read the existing skills in .claude/skills/ for the patterns.