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.
- Skills β Custom β New HTTP Skill
- Set a name and base URL
- 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
- Add auth (bearer, API key header, basic)
- 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.
Skills β Custom β New Code Skill
Write the action handler:
export async function lookupCustomer(input: { id: string }) { const customer = await db.customers.find(input.id); return { customer }; }Define the schema in the same file
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
| Need | Use |
|---|---|
| Wrap an existing API | HTTP skill |
| Custom logic, DB access, anything that runs code | Code skill |
| Long-running task | Code skill plus a queue |
| One-off integration | HTTP skill |