Skip to content

[BUG] Skills installed via npx skills add (~/.agents/skills/) not recognized by Skill tool — 'Unknown skill' error #53950

Description

@yasserstudio

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

Summary

Skills installed via npx skills add from skills.sh are stored at ~/.agents/skills/<skill-name>/SKILL.md but are not recognized by the Skill tool. Attempting to invoke them returns Unknown skill: <name>.

Environment

  • OS: macOS (Darwin 25.4.0)
  • Claude Code Version: 2.1.119 (latest)
  • Installation: Standard
  • Model: Claude Opus 4.6

Steps to Reproduce

  1. Install a skill from the skills.sh registry:

    npx skills add kostja94/marketing-skills --yes --global
  2. Verify the skill exists on disk:

    ls ~/.agents/skills/translation/
    # SKILL.md
  3. Verify the SKILL.md has valid frontmatter:

    ---
    name: translation
    description: When the user wants to translate content...
    metadata:
      version: 1.0.1
    ---
  4. In Claude Code, attempt to invoke the skill:

    Skill("translation")
    Skill("kostja94/marketing-skills@translation")
    
  5. Result: Unknown skill: translation / Unknown skill: kostja94/marketing-skills@translation

Expected Behavior

The Skill tool should discover and invoke skills installed at ~/.agents/skills/ (the standard location used by npx skills add). These skills have valid SKILL.md files with proper frontmatter and should be loadable the same way plugin skills are.

Actual Behavior

The Skill tool only recognizes:

  • Built-in slash commands
  • Plugin skills installed via /plugin

Skills at ~/.agents/skills/ are completely invisible to the Skill tool despite being valid SKILL.md files.

Current Workaround

The only workaround is to manually Read the SKILL.md file and follow its instructions. This pollutes the conversation context with the full skill content instead of using the harness-managed scoped injection that the Skill tool provides.

Read("~/.agents/skills/translation/SKILL.md")

Impact

The skills.sh ecosystem has hundreds of community skills that users install via npx skills add. None of these are invocable through the Skill tool, which means:

  • Users must manually read SKILL.md files instead of using the proper tool
  • Skill content permanently enters the conversation context (no scoped injection)
  • The CLAUDE.md pattern of documenting "mandatory skills" (e.g., kostja94/marketing-skills@translation) creates a false expectation that these skills are invocable

Related Issues

Suggested Fix

Add ~/.agents/skills/ to the Skill tool's discovery paths, alongside ~/.claude/skills/ and plugin directories. The SKILL.md format is identical — only the directory location differs.

What Should Happen?

Skills with valid SKILL.md files at ~/.agents/skills/ should be discoverable and invocable via the Skill tool.

Error Messages/Logs

Error: Unknown skill: translation
Error: Unknown skill: kostja94/marketing-skills@translation

Claude Model

Opus

Is this a regression?

Not sure / not applicable

Claude Code Version

2.1.119

Platform

Anthropic API (Max plan)

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

The ~/.agents/skills/ directory contains 100+ skills installed via npx skills add. All have valid SKILL.md files with proper frontmatter. None are discoverable by the Skill tool.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions