Skip to content

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.

Every skill has a runtime_type that determines how it executes.

RuntimeWhat it isWhere it runs
promptA prompt template the model expandsIn-process
functionA built-in native functionIn-process
pythonA Python scriptBubblewrap subprocess sandbox
nodeA Node.js scriptBubblewrap subprocess sandbox
shellA shell commandBubblewrap subprocess sandbox
wasmA WebAssembly moduleIn-process via wasmtime
mcpA tool exposed by an MCP serverThe MCP server process

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.

How a skill is isolated depends on its runtime:

  • prompt and function run in-process. They are trusted native code with no separate sandbox.
  • python, node, and shell run in a bubblewrap (bwrap) subprocess sandbox with namespace isolation. Network, filesystem, and environment access are restricted to the capabilities the skill declares.
  • wasm runs in-process via wasmtime, isolated by the WebAssembly sandbox.

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.

Open the Skills tab in the Library. The skill list (SkillList) shows existing skills; the editor (SkillEditor) is where you author one.

  1. In the Library, open the Skills tab and choose New skill.

  2. Give the skill a name and description, then pick its runtime type (see the table above).

  3. Provide the skill body — a prompt template, function reference, script, WASM module, or MCP tool binding, depending on the runtime.

  4. Declare the capabilities the skill needs (network and/or filesystem). Leave them off unless the skill requires them.

  5. Save, then test the skill. When you are confident it works, set is_published so agents can use it.