Documentation v0.3.2
Earshot / Extending

Skills and slash commands

Load focused instructions and reusable prompts.

Reviewed for 0.3.2 · Latest documentation

Skills#

.earshot/skills/<name>/SKILL.md, or <config>/skills/<name>/SKILL.md. A single <name>.md works too.

---
description: how we cut a release here
allowed-tools: read, grep, bash
---

Run `bun run release`, then …

The system prompt carries only the index — name and description. The body is loaded when the model decides the task is one the skill covers, which is why a skill is not just more system prompt.

A skill is text, and text is not an action. It can describe running a command; it cannot run one, and it cannot approve one. allowed-tools is intersected with what the session already offers, so it only ever removes tools — and it can never remove ask_user, since a skill that narrowed away the ability to ask would switch off "ask rather than guess" by writing a list. The narrowing is cleared when the turn ends.

A skill is named after its file, never after its frontmatter, and your own skills win a name collision with a project's. A repository adding a skill is one thing; a repository redefining one you wrote is another.

Slash commands#

.earshot/commands/<name>.md, or <config>/commands/<name>.md.

---
description: review a pull request
---

Review PR $1. Focus on $ARGUMENTS.

Typing /name args expands the file and runs it as an ordinary prompt. $ARGUMENTS is everything after the name; $1$9 are the words. It is not a second route to the tools: whatever the file asks for goes through the same turn and the same gate as anything typed by hand.

/skills lists both skills and commands, with where each came from.

Something unclear?Suggest a correction on GitHub ↗