Skillsets

A skillset is a self-contained bundle assigned to a role. It declares exactly what a bot or user needs — the skills it can use, the OS-level dependencies those skills require, and the credentials they consume. Everything runs in an isolated container, so a skillset can never reach beyond its declared scope.

Structure

A skillset contains three sections:

Skills

The list of capabilities available to the role. Each skill is a discrete unit of functionality the bot can invoke.

Dependencies

OS-level packages required by the skills. ClawForge installs these into the container at build time using the appropriate package manager:

  • npm — Node.js packages
  • pip — Python packages
  • apt — System-level packages (Debian/Ubuntu)

Credentials

Secrets and tokens the skillset needs at runtime. Each credential entry declares which commands require it, so ClawForge only injects secrets into the specific processes that need them — never globally.

Example

# calculus-solver.yaml

skillset: "calculus-solver"

# ── Skills ──
skills:
  - solve-integral
  - solve-derivative
  - plot-function

# ── Dependencies ──
dependencies:
  pip:
    - sympy
    - matplotlib
  apt:
    - libcairo2-dev

# ── Credentials ──
credentials:
  - name: WOLFRAM_API_KEY
    description: "Wolfram Alpha API key for verification"
    commands: [solve-integral, solve-derivative]

In this example, WOLFRAM_API_KEY is only available to the solve-integral and solve-derivative commands. The plot-function command cannot access it. If a skill doesn't need a credential, it never sees it.

Checking API…