Skills are markdown files (SKILL.md) that inject domain-specific knowledge into an agent’s system prompt. They let you teach agents new capabilities without changing code.
Polpo implements the open skills.sh skill format — the same SKILL.md format used by Claude Code, Cursor, Windsurf, and other coding agents. Skills you create for Polpo work on any compatible agent, and vice versa.
How skills work
- A skill is a
SKILL.md file with YAML frontmatter (name, description, allowed tools)
- Skills live in
.polpo/skills/ at the project level
- You assign skills to individual agents — each agent can have different skills
- Assigned skills are automatically injected into the agent’s system prompt on every response
You don’t need to reference skills manually — Polpo handles the injection. See how the prompt is assembled for the full composition order.
---
name: frontend-design
description: Expert knowledge for UI/UX design decisions
tools: [browser_navigate, search_web]
tags: [design, frontend]
---
Focus on typography, color theory, spatial composition,
and motion design. Prefer system fonts for performance...
Managing skills
Install from GitHub
polpo skills add https://github.com/your-org/your-skills
This clones the repository into .polpo/skills/ and makes all skills available for assignment.
Create a skill
polpo skills create my-skill
Creates .polpo/skills/my-skill/SKILL.md with a template you can edit.
List skills
Assign to an agent
polpo skills assign frontend-design --agent designer
The agent will receive the skill content in its system prompt on the next interaction.
Unassign
polpo skills unassign frontend-design --agent designer
API
Skills can also be managed via the REST API:
| Method | Path | Description |
|---|
GET | /v1/skills | List all skills with assignments |
POST | /v1/skills | Create a new skill |
DELETE | /v1/skills/{name} | Delete a skill |
POST | /v1/skills/{name}/assign | Assign skill to an agent |
POST | /v1/skills/{name}/unassign | Unassign skill from an agent |
POST | /v1/skills/add | Install skills from a GitHub repository |
SDK
const skills = await client.getSkills();
await client.assignSkill("frontend-design", "designer");
await client.unassignSkill("frontend-design", "designer");
Skill structure
.polpo/skills/
├── frontend-design/
│ └── SKILL.md
├── api-security/
│ └── SKILL.md
└── data-analysis/
└── SKILL.md
Each skill is a directory containing a SKILL.md file. The frontmatter defines metadata; the body is the knowledge injected into the agent’s prompt.
Frontmatter fields
| Field | Type | Description |
|---|
name | string | Skill identifier |
description | string | Short description |
tools | string[] | Tools this skill is allowed to use |
tags | string[] | Optional categorization |
category | string | Optional grouping |
Skills are composable — assign multiple skills to the same agent to combine domain expertise.