> ## Documentation Index
> Fetch the complete documentation index at: https://internal.september.wtf/llms.txt
> Use this file to discover all available pages before exploring further.

# Skills endpoints

> List, create, update, and delete custom skills.

A skill is a reusable, named capability the agent can invoke — typically a
prompt template plus optional helper scripts. The Engine ships a small
catalog of platform skills (summarizer, fact-checker, code-reviewer, etc.)
and lets you add your own. Custom skills live in the brain database and
travel with memory exports.

## GET /skills

List all skills available in the current Engine, platform and custom.

```json theme={null}
[
  {
    "name": "summarizer",
    "description": "...",
    "source": "platform" | "custom",
    "category": "...",
    "confidence": 0.95
  }
]
```

## GET /skills/{name}

Get the full definition of one skill.

```json theme={null}
{
  "name": "code-reviewer",
  "description": "...",
  "category": "engineering",
  "prompt_template": "...",
  "scripts": { "main.py": "..." },
  "capabilities": ["..."]
}
```

`404` if no skill with that name.

## POST /skills/create

Create a new custom skill.

```http theme={null}
POST /skills/create
Content-Type: application/json

{
  "name": "tweet-drafter",
  "description": "Draft a tweet in the user's voice.",
  "category": "communication",
  "prompt": "You are drafting a tweet...",
  "capabilities": ["writing"],
  "scripts": { "post.py": "..." }
}
```

| Field          | Type   | Required | Purpose                                         |
| -------------- | ------ | -------- | ----------------------------------------------- |
| `name`         | string | yes      | Unique name. Lowercase with hyphens.            |
| `description`  | string | no       | Short summary.                                  |
| `category`     | string | no       | Grouping (e.g. `communication`, `engineering`). |
| `prompt`       | string | no       | Prompt template. Required if no scripts.        |
| `capabilities` | array  | no       | Tags.                                           |
| `scripts`      | object | no       | Map of filename → contents.                     |

Returns the created skill.

## PUT /skills/{name}

Update fields of an existing custom skill. Same body shape as `create`,
all fields optional. Cannot rename — delete and recreate to rename.

## DELETE /skills/{name}

Delete a custom skill. Platform skills cannot be deleted; the call returns
`403`.

```json theme={null}
{ "status": "deleted", "name": "tweet-drafter" }
```

## See also

* [Defining tools](../../agents-and-tools/defining-tools) for the
  difference between tools, skills, and MCP connectors.
