# Skills

> Choose the workflows Penny can execute in Lab, configure required plugins, and create or import reusable Skills that produce canvas results.

Source: https://kaitoi.io/docs/studio/skills/
Section: Kaitoi Studio / Penny
Written for: Anyone using or creating Lab Skills.
Last reviewed: 2026-10-24

---

A Skill gives Penny a reusable action in Lab: generate an image, transform a
reference, produce audio, or run a workflow you have saved. Penny supplies the
inputs, the Skill executes its underlying work, and supported results appear
on the canvas.

Use [Playbooks](/docs/studio/playbooks/) for written instructions and preferences.
Use Skills for actions Penny can execute.

## Choose available Skills

Open **Lab**, then click the **Skills** wand beside the conversation selector
in the message bar. The count shows enabled Skills out of the total. The menu
opens upward and groups Skills by their output: **Image**, **Audio**, **Video**,
and **Text**.


The Skills popover opens above the wand in Lab's message bar. Each row has a
name, description, and enable/disable switch on the right. Skills are grouped
by Image, Audio, Video, and Text outputs. Create Skill and Import Skill are
at the bottom. The wand's count is enabled Skills / total Skills.

*Figure: Find the Skills control beside the conversation selector in Lab.*

Enable the actions Penny should be able to use. This changes availability;
it does not start work. Penny cannot call a disabled Skill, although it may
still know that the Skill is configured and explain why it is unavailable.

An enabled Skill can also be unavailable when its required media is missing.
For example, an image-editing Skill that requires a source image needs an image
on the canvas. A description of an image does not replace that input.

## Ask for a specific result

Ask for a concrete result and mention the canvas item that should be its input.
Kaitoi resolves the item reference to its underlying media. Click the item's
handle label or use **@** in the composer to insert a mention. Include the
transformation and useful constraints, such as dimensions or duration.


Example: a custom Square social image Skill takes a canvas image and a target
size. Penny resolves @reference to the actual image and supplies 1080 as the
size. The saved workflow center-crops and resizes it, returning a square image
to inspect on the canvas. The image and size are exposed inputs; the crop and
resize operations remain inside the workflow. This is an illustrative Skill,
not a built-in name or an executed result.

*Figure: A Skill exposes useful inputs while keeping the workflow steps together.*

Enabling a Skill does not force Penny to call it on every message. Ask for the
intended action and follow the particular execution's queue, progress, or error
indication. Inspect the resulting media before requesting another variation.

## Make a custom Skill

Choose **Create Skill** at the bottom of the browser, then pick a source:

- **From Node** wraps a supported node. Use it when one operation already does
  the job.
- **From Template** wraps a saved workflow. Use it for connected steps you want
  Penny to call together.

For a template, expose the pins Penny should supply or return when saving the
template. The create dialog lists the inputs and outputs for review. If none
were explicitly exposed, it can detect unconnected pins; review those choices
before creating the Skill. Without usable outputs, Penny cannot retrieve the
workflow's results.

Give the Skill a clear **Name**, **Description**, and **Output type**. Describe
when to use it and what inputs it needs. For example: “Crop an image to a square
and resize it for a social post; requires a source image.”

Some nodes need a plugin, such as an LLM plugin. The create dialog lists those
inputs and asks you to choose the plugin. Fill every required plugin choice
before creating the Skill. If none is offered, read the dialog's reason: a
compatible plugin may be missing, or its required API key may be unavailable.
Plugin bindings are part of the Skill's setup, rather than text Penny invents
when calling it.

If the dialog says the node needs another node connected to a required pin,
build that connection in Graph, save the workflow as a template, and use
**From Template** instead.

Test the Skill on a small input. Confirm the output type, media format, and
provider requirements before relying on it in a larger conversation.

## Import, export, and repair

Choose **Import Skill** to load a `.kaitoi-skill.json` file. For a Skill you own,
open its **Skill actions** menu to **Edit**, **Export**, or **Delete** it. Deletion
asks for confirmation and cannot be undone.

A Skill file describes a workflow. Importing it does not create missing
provider credentials or make an unavailable model accessible. Review embedded
graph inputs and plugin settings before sharing an export. Test an imported
Skill with the destination account's actual providers and capabilities.

An older Skill that asks Penny to supply a required plugin as plain text needs
reconfiguration. Recreate your own Skill with an explicit plugin choice; a
built-in or shared Skill may need its maintainer to update it.

## Execution and cost

Skills execute the underlying work and inherit its costs and restrictions.
Turning a workflow into a Skill does not make provider calls free. Check the
result and execution status before asking for another variation.

## When a Skill does not work

| What you see                                           | What to check                                                                                                 |
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- |
| Penny says the Skill is disabled                       | Enable it in the Skills browser.                                                                              |
| It is enabled but cannot be called                     | Check the required media types on the canvas and mention the intended input.                                  |
| The create dialog cannot satisfy a required connection | Configure the plugin, or connect the required node in a template.                                             |
| Work is queued or still running                        | Follow that execution's status before starting another request.                                               |
| An execution fails                                     | Read its error, check provider access, and inspect any items already produced. Retrying can repeat paid work. |

See [Working with Penny](/docs/studio/penny/) for stopping and recovery,
[Lab](/docs/studio/lab/) for arranging references, and
[Files and results](/docs/studio/files-and-results/) for retaining media.
