Skip to content

Bug: Skills installed via uv not detected after installation #78

@daveonkels

Description

@daveonkels

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

  1. Have a skill with kind: "uv" installer (e.g., nano-pdf)
  2. Click "Install" in the app
  3. Installation succeeds (logs show ✓ skills.install)
  4. Skill still shows as not eligible / missing binary
  5. Running which nano-pdf in 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions