Skip to main content
Skills are modular extensions that teach BabyClaw how to perform specific tasks. BabyClaw uses the same skill format as OpenClaw, making it compatible with the entire ClawHub ecosystem.

What Are Skills?

Each skill is a directory in ~/.babyclaw/workspace/skills/<slug>/ containing:
  • SKILL.md — Instructions and metadata (frontmatter + markdown)
  • Additional files — Scripts, templates, dependencies
The agent automatically discovers eligible skills and reads them when relevant to the conversation.

Finding Skills

Browse available skills at clawhub.ai/skills. Or search from the CLI:
babyclaw skill search calendar
Example output:
📦 gcalcli-calendar (v1.2.0)
   Manage Google Calendar events via gcalcli
   https://clawhub.ai/skills/gcalcli-calendar

📦 ical-calendar (v1.0.3)
   Read and parse iCalendar (.ics) files
   https://clawhub.ai/skills/ical-calendar

Installing Skills

1

Install a skill

babyclaw skill install gcalcli-calendar
Expected output:
✓ Installed Google Calendar (gcalcli) (1.2.0)
  4 files → ~/.babyclaw/workspace/skills/gcalcli-calendar
  ✓ Dependencies set up
  The skill will be available on the next agent session.
2

Verify installation

List installed skills:
ls ~/.babyclaw/workspace/skills/
You should see:
gcalcli-calendar/
3

Restart or start a new session

Skills are loaded when the agent starts a new conversation. Either:
  • Restart the gateway: babyclaw service restart
  • Or just send a new message (skills are rescanned each session)

Method 2: Let the Agent Install It

During a conversation, you can ask BabyClaw to install a skill:
Install the gcalcli-calendar skill from ClawHub
BabyClaw will use the clawhub_install tool:
{
  "slug": "gcalcli-calendar",
  "force": false,
  "skipSetup": false
}
The skill will be available on the next turn.
This is useful for skills the agent discovers it needs mid-conversation.

Method 3: Manual Installation

1

Download skill files

Visit clawhub.ai/skills/gcalcli-calendar and download the files manually.
2

Create the skill directory

mkdir -p ~/.babyclaw/workspace/skills/gcalcli-calendar
3

Copy files into the directory

cp SKILL.md ~/.babyclaw/workspace/skills/gcalcli-calendar/
cp setup.sh ~/.babyclaw/workspace/skills/gcalcli-calendar/
# ... copy any other files
4

Run setup (if needed)

Many skills include a setup.sh script:
cd ~/.babyclaw/workspace/skills/gcalcli-calendar
bash setup.sh

Skill Frontmatter

Each SKILL.md file starts with YAML frontmatter. Example:
---
name: Google Calendar (gcalcli)
description: |
  Manage Google Calendar events using gcalcli. List events, create appointments,
  and check availability.
homepage: https://github.com/insanum/gcalcli
user-invocable: true
disable-model-invocation: false
metadata:
  openclaw:
    requirements:
      os: ["macos", "linux"]
      binaries: ["gcalcli", "python3"]
      env:
        - GCALCLI_CONFIG_DIR
---

# Instructions

Use `gcalcli` to interact with Google Calendar...

Key Fields

FieldDescription
nameDisplay name of the skill
descriptionWhat the skill does (shown in ClawHub search)
homepageLink to documentation or source
user-invocableWhether users can invoke this skill by name (default: true)
disable-model-invocationIf true, the agent can’t invoke the skill autonomously
metadata.openclaw.requirementsOS, binaries, environment variables needed

Skill Eligibility

BabyClaw automatically filters skills based on eligibility (see packages/gateway/src/workspace/skills/eligibility.ts):

OS Requirements

metadata:
  openclaw:
    requirements:
      os: ["macos", "linux"]
This skill won’t load on Windows.

Binary Dependencies

metadata:
  openclaw:
    requirements:
      binaries: ["ffmpeg", "sox"]
BabyClaw checks if ffmpeg and sox are in $PATH. If missing, the skill is marked as ineligible.

Environment Variables

metadata:
  openclaw:
    requirements:
      env:
        - OPENAI_API_KEY
        - GCALCLI_CONFIG_DIR
The skill won’t load unless these environment variables are set or configured in babyclaw.json:
{
  "skills": {
    "entries": {
      "gcalcli-calendar": {
        "enabled": true,
        "env": {
          "GCALCLI_CONFIG_DIR": "/Users/you/.gcalcli"
        }
      }
    }
  }
}

Managing Installed Skills

List Installed Skills

ls -1 ~/.babyclaw/workspace/skills/
Example output:
browser-use/
gcalcli-calendar/
ical-calendar/

Disable a Skill

Edit ~/.babyclaw/babyclaw.json:
{
  "skills": {
    "entries": {
      "gcalcli-calendar": {
        "enabled": false
      }
    }
  }
}
Or use the CLI:
babyclaw skill disable gcalcli-calendar

Enable a Skill

babyclaw skill enable gcalcli-calendar

Uninstall a Skill

Delete the skill directory:
rm -rf ~/.babyclaw/workspace/skills/gcalcli-calendar
Or use the CLI (if available):
babyclaw skill uninstall gcalcli-calendar

Update a Skill

Reinstall with --force:
babyclaw skill install gcalcli-calendar --force
This overwrites the existing installation with the latest version from ClawHub.

Skill Setup and Dependencies

Automatic Setup

When you install a skill via the CLI or clawhub_install tool, BabyClaw automatically runs post-install setup if:
  1. The skill has setup instructions in its frontmatter
  2. An AI model is available
Setup uses the configured chat model to:
  • Install system dependencies (e.g., brew install ffmpeg)
  • Set up config files
  • Run initialization scripts
Example setup output:
✓ Installed Google Calendar (gcalcli) (1.2.0)
  4 files → ~/.babyclaw/workspace/skills/gcalcli-calendar
  ✓ Dependencies set up

Manual Setup

To skip automatic setup:
babyclaw skill install gcalcli-calendar --skip-setup
Then run setup manually:
cd ~/.babyclaw/workspace/skills/gcalcli-calendar
bash setup.sh

Setup Failures

If setup fails, the skill files are still installed. You’ll see:
✓ Installed Google Calendar (gcalcli) (1.2.0)
  4 files → ~/.babyclaw/workspace/skills/gcalcli-calendar
  ⚠ Setup failed (skill files are still installed)
    Error: gcalcli binary not found in PATH
You can:
  1. Install missing dependencies manually
  2. Re-run setup: babyclaw skill install gcalcli-calendar --force

Skill Configuration

Per-Skill Environment Variables

Set environment variables for a specific skill:
{
  "skills": {
    "entries": {
      "gcalcli-calendar": {
        "enabled": true,
        "env": {
          "GCALCLI_CONFIG_DIR": "/Users/you/.gcalcli",
          "GCALCLI_DEFAULT_CALENDAR": "[email protected]"
        }
      }
    }
  }
}
These variables are passed to shell commands when the skill is invoked.

Per-Skill API Keys

Some skills require API keys:
{
  "skills": {
    "entries": {
      "weather-api": {
        "enabled": true,
        "apiKey": "your-weather-api-key-here"
      }
    }
  }
}
The skill can access this via its environment or the apiKey field.

Creating Your Own Skills

Skills are just markdown files with frontmatter. Minimal example:
---
name: My Custom Skill
description: Does something useful
---

# Instructions

When the user asks about X, run:

```bash
my-custom-command --arg value
Parse the output and return a summary.

Save this as `~/.babyclaw/workspace/skills/my-skill/SKILL.md`.

<Tip>
  Skills can include additional files (scripts, templates, data). Reference them with relative paths.
</Tip>

## Bundled Skills

BabyClaw ships with a `browser-use` skill in `packages/skills/skills/browser-use/`. This skill is built-in but follows the same format.

List bundled skills:

```bash
babyclaw skill bundled

Troubleshooting

Check:
  1. Is the skill enabled? (babyclaw skill list or check skills.entries in config)
  2. Does the skill meet eligibility requirements? (OS, binaries, env vars)
  3. Is the SKILL.md file valid? (Check YAML frontmatter syntax)
  4. Did you restart the gateway or start a new session?
Debug:
# Check skill scanner output in logs
tail -f ~/.babyclaw/logs/gateway.stdout.log | grep skill
If babyclaw skill install <slug> fails with 404:
  1. Check the skill slug is correct (lowercase, hyphens)
  2. Visit clawhub.ai/skills to verify it exists
  3. Check ClawHub API status: curl https://api.clawhub.ai/health
Example error:
Skill ineligible: missing binaries [ffmpeg]
Fix:
  1. Install the missing binary (e.g., brew install ffmpeg)
  2. Restart the gateway: babyclaw service restart
Example error:
Skill ineligible: missing env vars [GCALCLI_CONFIG_DIR]
Fix:
  1. Set the variable in babyclaw.json (see “Per-Skill Environment Variables” above)
  2. Or export it globally: export GCALCLI_CONFIG_DIR=~/.gcalcli
  3. Restart the gateway
⚠ Skill "gcalcli-calendar" is already installed.
  Use --force to overwrite.
Fix:
babyclaw skill install gcalcli-calendar --force

Best Practices

Start Small

Install 1-2 skills at a time. Test each one before adding more.

Check Eligibility

Review skill requirements before installing. Install missing binaries first.

Use Skill-Specific Config

Store API keys and env vars in babyclaw.json instead of globally.

Document Custom Skills

If you create custom skills, add clear instructions in the SKILL.md.

Next Steps

Telegram Setup

Connect BabyClaw to Telegram for messaging

Run as Service

Keep BabyClaw running 24/7 with systemd/launchd

Troubleshooting

Common issues and solutions

Browse ClawHub

Explore hundreds of community skills

Build docs developers (and LLMs) love