Skip to main content

Overview

Skills are user-facing commands that add new functionality to ntrp. They’re distinct from tools — skills are invoked with /skill-name in chat and can orchestrate multiple tool calls.

Builtin skills

SkillDescription
/add-modelRegister a custom LLM endpoint interactively
/add-skillCreate or remove a user skill
/add-toolCreate a user-defined tool

Skill locations

Skills are discovered from three locations (in order):
  1. apps/server/skills/ — builtin skills when developing from source; packaged as skills/ in installed builds
  2. .skills/ — project-level skills (per-directory)
  3. ~/.ntrp/skills/ — global user skills

Installing skills

Install a skill from GitHub:
curl -X POST http://localhost:6877/skills/install \
  -H "Authorization: Bearer $NTRP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source": "owner/repo/path/to/skill"}'
Or ask the agent:
Install the skill from github.com/user/repo/my-skill

Creating a skill

A skill is a directory containing at minimum a SKILL.md file:
my-skill/
├── SKILL.md       # Description, parameters, instructions
└── run.py         # Optional executable
The SKILL.md tells the agent what the skill does and how to execute it. The agent follows these instructions when the user invokes /my-skill. Restart the server after creating a skill manually so the registry rescans builtin skills, .skills/, and ~/.ntrp/skills/. Skills installed through the API are reloaded automatically.

Governance

Skill metadata is validated at registry load time. name must match the directory name and use lowercase letters, digits, and hyphens. description is required. Optional governance fields:
FieldMeaning
sourceWhere the skill came from, such as github:owner/repo/path or local.
versionVersion, date, commit, or release label reviewed by the user.
reviewed_atISO date for the last human review.
GET /skills/governance returns inventory, validation issues, and cleanup candidates. Cleanup candidates are read-only recommendations; ntrp does not remove skills unless the user explicitly uses the remove action.

Managing skills

CommandDescription
GET /skillsList installed skills
DELETE /skills/{name}Uninstall a skill