Fixed OpenCode skills not showing up in the composer - #7572
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ApprovabilityVerdict: Skipped Macroscope did not run approvability analysis for this PR. Macroscope could not determine whether this PR modifies its approvability configuration, so the PR was not approved automatically. A PR that may change the rules that govern approval is never approved automatically. |
…overy discoverOpenCodeSkills scanned .claude/.agents/.opencode skill roots unconditionally, so skills the OpenCode binary itself refuses to load could resurface in the $ picker via merge and fail when invoked. Discovery now skips every disk root when OPENCODE_DISABLE_EXTERNAL_SKILLS is set, and skips .claude/skills roots when OPENCODE_DISABLE_CLAUDE_CODE or OPENCODE_DISABLE_CLAUDE_CODE_SKILLS is set. Worked on by ox-alpha (opencode)
…e disabled OPENCODE_DISABLE_EXTERNAL_SKILLS now drops only .claude/skills and .agents/skills roots instead of all discovery, matching upstream OpenCode, and disable flags parse strictly as 1/true like OpenCode's truthy helper.
fd908e9 to
e950bfa
Compare
…emote OpenCode Unterminated SKILL.md frontmatter blocks are now treated as malformed instead of publishing the skill under its directory name. When a serverUrl is configured, checkOpenCodeProviderStatus no longer runs local disk discovery so only skills from the external OpenCode server are advertised.
Empty fences (---/---) now parse as valid frontmatter with no metadata, so the skill is published under its directory name as upstream's gray-matter parser does, instead of being skipped.
|
+1 on this. would highly appreciate a fix soon, it sucks quite hard to not be able to see and activate your skills through the T3Code ui :/ |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 2496273. Configure here.
| ? [] | ||
| : [{ directory: path.join(dir, ".agents", "skills"), scope: "project" as const }]), | ||
| { directory: path.join(dir, ".opencode", "skills"), scope: "project" as const }, | ||
| ]), |
There was a problem hiding this comment.
Singular skill dirs skipped
Medium Severity
OpenCode discovers native skills under both skill/ and skills/ (glob {skill,skills}/**/SKILL.md on .opencode and config roots). discoverOpenCodeSkills only scans the plural skills directory on those roots, so skills kept under singular skill/ never reach the composer $ picker even though OpenCode loads them.
Reviewed by Cursor Bugbot for commit 2496273. Configure here.
|
Note 🤖 GPT-5.6 Sol responding on behalf of Theo Closing this PR after an automated pass over open pull requests. OpenCode skill discovery already shipped in #3154. |
Didn't work in latest commit. Worth a look |
|
@t3dotgg this has been incorrectly closed. Skill discovery didn't work in latest release for opencode . I'm sorry if this incorrect/inconvient. |
|
+1 latest release does not work! |
|
@juliusmarminge Please reopen this, it has been wrongly closed |


OpenCode skills were not appearing in the chat composer when typing
$. Added filesystem discovery for OpenCode user and project skill directories and hooked them into the provider status snapshot.Summary :
~/.config/opencode/skills,~/.opencode/skills,$OPENCODE_CONFIG_DIR,.claude/skills,.agents/skills,.opencode/skills)OpenCodeProvider.tsReady For Review !!
Note
Medium Risk
Touches OpenCode provider snapshots and scans user/workspace skill directories, so picker contents and path handling can be wrong if discovery or merge logic is off. Not auth or data-store critical.
Overview
OpenCode skills now show in the
$picker by scanning the same user and projectSKILL.mdroots OpenCode itself loads, then attaching them to the provider snapshot.discoverOpenCodeSkillswalks user dirs (~/.claude,~/.agents, XDG/~/.opencode,$OPENCODE_CONFIG_DIR) then git-ancestor project dirs (.claude/.agents/.opencode). Later roots win on name collisions; YAML frontmatter supplies name/description with a directory-name fallback. OpenCode disable flags (OPENCODE_DISABLE_EXTERNAL_SKILLS,OPENCODE_DISABLE_CLAUDE_CODE,OPENCODE_DISABLE_CLAUDE_CODE_SKILLS) skip.claude/.agentsroots using the same"1"/"true"parsing.checkOpenCodeProviderStatusmerges discovered skills over SDK inventory. Local discovery is skipped when aserverUrlis set so the picker does not advertise skills an external server cannot run. Discovered skills still appear on probe error/disabled snapshots for local CLI.Reviewed by Cursor Bugbot for commit 2496273. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Fix OpenCode skills not showing up in composer by adding local skill discovery
discoverOpenCodeSkillsin OpenCodeSkills.ts, which scans user roots (~/.claude/skills,~/.agents/skills,~/.config/opencode/skills,~/.opencode/skills,$OPENCODE_CONFIG_DIR/skills) and project roots (.claude/skills,.agents/skills,.opencode/skillsfrom git ancestor to cwd) forSKILL.mdfiles with YAML frontmattercheckOpenCodeProviderStatusin OpenCodeProvider.ts so local skills appear in the provider snapshot when using a local CLI; discovered skills override SDK-reported skills on name collisions viamergeOpenCodeSkillsFileSystemandPathservices in OpenCodeDriver.ts so the discovery effect can access the filesystem at runtimeOPENCODE_DISABLE_EXTERNAL_SKILLS,OPENCODE_DISABLE_CLAUDE_CODE, andOPENCODE_DISABLE_CLAUDE_CODE_SKILLSgate which roots are scanned; only"1"and"true"count as enabledserverUrlis configured, local skills are omitted from the snapshot to avoid advertising local-only skills for external serversMacroscope summarized 2496273.