A curated collection of AI skills maintained by onData. Skills are tool-agnostic instructions that help AI assistants handle specific tasks consistently — without re-explaining your workflows every time.
A skill is a set of instructions that tells an AI assistant how to handle a specific task: which tools to use, in what order, and how to format the output. Once installed, it activates automatically when relevant.
For example, install the openalex skill and ask $openalex: Find recent papers on urban heat islands with open access PDFs — you'll get a structured list of works with titles, authors, DOIs, and direct download links.
The project follows an open source model: public repo, open contributions, organic growth.
Skills follow the Agent Skills open standard. If you're new to skills, start with a single one to get familiar with how they work:
npx skills install github:ondata/skills --skill openalexOnce installed, open your AI tool and try it: use $openalex skill to find recent papers on urban heat islands with open access PDFs — you'll get a list of works with titles, authors, DOIs, and direct PDF links.
Once comfortable, you can install the full collection:
npx skills install github:ondata/skillsOr install manually:
- Clone the repo:
git clone https://github.com/ondata/skills - Copy the skill folder (e.g.
skills/openalex/) into your AI tool's skills directory - Enable the skill in your tool's settings
If you use Claude Desktop, you can install some skills directly from the UI using .skill files. Not all skills are available this way — we publish .skill packages only for skills that have been tested and confirmed to work on Claude Desktop. Check the latest release to see which ones are available.
- Download the
.skillfile for the skill you want from the release assets (e.g.openalex.skill). - In Claude Desktop, open the skill installation wizard and load the file.
- After installation, open the skill settings and add any required domains to the Domain allowlist (see the skill's page for details).
The npx skills install commands above use skills.sh, a shell tool and currently the most convenient way to install and manage Agent Skills across AI tools.
Skills work best with CLI-based AI tools (Claude Code, Gemini CLI, OpenAI Codex, etc.) — the command-line context gives the agent full access to your environment and makes skill workflows faster and richer.
During installation you'll be asked:
- Which AI tools to make the skill available in (e.g. Claude code, OpenAI Codex, Gemini cli, Cursor, Windsurf, ecc.).
- User or project scope — user skills are available in every project on your machine; project skills are installed into the current repository and shared with anyone who clones it.
- Installation method — Symlink (recommended) creates a single canonical copy that all your agents share; run
npx skills updateto update. Copy creates independent copies per agent and is useful only when symlinks are not supported on your system.
| Skill | Description | Category | Eval |
|---|---|---|---|
| ipa | Look up PEC addresses and contacts for Italian public administrations via the IPA registry | Italy / PA | — |
| open-data-quality | Validate open data quality for CSV files and CKAN datasets; produces severity-ranked reports with a quality score | Open Data | — |
| openalex | Query OpenAlex API for scholarly works, authors, and PDF retrieval | Research | 🟡 78/100 |
Each skill has a test battery in evals/ to verify trigger behavior, process correctness, and output quality.
See evals/README.md for the full dashboard and instructions on how to run or contribute evals.
Each skill is a folder inside skills/ with the following layout:
skills/
└── your-skill-name/ ← kebab-case, matches the skill name
├── SKILL.md ← required — instructions + YAML frontmatter
├── scripts/ ← optional — executable scripts (Python, Bash…)
├── references/ ← optional — supporting documentation
└── assets/ ← optional — templates, fonts, icons
Every skill starts with a YAML frontmatter block:
---
name: your-skill-name
description: What it does and when to use it. Use when the user says "[trigger phrase]".
---
# Your Skill Name
## Instructions
…Rules:
name: kebab-case only, no spaces, no capitals — must match the folder namedescription: required — include both what the skill does and when to trigger it; max 1024 characters- No
README.mdinside the skill folder — all documentation goes inSKILL.mdorreferences/ - File must be named exactly
SKILL.md(case-sensitive)
Have a skill you find useful? Open a pull request.
- Fork the repo
- Create your skill folder under
skills/following the structure above - Make sure
SKILL.mdhas valid YAML frontmatter withnameanddescription - Add your skill to the catalog table in this README
- Open a PR with a short description of what the skill does
No formal review process yet — we'll figure it out as we grow.