You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
if(!Flag.OPENCODE_DISABLE_EXTERNAL_SKILLS){// scans ~/.claude/skills/**/SKILL.md and ~/.agents/skills/**/SKILL.md// scans ancestor directories for .claude/ and .agents/}
When OPENCODE_DISABLE_EXTERNAL_SKILLS is true, both .claude/skills/ and .agents/skills/ are skipped entirely.
The Problem
.agents/ is opencode's own convention (see skill/index.ts:23: EXTERNAL_DIRS = [".claude", ".agents"]) and should NOT be affected by OPENCODE_DISABLE_CLAUDE_CODE.
.claude/ is a Claude Code directory convention — disabling it makes sense
.agents/ is opencode's own convention — tying them together means users who only want to disable Claude Code compatibility inadvertently lose opencode's own .agents/ skills
Suggested Fix
Separate the EXTERNAL_DIRS handling so that .agents/ scanning is not affected by OPENCODE_DISABLE_CLAUDE_CODE:
.claude/skills/ — controlled by OPENCODE_DISABLE_CLAUDE_CODE (current behavior is fine)
.agents/skills/ — should have its own independent flag (e.g. OPENCODE_DISABLE_AGENTS_SKILLS) or not be affected by this flag at all
Steps to Reproduce
export OPENCODE_DISABLE_CLAUDE_CODE=1
Create .agents/skills/test-skill/SKILL.md in a project directory (with valid name and description frontmatter)
Launch opencode
Check available skills — the skill will not appear
Activity
github-actions commentedon Apr 30, 2026
This issue might be a duplicate of existing issues. Please check:
OPENCODE_DISABLE_CLAUDE_CODE=1also disables.agents/skillsloadingdevcxl commentedon Apr 30, 2026
English translation of the issue:
Setting
OPENCODE_DISABLE_CLAUDE_CODE=1prevents.agents/skills/xxx/SKILL.mdfiles from being loaded.Root Cause
In
packages/core/src/flag/flag.ts, the flag cascade chain is:In
packages/opencode/src/skill/index.ts:155:When
OPENCODE_DISABLE_EXTERNAL_SKILLSis true, both.claude/skills/and.agents/skills/are skipped entirely.The Problem
.agents/is opencode's own convention (seeskill/index.ts:23:EXTERNAL_DIRS = [".claude", ".agents"]) and should NOT be affected byOPENCODE_DISABLE_CLAUDE_CODE..claude/is a Claude Code directory convention — disabling it makes sense.agents/is opencode's own convention — tying them together means users who only want to disable Claude Code compatibility inadvertently lose opencode's own.agents/skillsSuggested Fix
Separate the
EXTERNAL_DIRShandling so that.agents/scanning is not affected byOPENCODE_DISABLE_CLAUDE_CODE:.claude/skills/— controlled byOPENCODE_DISABLE_CLAUDE_CODE(current behavior is fine).agents/skills/— should have its own independent flag (e.g.OPENCODE_DISABLE_AGENTS_SKILLS) or not be affected by this flag at allSteps to Reproduce
export OPENCODE_DISABLE_CLAUDE_CODE=1.agents/skills/test-skill/SKILL.mdin a project directory (with validnameanddescriptionfrontmatter)