Skills
A skill is a reusable capability you can attach to an agent. Skills live in the Library and are scoped to your active workspace. Some skills are bundled; others you author yourself.
Use skills when an agent needs to do something beyond plain text generation — call a function, run a script, query an external system, or wrap a Model Context Protocol tool.
Runtime types
Section titled “Runtime types”Every skill has a runtime_type that determines how it executes.
| Runtime | What it is | Where it runs |
|---|---|---|
prompt | A prompt template the model expands | In-process |
function | A built-in native function | In-process |
python | A Python script | Bubblewrap subprocess sandbox |
node | A Node.js script | Bubblewrap subprocess sandbox |
shell | A shell command | Bubblewrap subprocess sandbox |
wasm | A WebAssembly module | In-process via wasmtime |
mcp | A tool exposed by an MCP server | The MCP server process |
Capabilities
Section titled “Capabilities”Each skill declares the capabilities it needs:
- Network access — whether the skill may reach the network.
- Filesystem access — whether the skill may read or write files.
Capabilities gate what a skill is allowed to touch. A skill that does not request a capability is denied it by the sandbox, even if its code attempts to use it.
The sandbox model
Section titled “The sandbox model”How a skill is isolated depends on its runtime:
promptandfunctionrun in-process. They are trusted native code with no separate sandbox.python,node, andshellrun in a bubblewrap (bwrap) subprocess sandbox with namespace isolation. Network, filesystem, and environment access are restricted to the capabilities the skill declares.wasmruns in-process via wasmtime, isolated by the WebAssembly sandbox.
Publishing
Section titled “Publishing”A skill has an is_published flag. Publishing a skill makes it available for agents in the
workspace to use. Keep a skill unpublished while you iterate on it, then publish when it is ready.
Creating a skill
Section titled “Creating a skill”Open the Skills tab in the Library. The skill list (SkillList) shows existing skills; the
editor (SkillEditor) is where you author one.
-
In the Library, open the Skills tab and choose New skill.
-
Give the skill a name and description, then pick its runtime type (see the table above).
-
Provide the skill body — a prompt template, function reference, script, WASM module, or MCP tool binding, depending on the runtime.
-
Declare the capabilities the skill needs (network and/or filesystem). Leave them off unless the skill requires them.
-
Save, then test the skill. When you are confident it works, set
is_publishedso agents can use it.