Custom Skills

Build your own when the catalog doesn't have what you need.

When nothing in the catalog fits, build your own. Two paths.

HTTP skill

The fast path. Point at any REST API.

  1. Skills β†’ Custom β†’ New HTTP Skill
  2. Set a name and base URL
  3. Define the actions. Each action has:
    • A name and description (the AI reads these to decide when to call it)
    • HTTP method and path
    • Input schema (JSON Schema)
    • Output schema
  4. Add auth (bearer, API key header, basic)
  5. Save

The new skill shows up in the builder palette like any other.

Code skill

For when an HTTP wrapper isn't enough. You write embedded TypeScript that runs inside the bot's runtime.

  1. Skills β†’ Custom β†’ New Code Skill

  2. Write the action handler:

    export async function lookupCustomer(input: { id: string }) {
      const customer = await db.customers.find(input.id);
      return { customer };
    }
    
  3. Define the schema in the same file

  4. Save, ShipClaw type-checks and packages it

Code skills run in the same isolated container as your bot, so they can use the runtime's env vars and reach into anything the bot has access to.

Sharing them

Custom skills are workspace-scoped. To share one with another workspace, export to a .skill.json bundle and import on the other side.

Which one to use

NeedUse
Wrap an existing APIHTTP skill
Custom logic, DB access, anything that runs codeCode skill
Long-running taskCode skill plus a queue
One-off integrationHTTP skill