-
-
Notifications
You must be signed in to change notification settings - Fork 55k
Description
Summary
Skills that use uv as their installer (e.g., nano-pdf) install successfully but are never marked as "eligible" because the gateway's PATH bootstrap doesn't include ~/.local/bin, which is where uv tool install places binaries.
Steps to Reproduce
- Have a skill with
kind: "uv"installer (e.g.,nano-pdf) - Click "Install" in the app
- Installation succeeds (logs show
✓ skills.install) - Skill still shows as not eligible / missing binary
- Running
which nano-pdfin terminal shows/Users/<user>/.local/bin/nano-pdf
Root Cause
In src/infra/path-env.ts, the candidateBinDirs() function bootstraps common bin directories into PATH for the gateway process. It includes:
~/.local/share/pnpm~/.bun/bin~/.yarn/bin/opt/homebrew/bin
But it's missing ~/.local/bin, which is the default location where uv tool install places binaries.
The hasBinary() function in src/agents/skills.ts checks process.env.PATH to find binaries. Since ~/.local/bin isn't in the gateway's PATH, the binary is never found even though installation succeeded.
Fix
Add ~/.local/bin to the candidate directories in src/infra/path-env.ts:
// Line 77-81, add the missing path:
candidates.push(path.join(homeDir, ".local", "share", "pnpm"));
candidates.push(path.join(homeDir, ".local", "bin")); // uv tool install location
candidates.push(path.join(homeDir, ".bun", "bin"));
candidates.push(path.join(homeDir, ".yarn", "bin"));
candidates.push("/opt/homebrew/bin", "/usr/local/bin", "/usr/bin", "/bin");Affected Skills
Any skill using kind: "uv" installer, including:
nano-pdf
Workaround
Manually restart the gateway after applying the fix above, or ensure ~/.local/bin is in PATH before launching the Clawdis app.
Environment
- Clawdis version: 2.0.0-beta4
- uv version: 0.9.21
- macOS Sonoma