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
Metadata
Release files for cuga-skills 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| cuga_skills-0.1.0.tar.gz | 13.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cuga_skills-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.7 kB
Release files / cuga_skills-0.1.0.tar.gz
| Download URL | cuga_skills-0.1.0.tar.gz |
|---|---|
| Size | 13.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
12b26a9a0f840558dc1a43e6d2cd4b9f98a961f7b115cd249e1841220908df12
|
|
BLAKE2b-256 checksum How to use checksums |
8568d5c1b06dfe7542d998d1403fe61b6e55e3c728a6eabe07efa9380829e81f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / cuga_skills-0.1.0-py3-none-any.whl
| Download URL | cuga_skills-0.1.0-py3-none-any.whl |
|---|---|
| Size | 15.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d037146fd9eb64be736f21372ef114c52ebd98f14e283a9fab5ffb348fe65e9a
|
|
BLAKE2b-256 checksum How to use checksums |
feab9d36f8447e4aa469e4d62328b7fd300460cceb3c6f174d102a52d862430e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Security for cuga-skills 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.