Writing Skills
Skills are markdown files that teach the agent how to handle specific tasks. They are the simplest way to extend Denkeeper.
Anatomy of a skill
Create a file in ~/.denkeeper/skills/:
+++
name = "expense-tracker"
description = "Track and categorize expenses"
version = "1.0.0"
triggers = ["command:expense"]
[requires]
tools = []
+++
## Instructions
When the user reports an expense:
1. Extract the amount, currency, and category
2. Confirm the details with the user
3. Store it in your memory for the weekly summary
## Categories
- Food & dining
- Transport
- Entertainment
- Utilities
- Other
## Response format
Always acknowledge with: "Logged: $AMOUNT for CATEGORY"
Frontmatter fields
| Field | Required | Description |
|---|---|---|
name | Yes | Unique identifier |
description | Yes | What the skill does (shown in Telegram command menu for command triggers) |
version | No | Semantic version |
triggers | No | When to activate (see below) |
requires.tools | No | MCP tools this skill needs |
Trigger types
command:name— activates on/nameTelegram commandschedule:pattern— activates on matching scheduler runs- No triggers — always included in the system prompt
Agent-specific skills
Place skills in an agent’s persona directory to scope them:
~/.denkeeper/agents/work-assistant/skills/standup.md
Agent-specific skills are merged with global skills. Same-name agent skills override global ones.
Testing a skill
- Create the skill file
- Restart Denkeeper (skills are loaded at startup)
- If the skill has a
command:trigger, send the command in Telegram - Check that the agent follows the instructions