Skills
Reusable instructions that agents find and load when they need them.
A skill is a set of reusable instructions that stays available between conversations. When an agent finds a task that agrees with a skill, it loads the skill and follows its steps. Thus you do not have to give the same instructions again.
dashsquad includes a library of skills in its built-in plugins, for example skills for research, drafts, summaries and code review. Agents can also install more skills from the public skill ecosystem, in the chat or from Desktop. In Telegram and WhatsApp, users can list and run skills with slash commands.
Agents also learn skills automatically from their work. Refer to Learned skills.
How skills work
Each skill is a folder with a SKILL.md file. The file has metadata (frontmatter) and instructions (content).
my-skill/
SKILL.md ← metadata and instructionsThe system prompt of the agent contains a short index of the available skills. The index gives only the name, the description and the file location of each skill. When the agent finds a skill that agrees with the task, it loads the full instructions. It uses the load_skill tool or reads the SKILL.md file.
This method uses few tokens. The agent always sees the available skills, but it loads only the skills that it needs.
System prompt structure
The HQ makes the system prompt of an agent from these parts, in this sequence:
- Your system prompt: the prompt that you set when you deployed the agent.
- Memory: the memory index of the agent and the memories that the HQ recalls. Refer to Memory.
- Skill index: a list of the available skills, with the name, the description and the file location of each skill.
The HQ adds the skill index only when the agent has the read tool.
Skill format
A SKILL.md file has YAML frontmatter, then Markdown content:
---
name: deploy-staging
description: Use when you deploy to the staging environment on AWS
trigger: when the user mentions a staging deploy
tools: [bash, read]
tags: [deployment, aws]
---
## Deploy to staging
1. Make sure that the current branch is clean: `git status`
2. Run the deploy script: `./scripts/deploy-staging.sh`
3. Look at the deployment dashboard at https://staging.example.com
4. Tell the user the status of the deploymentFrontmatter fields
| Field | Required | Description |
|---|---|---|
name | Yes | The skill name (lowercase letters and hyphens). It is also the folder name. |
description | Yes | When to use the skill. The skill index shows it, so write it to help the agent find the skill. |
trigger | No | Phrases or conditions that start the skill. The HQ keeps this value, but it does not put it in the skill index. |
tools | No | The tools that the skill needs, for example [bash, read]. For information only. |
tags | No | Categories to sort skills. |
model | No | A model for this skill. The HQ keeps this value but does not use it. |
context | No | Set to fork to run the skill in a sub-agent. The HQ keeps this value but does not use it. |
allowed-tools | No | The tools that the skill can use. The HQ keeps this value but does not use it. |
dependencies | No | Other skills to load with this skill. The HQ keeps this value but does not use it. |
Write the description as an answer to the question "When must an agent use this skill?". The agent reads it to decide if it loads the skill. Be specific: "Use when you deploy to staging on AWS" is better than "Deployment helper".
Skill storage
The HQ finds skills in three locations. If two skills have the same name, the HQ uses the skill from the first location in this list:
- The managed skills folder of the agent.
- The extra skill folders that you add.
- The skills of the plugins that the agent can use.
Managed directory
Each agent has a managed skills folder outside its workspace:
~/.dash/gateway/skills/{agent-name}/For an HQ that Desktop starts, ~/.dash/gateway means ~/.dashsquad/<hq id>. See Data folders.
The HQ creates this folder automatically. You manage the skills in it from Desktop, and the agent can create skills in it (if you let it). The skills that you install also go into this folder.
Extra skill folders
On the Skills tab of the agent in Desktop, you can add more folders where the HQ looks for skills. Open Skill directories, type one folder on each line, and click Save paths.
If a folder is in the workspace of the agent, the file tools of the agent can read and change the skills in it. Use this option if you want to keep skills together with your project files.
Built-in plugins
dashsquad includes a library of skills for assistant, development, creative and communication tasks. These skills come from the built-in plugins dash-assistant, dash-comms, dash-creative, dash-dev and dash-meta. All agents can use them by default. You cannot change these skills.
To replace one of these skills, put a skill with the same name in the managed folder of the agent. To remove a full plugin from an agent, select only the plugins that the agent must see in the Plugins card on the Configuration tab. Refer to Plugins.
Squad member skill creation
An agent can create its own skills if it has the create_skill tool. You must turn on this tool. Add create_skill to the tool list of the agent when you deploy it.
If a user says, for example, "remember how to deploy to staging", the agent uses create_skill. The tool writes a SKILL.md file to the managed folder, and the skill is available in future conversations.
Skills that an agent creates:
- Go into the managed folder, outside the workspace.
- Have the badge Squad member in Desktop.
- Cannot replace a skill that exists. The agent can only create new skills.
- Can be read, changed or deleted in Desktop.
Turn on create_skill only for agents that you trust. With this tool, the agent writes persistent instructions that change how it works in the future.
Learned skills
Agents also learn skills automatically. After a turn where the agent did real work, the HQ does a short review. It asks the model of the agent one question: did this session teach something that the agent must remember? The HQ writes each lesson into a skill that the agent owns. The next conversation then starts with this knowledge.
This feature is on by default. You do not have to turn it on.
What gets learned
A lesson is one short instruction that is complete by itself. It can be a method that worked, a correction from you, or a problem to prevent next time. Corrections are the best source. If you tell the agent "always use X here, never Y", that becomes a rule that stays. The review puts lessons into skills for a type of task, not for one job. Thus the agent gets a small number of useful skills, not a long list of almost equal skills.
The review does not record some items that look like lessons but become wrong later:
- Problems with your setup, for example a missing program, a key that is not set, or a path that is only incorrect on this computer. You repair these problems, so they are not rules.
- Statements such as "This tool is broken." The agent would read that statement for months after the real cause was repaired. If a setup problem caused a failure, the lesson is the repair, not the failure.
- Errors that went away on their own. If a second try worked, the lesson is to try again.
- Jobs that occur one time. A summary of one document is not a type of work for a skill.
The agent gets the instruction to never record sensitive data. As with memory, this is an instruction to the agent, not a filter in dashsquad. Do not paste passwords or keys into the chat.
How you see a lesson
When the review records a lesson, a small chip shows in the conversation:
| Chip | Meaning |
|---|---|
| Learned: and the skill names | The review created a new skill. |
| Updated skill: and the skill names | The review added to a skill that exists. |
| "Remembered: …" | The review saved a memory. Refer to Memory. |
The chip is part of the conversation, so it stays there when you scroll back or open the conversation again. Desktop, the iOS app and the web app show the chip.
Where it lives
Learned skills go into the managed folder, the same as other skills that the agent creates. They have the badge Squad member in Desktop. You can read, edit or delete them there. Next to each learned skill, a lessons.json file keeps the lessons one by one.
When you open a learned skill in Desktop, you see each lesson with two counts. The counts show how many times the review found it helpful (↑) and harmful (↓). Each lesson has a Retire button. In the iOS app and the web app, you can only read the skill. To change lessons, use Desktop.
The review writes only to skills that the agent created. It does not change your skills, installed skills or plugin skills. If the agent learns something about one of those skills, it records the lesson in a companion skill. The companion lessons come together with the original skill when the agent loads it.
Each agent can have a maximum of 30 learned skills. Each learned skill can keep a maximum of 50 lessons, and each lesson can have a maximum of 500 characters. When a skill is full, the lesson with the lowest score retires.
Correct a lesson
Each lesson has a count of the times that the review found it correct and the times that it found it wrong. If a lesson is found harmful 3 times and never helpful, it retires automatically. The HQ does not delete retired lessons. It keeps them in the file, so you can see what occurred and put a lesson back manually.
To correct a lesson immediately, open the skill in Desktop and click Retire. The lesson stays in the file, but the agent does not propose it again.
Settings
You set these values through the Management API (skills.learning and skills.minToolCalls in the agent configuration). The apps do not show them.
| Setting | Default | What it does |
|---|---|---|
learning | auto | auto and on turn on learned skills. off turns them off. |
minToolCalls | 3 | The minimum number of tool calls in a turn before the HQ reviews it. The HQ does not review a turn that is only a conversation, so that turn costs nothing. |
The HQ also reviews a turn with fewer tool calls if your message looks like a correction. For example, it looks for words such as don't, never, always, instead of, remember or from now on. These corrections are the most useful lessons, and the turns are usually short.
Each review costs one more model call, on the model of the agent.
The review applies only to turns that complete normally. The HQ does not review a turn that fails or that you cancel, because it has no result to learn from. The HQ also does not review the turns of sub-agents.
Install skills from the ecosystem
Skills use the open SKILL.md standard. Thus an agent can install skills from the public ecosystem, for example anthropics/skills, openai/skills or NousResearch/hermes-agent. Give the agent the install_skill tool, then ask it in the chat:
"Install the arxiv skill from NousResearch/hermes-agent"
You can install skills from these sources:
- Git:
git:owner/repo[/subpath][@ref], for examplegit:NousResearch/hermes-agent/skills/research/arxiv@main. - URL: a direct link to a
SKILL.mdfile. - Local path: a folder on the HQ computer.
A Git source can keep its SKILL.md in a subfolder. If the source has no SKILL.md at its root, the installer searches its subfolders. If it finds the same skill in more than one folder, it uses skills/ first, then .claude/skills, then .agents/skills. If the source has more than one skill, the install fails. The error lists each skill with the source that installs only that skill. Use one of these sources.
The installer refuses these sources:
- A source with no
SKILL.md. The error isNo SKILL.md found in <source> (searched the root and its subfolders). A skill needs a SKILL.md file. - A
SKILL.mdthat is a symbolic link. The installer reads only usual files and never follows links. A subpath that goes outside the source is also refused. - A Git ref that starts with
-, for skills and for plugins. The error isInvalid git ref "<ref>": a ref must not start with "-".
Installed skills go into the managed folder. Desktop shows them with the badge Managed.
Install skills only from sources that you trust
An installed skill gives instructions that the agent follows. Two safeguards decrease the risk:
- Skills are text only. The installer keeps only the Markdown files and removes all scripts, so an installed skill cannot run code on your HQ.
- Each install goes through a security scan of its
SKILL.md. The scan refuses skills with prompt injection, secret exfiltration or destructive instructions. If the scan cannot run, the install fails. If the scan finds only suspicious content, the install continues with a warning.
Turn on install_skill only for agents whose users you trust.
To install a skill again, remove it first. Use the remove_skill tool to remove a skill that the agent installed or created. Plugin skills cannot be removed.
Chat commands
In Telegram and WhatsApp channels, users can use these commands:
| Command | What it does |
|---|---|
/skills | Lists the available skills of the agent |
/skill:<name> [input] | Runs one skill, for example /skill:summarize-thread |
/<plugin>:<command> [input] | Runs a plugin command |
/help | Shows the available commands |
Usual language also works, for example "what skills do you have?" or "install the arxiv skill from …", if the agent has the related tools.
Manage skills in Desktop
The agent page has a Skills tab where you manage the skills of the agent:
- See all the skills that the agent can use, each with a badge: Managed, Squad member or Plugin. Click a skill to read its
SKILL.md. If there are more than five skills, a filter box shows. - Create a skill: click + Create, then give a name, a description and the content.
- Edit a skill in the managed folder: click Edit. You cannot change plugin skills.
- Install a skill from a git repository, a URL or a local path: click + Install. The tab tells you: Installs are text-only and security-scanned; dangerous skills are refused.
- Remove a skill: click Remove.
- Add skill folders: open Skill directories and click Save paths.
Changes apply to the next message of the agent. You do not need to restart.
The deploy wizard and the Tools card also have a Skills tool group. This group controls what the agent itself can do in the chat: Create Skill, Install Skill and Remove Skill.
Skill tools reference
load_skill
Loads the full instructions of a skill into the conversation. It is always available when the agent has skills. The agent uses it automatically when it finds a skill in the index that agrees with the task.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | The name of the skill to load |
create_skill
Creates a skill in the managed folder. The agent gets this tool only if it is in the tool list of the agent.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | The skill name (lowercase letters and hyphens, maximum 64 characters) |
description | string | Yes | When to use the skill |
content | string | Yes | The full skill instructions |
trigger | string | No | Phrases or conditions that start the skill |
tools | string[] | No | The tools that the skill needs |
tags | string[] | No | Categories |
model | string | No | A model for the skill (kept, not used) |
context | string | No | "fork" to run in a sub-agent (kept, not used) |
allowed_tools | string[] | No | The tools that the skill can use (kept, not used) |
dependencies | string[] | No | Related skills to load together (kept, not used) |
install_skill
Installs a text-only skill from a git repository, a URL or a local path, after a security scan. The agent gets this tool only if it is in the tool list of the agent.
| Parameter | Type | Required | Description |
|---|---|---|---|
source | string | Yes | git:owner/repo[/subpath][@ref], an https URL to a SKILL.md, or a local path |
name | string | No | A different name for the installed skill |
remove_skill
Removes a skill from the managed folder. It cannot remove plugin skills. The agent gets this tool only if it is in the tool list of the agent.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | The name of the skill to remove |