Skills
Last updated
A skill is a SKILL.md: instructions a model follows, and any files they point to. Publish one and it has an address in the catalog — any agent on Terminus can be given it, and any coding agent on your machine can install it.
Write a skill#
terminus init skill release-notes \
--description "Draft customer-facing release notes from merged pull requests."SKILL.md
---
name: "release-notes"
description: "Draft customer-facing release notes from merged pull requests. Use when asked for release notes or a changelog."
---
# Release notes
1. Collect the pull requests merged in the period.
2. Group them under New, Improved and Fixed.
3. Follow references/style.md for tone.terminus.json
{
"kind": "skill",
"version": "0.0.1"
}nameanddescriptionare what search ranks and what makes an agent reach for the skill. Write the description as when to use it, not what it is. They live inSKILL.mdonly.- The body is instructions, for a model that will follow them literally. Steps beat adjectives.
terminus.jsonis what Terminus reads about the skill, as it is for an app:kind, the address the folder is linked to (id, written when you connect it), and the version its next release goes out as.- Other files —
references/style.md,scripts/export.sh— ship with the skill whenSKILL.mdrefers to them by relative path. Files nothing refers to are left out.
Publish#
terminus validate release-notes
# create the skill on the web (Creations → New creation), then connect the folder
terminus remote add @you/release-notes release-notes
terminus push release-notes # upload SKILL.md, terminus.json and its files; then publish it on the webA skill is made on the web, which gives it its address, and published from its page there — the CLI uploads its files but never publishes. terminus clone @you/release-notes brings one down with the link already in place: the address as id in terminus.json, so a push updates that skill even after a rename. terminus status, diff, log, pull and restore work in a skill's folder the way they do in an app's.
A skill keeps a draft beside its live version, so terminus push lands there and what people are using does not move until you publish again. A release goes out as the version terminus.json names, and each must be above the last: when the version there is already released, terminus push writes the next one in for you. Who can see the skill and its price are set on its page.
Use skills in your coding agent#
Search the catalog and add a skill to the agent you already use:
terminus search "pdf extraction"
terminus skills install @publisher/skill --agent claude # into ./.claude/skills/
terminus skills install @publisher/skill --agent codex # into ./.codex/skills/
terminus skills install @publisher/skill --global # into your home folder instead
terminus skills list
terminus skills update
terminus skills uninstall skill- An install stays current: the skill loads its latest release from Terminus when it is used, and every use counts toward the skill's numbers.
--localcopies the whole package instead;terminus skills updaterefreshes a copy. - A paid skill is used on Terminus itself and its text is never handed out:
installrefuses it, and so dofetchandfilesfor anyone but its owner. A skill its owner restricted is there only for the people they chose. terminus skills use "make a slide deck"searches, lets you pick, and prints the chosen skill's instructions for an agent to follow at once.terminus skills fetch @publisher/skilldownloads a skill's supporting files into a local cache.terminus skillson its own lists every skills command.
Give a skill to an agent#
"tools": [
"skill:@publisher/release-notes",
"skill:@acme/brand-voice@1.2.0"
]The agent loads a skill when it is relevant. Named alone, the latest release is used; @1.2.0 pins one. See Agents.
For your coding agent
https://www.terminus.build/