.claude/skills/openclaw-skill-bins-path-mismatch/SKILL.md
Fix OpenClaw skills showing "needs setup" or "Missing requirements (bins)" even though the CLI wrapper exists in ~/.openclaw/bin/. Use when: (1) `openclaw skills list` shows skills as "needs setup" despite the binary being at ~/.openclaw/bin/<name>, (2) `openclaw skills check` lists custom skills under "Missing requirements", (3) the gateway runtime uses the skill fine but the CLI check fails. Root cause: the skill `requires.bins` check uses the system PATH (not the gateway's configured PATH), so binaries in ~/.openclaw/bin/ are invisible to it.
npx skillsauth add Dbochman/dotfiles openclaw-skill-bins-path-mismatchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
requires.bins PATH MismatchOpenClaw's skill requirements checker (openclaw skills check, openclaw skills list)
validates that required binaries exist by searching the PATH. However, custom CLI
wrappers installed at ~/.openclaw/bin/ are only on the PATH in the gateway's
LaunchAgent plist — not on the system PATH used by the CLI tools. This causes skills
to appear as "needs setup" even when they work fine at runtime.
When a skill shows "needs setup", OpenClaw may not load it into the agent's context, meaning the agent won't know it has that capability.
metadata.openclaw.requires.bins in their SKILL.md frontmatter~/.openclaw/bin/ (not /opt/homebrew/bin/ or /usr/local/bin/)openclaw skills list shows the skill as "needs setup"openclaw skills check shows skill under "Missing requirements"~/.openclaw/bin in PATH)Symlink the CLI wrappers from ~/.openclaw/bin/ into /opt/homebrew/bin/:
for bin in 8sleep cielo crisismode crosstown-roomba fi-collar litter-robot mysa petlibro ring; do
src="$HOME/.openclaw/bin/$bin"
dst="/opt/homebrew/bin/$bin"
if [ -f "$src" ] && [ ! -e "$dst" ]; then
ln -s "$src" "$dst" && echo "linked: $bin"
fi
done
Note on symlink safety: The wrappers in ~/.openclaw/bin/ set SCRIPT_DIR explicitly
to $HOME/.openclaw/skills/<name> (not via dirname $0), so symlinks don't break path
resolution. The earlier guidance "never symlinks — SCRIPT_DIR breaks" applies to skill
directories, not to these wrappers.
openclaw skills check — custom skills should appear under "Ready to use"openclaw skills list — skills should show "ready" not "needs setup"launchctl kickstart -k gui/$(id -u)/ai.openclaw.gatewayBefore fix (11 custom skills broken):
Missing requirements:
S 8sleep (bins: 8sleep)
❄ cielo-ac (bins: cielo)
🏥 crisismode (bins: crisismode)
...
After fix:
Ready to use:
S 8sleep
❄ cielo-ac
🏥 crisismode
...
dotfiles-pull.command so symlinks are recreated on deploydog-walk and crosstown-routines skills depend on multiple bins (e.g.,
fi-collar AND crosstown-roomba) — all must be symlinkedtools
Use exact configured Reolink cameras through the local Home Hub for availability and power status, fresh stills, visual commentary, protected Dylan/Julia/household sharing, and reversible spotlight control. Supports trusted owner tasks and explicitly scoped proactive automations; not for Nest or Ring cameras, arbitrary recipients, recordings, account changes, or raw camera APIs.
data-ai
Privately manage Dylan and Julia's household plant inventory and care history by physical location, bed, and exact Flower Cam view. Use for confirmed plant onboarding from camera conversations, camera- or bed-filtered inventory, record corrections, individual or whole-bed care, and private filtered exports. Pair with reolink-camera when an owner asks about plants visible in Flower Cam images.
testing
Inspect and control the physically secured Reachy Mini at Crosstown through ClawBody. Use for requests to check Reachy, look around, express an emotion, play any official emotion or dance preset, speak proactively, mute or unmute its microphone, stop movement, or describe what its camera sees.
tools
Handle Reachy/iMessage handoffs, selective durable memory, forgetting, and diagnostics; automatic context comes from the gateway plugin.