Teach it once. Every agent knows it.
A Skill is a tested playbook your agents load at runtime: a plain SKILL.md file with the procedure, the safety rules, and the triggers that tell an agent when to reach for it. Author it once, enable it anywhere.
Watch a skill get matched.
You never invoke a skill by hand. The agent reads your request, matches it against every enabled skill’s trigger phrases, and loads the winning playbook. Pick a task:
Without skills
With skills
SKILL.md file. Enable it on any agent. When the procedure changes, you update one file and every agent that has it enabled picks up the change.Every agent, same playbook.
When the procedure changes you update one file. Every agent that has it enabled picks up the change on its next run.
Update the playbook in one file. Every agent that has it enabled learns it on the next run: no copy-paste, no version drift, no missed instruction block.
skills · one file · single source of truthOne file. Five jobs.
Everything a skill is lives in one Markdown file: YAML frontmatter on top, the playbook below. Click a zone to see what it does.
name and description are the only required fields; without them the file fails validation and shows an invalid badge. The name becomes the catalogue slug: lowercase, hyphens, and ideally a namespace prefix (acme-gmail-summarise) so it never collides with a skill that arrives later.Three source labels, one catalogue.
Every skill card carries a source label telling you where it came from and what you can do with it.
Community and curated skills you installed through Explore catalogue. Updates surface under the Updates filter.
Skills available to your workspace and the agents in it. Visible to your organisation, never published publicly.
Skills you created with AI, recorded from a real process, or uploaded as an archive. Full ownership, full control.
The Skills page at a glance.
Skills is a tab under Apps, alongside Apps and MCPs, at /skills. Everything you need to discover, manage, and author skills lives there.
/apps/skills/catalogue.Three metrics
Tabs and categories
Header actions
Search
Find a skill, read it, enable it.
However a skill reached your workspace, the enablement flow is the same. Enable it once globally, then switch it on for each agent that should use it.
Open the Skills page
gmail or web.Open the Skill Drawer
Enable it globally
Wire it to an agent
Run it
Three ways to create a custom skill.
Describe it and let AI write it, record yourself doing the job once, or author the file yourself and upload it. All three land in the same place: a SKILL.md in the Custom group.
- Create with AI (recommended)
- Record process
A conversational AI inside Actionist writes your skill’s frontmatter, trigger list, and playbook body from a plain-language description. No YAML knowledge required. Here’s a whole creation, start to finish:
Open the creator
Describe what you want
Review the result
SKILL.md, and two buttons: View in catalog and Create another.Find it under Custom
Frontmatter, field by field.
The anatomy explorer above shows where each field lives. Here is the full detail for each one.
name and description
name and description
name becomes the skill’s catalogue slug. Use lowercase letters, numbers, and hyphens. Include a namespace prefix if you manage multiple skills from the same domain: acme-gmail-summarise, not gmail.triggers
triggers
credentials
credentials
env: KEY_NAME). The provider, kind, displayName, and required fields are optional but help the binding drawer surface the right vault entry.context
context
inline for most skills. Reserve fork for tasks that produce large output or run long enough to exhaust the parent’s context window.allowed-tools
allowed-tools
arguments
arguments
{{argument_name}}.One-time setup, zero per-run prompts.
Skills that need API keys declare slots in frontmatter. You bind those slots to vault entries once, and every run resolves them silently:
env: STRIPE_SECRET_KEY) never the value.Declare in frontmatter
SKILL.md, add a credentials: block naming every secret the skill needs. This is a slot declaration, not the value itself.Store the key in the vault
STRIPE_SECRET_KEY). The vault encrypts values at rest.Credentials vault
Bind per agent
A growing library you don’t have to maintain.
The Actionist catalogue hosts community and curated skills. Install once, pick up updates when new versions land, and uninstall cleanly when you are done.
Open the catalogue
/apps/skills/catalogue with Editor’s pick and Trending this week strips, category browsing, and search. Narrow the grid with the All / Installed / Updates filters, and reorder it with the sort control.Find and install a skill
Enable it per agent
Bind credentials if needed
Keep it current
Upload a skill archive
Upload a skill archive
Prepare the archive
SKILL.md at the root or inside a subfolder.Open the upload dialog
.zip file.Set the slug
Upload and confirm
Share your skill with the community.
Custom skills you have tested and refined can be submitted to the Actionist catalogue for review. Once published, other users can install and benefit from your work.
Open the Skill Drawer
Submit for review
Wait for the decision
Ship updates
SKILL.md and every resource file alongside it. No token stripping, no redaction, no filtering of any kind.Before you submit, open every file in the folder and remove API keys and tokens, customer records and internal business data, local filesystem paths and machine names, and any private process detail you would not post publicly. If a skill encodes something confidential, keep it private and share it inside your workspace instead.What each state means, and why a control might be missing.
A skill has two independent states: whether it exists in your workspace, and whether a given agent is allowed to use it. Most confusion comes from mixing the two.
An upload was rejected
An upload was rejected
SKILL.md is found at the root or in a subfolder. Nothing is saved when an upload is rejected, so fix the archive and upload again. You do not need to clean anything up first.Two skills seem to compete
Two skills seem to compete
What experienced skill authors do differently.
Add at least two triggers to every custom skill
Add at least two triggers to every custom skill
Check a skill validates before you rely on it
Check a skill validates before you rely on it
name: or description: field, and both must appear inside a --- YAML block at the very top of the file.Name custom skills with a prefix to avoid shadowing
Name custom skills with a prefix to avoid shadowing
gmail is easy for another skill to collide with, and a name collision is not something you want to debug at runtime. Use a namespace prefix: acme-gmail-summarise, myteam-daily-report.Prefer inline context; use fork only for long-running work
Prefer inline context; use fork only for long-running work
context: inline (the default) runs the skill inside the current conversation, lightweight and immediate. context: fork spawns a sub-agent with a fresh context budget, which isolates large output from the parent conversation but costs an additional model turn. Only use fork for skills that generate enough output to crowd out the parent conversation, such as deep research or large-document analysis.After installing from the catalogue, enable it per agent
After installing from the catalogue, enable it per agent
Limits to know.
Author your first skill today.
Click Create with AI on the Skills page. Describe the task in plain language. Actionist writes the playbook, and you enable it on every agent that needs it.
Skills encode tested procedures, not guesses.
Vault-backed credentials · Per-agent scoping · Reviewed before publication.