bundled skills do not work #27

Open
opened 2026-02-15 17:04:36 -05:00 by yindo · 2 comments
Owner

Originally created by @lluki on GitHub (Feb 5, 2026).

I just performed a fresh installation. clawbot does not pickup any of the skills, even though they are correctly linked in the workspace:

[lukas@lisa:~/.openclaw/workspace]$ ls
AGENTS.md  HEARTBEAT.md  IDENTITY.md  MEMORY.md  skills  SOUL.md  TOOLS.md  USER.md

[lukas@lisa:~/.openclaw/workspace]$ ls -la skills/
gog/       gogtoo/    goplaces/  hello/     summarize/ 

[lukas@lisa:~/.openclaw/workspace]$ ls -la skills/gog/SKILL.md 
lrwxrwxrwx 1 lukas users 102 Feb  5 17:16 skills/gog/SKILL.md -> /nix/store/paf0dcj1iw0lnawjxmpfb1vzvhkvn0pp-home-manager-files/.openclaw/workspace/skills/gog/SKILL.md

[lukas@lisa:~/.openclaw/workspace]$ head -n 10 skills/gog/SKILL.md 
---
name: gog
description: Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
homepage: https://gogcli.sh
metadata:
  {
    "openclaw":
      {
        "emoji": "🎮",
        "requires": { "bins": ["gog"] },

I could not locate yet an error message, but i was able to fix the error by copying the SKILLS.md into workspace/skills/gogtoo/SKILLS.md (not a symlink this time). and replacing the name with gogtoo. Other than that the SKILLS.md is unmodified and clawbot picks up the skill without issue.

In similar fashion: the goplaces and summarize do not work, but my self created skill hello works.

I'm pretty sure that copying instead of symlinking the SKILLS.md would fix this problem.

Originally created by @lluki on GitHub (Feb 5, 2026). I just performed a fresh installation. clawbot does not pickup any of the skills, even though they are correctly linked in the workspace: ``` [lukas@lisa:~/.openclaw/workspace]$ ls AGENTS.md HEARTBEAT.md IDENTITY.md MEMORY.md skills SOUL.md TOOLS.md USER.md [lukas@lisa:~/.openclaw/workspace]$ ls -la skills/ gog/ gogtoo/ goplaces/ hello/ summarize/ [lukas@lisa:~/.openclaw/workspace]$ ls -la skills/gog/SKILL.md lrwxrwxrwx 1 lukas users 102 Feb 5 17:16 skills/gog/SKILL.md -> /nix/store/paf0dcj1iw0lnawjxmpfb1vzvhkvn0pp-home-manager-files/.openclaw/workspace/skills/gog/SKILL.md [lukas@lisa:~/.openclaw/workspace]$ head -n 10 skills/gog/SKILL.md --- name: gog description: Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs. homepage: https://gogcli.sh metadata: { "openclaw": { "emoji": "🎮", "requires": { "bins": ["gog"] }, ``` I could not locate yet an error message, but i was able to fix the error by copying the `SKILLS.md` into `workspace/skills/gogtoo/SKILLS.md` (not a symlink this time). and replacing the name with `gogtoo`. Other than that the `SKILLS.md` is unmodified and clawbot picks up the skill without issue. In similar fashion: the goplaces and summarize do not work, but my self created skill `hello` works. I'm pretty sure that copying instead of symlinking the SKILLS.md would fix this problem.
Author
Owner

@lluki commented on GitHub (Feb 5, 2026):

home.nix.redacted.txt

flake.nix.txt

@lluki commented on GitHub (Feb 5, 2026): [home.nix.redacted.txt](https://github.com/user-attachments/files/25111571/home.nix.redacted.txt) [flake.nix.txt](https://github.com/user-attachments/files/25111574/flake.nix.txt)
Author
Owner

@davidvasandani commented on GitHub (Feb 8, 2026):

From Claude investigating the issue:

Root Cause

The nix-openclaw package's install script (gateway-install.sh line 5) copies:

  • dist/, node_modules/, package.json, ui/
  • Optionally: extensions/, docs/reference/templates/

But it does not copy the skills/ directory (which contains 52 bundled skills like github, slack, 1password, etc.).

The resolution logic in bundled-dir.ts checks:

  1. OPENCLAW_BUNDLED_SKILLS_DIR env var (not set)
  2. skills/ sibling to executable (doesn't exist in Nix layout)
  3. <packageRoot>/skills via import.meta.url (doesn't exist)

All fail, returning undefined and triggering the warning.

Solution: Fix Upstream in nix-openclaw

Add skills/ to the install script in nix-openclaw:

File: nix/scripts/gateway-install.sh

Change: Add after line 5:

if [ -d skills ]; then
  cp -r skills "$out/lib/openclaw/"
fi

This mirrors the existing pattern for extensions/ and docs/reference/templates/.

@davidvasandani commented on GitHub (Feb 8, 2026): From Claude investigating the issue: ## Root Cause The `nix-openclaw` package's install script (`gateway-install.sh` line 5) copies: - `dist/`, `node_modules/`, `package.json`, `ui/` - Optionally: `extensions/`, `docs/reference/templates/` But it **does not copy the `skills/` directory** (which contains 52 bundled skills like github, slack, 1password, etc.). The resolution logic in `bundled-dir.ts` checks: 1. `OPENCLAW_BUNDLED_SKILLS_DIR` env var (not set) 2. `skills/` sibling to executable (doesn't exist in Nix layout) 3. `<packageRoot>/skills` via `import.meta.url` (doesn't exist) All fail, returning `undefined` and triggering the warning. ## Solution: Fix Upstream in nix-openclaw Add `skills/` to the install script in `nix-openclaw`: **File:** `nix/scripts/gateway-install.sh` **Change:** Add after line 5: ```sh if [ -d skills ]; then cp -r skills "$out/lib/openclaw/" fi ``` This mirrors the existing pattern for `extensions/` and `docs/reference/templates/`.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: openclaw/nix-openclaw#27