Docs › Extending AstraCode
Skills
Teach the agent a procedure you want followed the same way every time.
A skill is a multi-step workflow in a folder: a release checklist, a review rubric, a deploy sequence. <name>/SKILL.md carries a name and description, and beside it goes whatever the workflow needs (scripts/, references/, assets/) referred to by relative path.
How they stay cheap
The agent sees only the catalogue, each skill's name and description, until it decides to use one. Then the skill's body and its folder are loaded, so relative paths inside it resolve. Twenty skills cost twenty lines until one is actually needed.
Where skills are found
In the project: .astracode/skills, .claude/skills, .cursor/skills and .agents/skills, in every folder of the workspace. In your home folder: the same four under ~. A skill may sit in a category folder (skills/frontend/review/SKILL.md). A SKILL.md over 200 KB is not loaded; the Customize page says so.
The folder names the skill. If the name in its SKILL.md differs, typing /that-name still finds it, and the Customize page shows both.
When two skills share a name, the nearer one wins: a project's over yours, yours over one that ships with AstraCode. The Customize page lists every skill that is hidden and the one used in its place.
A project's skills, like its rules, hooks, commands and agents, are read only in a trusted workspace. In the CLI a -p run trusts its folder, as Claude Code's does; a conversation, acp or review needs --trust, ASTRACODE_TRUST=1, or a folder you trusted once.
Controlling when one is used
| Frontmatter | Effect |
|---|---|
| paths: "**/*.tsx" | Offered only when a matching file is in play. |
| triggers: landing page, /\bweb ?app\b/ | Attached to the request without waiting to be asked, when it contains one of these phrases (matched as whole words) or matches a /regular expression/. Commas inside quotes or a /.../ are part of the item. |
| disable-model-invocation | Never chosen by the agent; only when you type /name. |
Commands
A command is a saved prompt: .astracode/commands/<name>.md (or .claude/commands, .cursor/commands), sent with /name. $ARGUMENTS is whatever followed the name, and the numbered placeholders, a dollar sign followed by a digit from 1 to 9, are its words in order (a quoted phrase counts as one). A command in a subfolder, .claude/commands/frontend/review.md, is /frontend:review. If a command and a skill share a name, /name runs the command and the skill is not attached; the Customize page names the clash.
Skills that ship with AstraCode
Some skills come with AstraCode, such as the infrastructure skill for Terraform, Kubernetes, Helm and Docker. They are attached for you when your request calls for them, or when the agent starts working in files they cover, so a ticket that only says "work on PLAT-266" still gets the right one. A skill of your own with the same name replaces the bundled one.
Skills or rules?
A rule always applies. Use one for *never commit to main*. A skill is loaded when relevant. Use one for *how we cut a release*.
All documentation
Get started
Agent
- Agent overview
- Approvals and permissions
- Plan mode
- What the agent can do
- Running commands
- Browser tools
- Checkpoints and undo
- Infrastructure as code
- Running several agents at once
- Subagents and background tasks
- Remote agents in GitHub Actions