Custom skills
Reusable instructions you author once, then invoke with a slash command or let the agent run on its own.
A custom skill is a set of instructions you write once and reuse. Instead of re-explaining a multi-step workflow every time ("pull my unread mail, group it by sender, draft a standup update"), you save it as a skill and either run it with a slash command or let the agent reach for it on its own when a request matches.
Skills are plain markdown. They are not code, and they do not add new tools. A skill describes how you want a job done; the agent follows it using the tools and memory it already has.
What it does
- Reusable instructions. Each skill is a markdown document the agent follows when the skill runs. Write the steps, the tone, the format you want back, the edge cases to watch.
- Two ways to run. Give a skill a slash command, turn on auto-invoke, or both. A skill must have at least one of the two.
- Slash command. Type
/standup(and an optional message) in chat to run the skill on demand. - Auto-invoke. The agent loads the skill itself when a request matches the skill's description, with no slash command needed.
- Slash command. Type
- Authored in the app. Create and edit skills from the Skills page, alongside Preferences, Permissions, and Automations. Each skill has a name, an optional slash command, an optional auto-invoke description, and the instructions themselves.
- The agent can manage them too. Skills live as files under
/custom-skills/, so you can also ask the agent to draft or revise one in chat.
How to use it
Create a skill from the Skills page, or ask the agent to write one for you:
- "Make a
/standupskill that pulls my unread mail from the last day, groups it by sender, and drafts a short standup update." - "Create a skill that runs whenever I ask to prep for a 1:1: pull the person's recent threads and our last meeting notes, and summarize what to cover."
Then invoke it:
- Slash command: type
/standupin chat. Anything after the command is passed along as your message for that run. - Auto-invoke: just describe the job ("prep me for my 1:1 with Sarah"). If a skill's description matches, the agent reads it and follows it.
When you turn on auto-invoke, write the description as when to use the skill, not what it does. The agent reads the description to decide whether the skill fits a request, then loads the full instructions only if it does. "Use when the user asks to run or prep a standup" is a good description; "Generates a standup" is not.
Limits and behavior
- At least one entry point. A skill needs a slash command, auto-invoke, or both. Auto-invoke requires a description so the agent knows when to use it.
- Slash command format. Lowercase letters, numbers, and dashes; it cannot start with a dash and cannot contain spaces (
standup,daily-standup). Each slash command is unique within your organization. - Per organization. Skills belong to the organization you authored them in, and are not visible to other organizations. Any member of the organization can create, edit, or delete them. Up to 200 skills per organization.
- Not permission-gated, because skills do not act. A skill is instructions, not an action. The work a skill drives still runs through the permission gate like any other agent run, so a skill that sends mail or edits a calendar is gated the same way a direct request would be.
- The agent edits skills only with you present. In an interactive chat the agent can create, edit, and delete skills on your behalf. In autonomous runs (triggered or scheduled automations) it will propose changes in its response rather than write them silently.
- Skills compose with everything else. A skill's instructions can reference your connectors, tools, preferences, and memory. They run through the same agent loop as any other request.
Related
- Preferences: standing instructions the agent reads on every run, versus a skill you invoke for a specific job.
- Automations: triggers and schedules that run on their own, versus a skill you invoke (or let the agent invoke) within a run.
- Tools and skills: how the agent discovers skills and tools just in time.
For agents
- Custom skills are user-authored markdown, stored per organization, surfaced through the
custom-skillsconnector as files under/custom-skills/{slug}.md. - Each skill has a name, a body (the instructions), an optional
slashCommand, and an optionalautoInvokeflag with a requireddescriptionwhen auto-invoke is on. A skill must have a slash command or auto-invoke (or both). - Auto-invoke skills are listed in the system prompt's tools-and-skills section by name and description; the agent reads the full body on demand. They are never inlined.
- A slash command in a user message is resolved on the first attempt and the body is injected as instructions for that turn; it is not persisted to the session.
- The agent can create, edit, and delete skills via the file tools, but only in interactive sessions. In triggered or scheduled runs those writes are gated; the agent proposes changes instead.
- Skills are instructions, not tools. They add no new tool; they direct the agent to use the tools and memory it already has. Built-in connector skills mount under
/skills/; user custom skills mount under/custom-skills/. - Limit: 200 skills per organization. Slash commands are unique per organization.