cuga-skills
Curated skills for CUGA agents, plus a CLI that installs them into .cuga/skills.
uvx cuga-skills add # pick from the catalog interactively
uvx cuga-skills list # see what's available and what's installed
CUGA discovers skills from .cuga/skills/**/SKILL.md by default, so an installed skill is available the next time the agent starts — no config change needed.
Commands
| Command | What it does |
|---|---|
cuga-skills list [QUERY] |
Show the catalog, marking installed / modified / update available |
cuga-skills add [NAMES...] |
Install skills. With no names, opens a multi-select picker |
cuga-skills update [NAMES...] |
Re-install. With no names, updates everything installed |
cuga-skills remove NAME |
Delete an installed skill |
Options: --dir PATH to install somewhere other than ./.cuga/skills, -g/--global for ~/.config/cuga/skills, --ref REF to install from a specific git ref of this repo, --force to overwrite.
Installed skills are recorded in .cuga/skills-lock.json (next to the install directory), including the content hash of each skill so list can tell you when a skill was changed locally or updated upstream.
Catalog
| Skill | What it does |
|---|---|
hello-world |
Smallest valid skill — checks that skill loading and code execution work |
csv-summary |
Profiles a CSV: column types, missing values, ranges, frequent values |
slide-outline |
Turns a markdown outline into a .pptx |
Contributing a skill
Open a PR adding skills/<name>/SKILL.md. That is the only publishing path — there is no registry service and no account to create.
skills/my-skill/
SKILL.md # required
scripts/ # optional companion files, copied as-is
SKILL.md starts with YAML frontmatter:
---
name: my-skill # must match the directory name
description: Use when ... # shown in the catalog listing; say when to use it
requirements: # optional; CUGA installs these in its sandbox
- python-pptx
tags: # optional
- documents
---
# My skill
Instructions for the agent...
Then regenerate the index and run the tests:
uv sync
uv run cuga-skills build-index
uv run pytest
CI re-runs build-index --check, so a PR with a stale skills/index.json fails.
What makes a good skill here
This catalog is for end-user productivity — documents, data, research, reporting. Skills for building CUGA agents (adding tools, authoring policies, debugging trajectories) belong in cuga-harness-kit instead.
A useful description says when to use the skill, not what it is: reviewers use that line to decide whether the agent will pick the skill up at the right moment.
How installation works
- Fetch
skills/index.jsonfrom this repo (cached for an hour under~/.cache/cuga-skills). - Download the repo tarball for
--refand extract only the requested skill folders. - Verify each folder's content hash against the index; a mismatch aborts before anything is written.
- Copy into the target directory and record it in
skills-lock.json.
No server, no auth. If GitHub is unreachable, the CLI falls back to the catalog copy bundled in the installed wheel.
Releasing the CLI
Bump version in pyproject.toml, tag vX.Y.Z, push the tag — release.yml builds with uv build and publishes via PyPI trusted publishing. Adding or editing a skill needs no release: the CLI fetches skills from the git ref at install time.
License
Apache-2.0
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cuga_skills-0.1.0.tar.gz.
File metadata
- Download URL: cuga_skills-0.1.0.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12b26a9a0f840558dc1a43e6d2cd4b9f98a961f7b115cd249e1841220908df12
|
|
| MD5 |
b7dc19000d4560ae1cacd71786b7ea96
|
|
| BLAKE2b-256 |
8568d5c1b06dfe7542d998d1403fe61b6e55e3c728a6eabe07efa9380829e81f
|
File details
Details for the file cuga_skills-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cuga_skills-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d037146fd9eb64be736f21372ef114c52ebd98f14e283a9fab5ffb348fe65e9a
|
|
| MD5 |
6c9585458c74b61206dc02233f3470cf
|
|
| BLAKE2b-256 |
feab9d36f8447e4aa469e4d62328b7fd300460cceb3c6f174d102a52d862430e
|