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
OpenCode supports Claude Code's .claude/skills/ paths for skill discovery, but doesn't support .claude/commands/ paths for command discovery. This creates an inconsistent migration experience for users coming from Claude Code.
Current Behavior
Skills - OpenCode searches these paths (per docs):
I just tried doing basic compatibility by copying .claude/commands to .opencode/command, but it looks like there are incompatibilities with the frontmatter for things like the argument-hint: https://code.claude.com/docs/en/slash-commands#frontmatter
I wouldn't mind having to duplicate certain frontmatter parameters for Claude Code and OpenCode, but this particular incompatibility prevents OpenCode from loading it. Therefore, I can't just use a git symlink for compatibility like I do for GitHub Copilot.
Reacted by Bailey Belvis, Roger Siegenthaler and Ivan
It even interprets instructions wrongly. I tried running slash commands on both environment; ~/.config/opencode/commands and ~/.claude/commands, they were recognized successfully, but one in ~/.claude/commands never worked. It just adds custom command instruction onto the prompt and make user request empty.
Building on @mamoreau-devolutions' comment about frontmatter incompatibilities, here's the full mapping needed for Claude Code → OpenCode command compatibility:
Claude Code Frontmatter
name: my-commanddescription: Does somethingargument-hint: <topic>allowed-tools: [Read, Write, Bash]model: claude-sonnet-4-20250514
OpenCode Command Frontmatter
description: Does somethingagent: buildmodel: anthropic/claude-sonnet-4-20250514subtask: false
Key Differences
Claude Code
OpenCode
Notes
name
filename
OpenCode derives name from file
argument-hint
-
No equivalent (causes parse error)
allowed-tools
-
No equivalent
model
model
Different format (provider/model)
-
agent
OpenCode-specific
-
subtask
OpenCode-specific
Suggested Solution
When loading from .claude/commands/, OpenCode could:
Ignore unknown frontmatter fields instead of erroring
Map argument-hint to hints array
Auto-prefix model with provider if missing
This would allow the same command file to work in both tools.
Alternatively, issue #10262 (plugin dynamic commands) would let a compatibility plugin handle this translation layer without core changes.
Activity
github-actions commentedon Jan 5, 2026
This issue might be a duplicate of existing issues. Please check:
.claude/skills? #6266: Does opencode actually support finding skills at.claude/skills? - Related to Claude Code path compatibilityFeel free to ignore if none of these address your specific case.
feat: add .claude/commands/ compatibility for command discovery
mamoreau-devolutions commentedon Jan 7, 2026
I just tried doing basic compatibility by copying .claude/commands to .opencode/command, but it looks like there are incompatibilities with the frontmatter for things like the argument-hint: https://code.claude.com/docs/en/slash-commands#frontmatter
I wouldn't mind having to duplicate certain frontmatter parameters for Claude Code and OpenCode, but this particular incompatibility prevents OpenCode from loading it. Therefore, I can't just use a git symlink for compatibility like I do for GitHub Copilot.
zerobell-lee commentedon Jan 26, 2026
It even interprets instructions wrongly. I tried running slash commands on both environment;
~/.config/opencode/commandsand~/.claude/commands, they were recognized successfully, but one in~/.claude/commandsnever worked. It just adds custom command instruction onto the prompt and make user request empty.pablontiv commentedon Jan 29, 2026
Additional Context: Frontmatter Incompatibility
Building on @mamoreau-devolutions' comment about frontmatter incompatibilities, here's the full mapping needed for Claude Code → OpenCode command compatibility:
Claude Code Frontmatter
OpenCode Command Frontmatter
Key Differences
nameargument-hintallowed-toolsmodelmodelprovider/model)agentsubtaskSuggested Solution
When loading from
.claude/commands/, OpenCode could:argument-hinttohintsarrayThis would allow the same command file to work in both tools.
Alternatively, issue #10262 (plugin dynamic commands) would let a compatibility plugin handle this translation layer without core changes.
github-actions commentedon Mar 31, 2026
To stay organized issues are automatically closed after 90 days of no activity. If the issue is still relevant please open a new one.