These instructions are designed for AI coding agents.
Before installing, verify you have OpenCode and Claude Code installed and authenticated.
opencode --versionYou should see a version number (e.g., 1.2.28).
security find-generic-password -s "Claude Code-credentials" -wIf this returns credentials, you're authenticated. If it fails or returns nothing, try the fallback:
cat ~/.claude/.credentials.jsonIf this file exists and contains valid JSON, you're authenticated.
Run Claude Code to authenticate:
claudeThis will prompt you to log in and store credentials in Keychain (macOS) or ~/.claude/.credentials.json (other platforms).
Edit the OpenCode configuration file at ~/.config/opencode/opencode.json.
Add opencode-claude-auth@latest to the plugin array:
{
"plugin": ["opencode-claude-auth@latest"]
}Or run this command to do it automatically:
node -e "
const fs = require('fs'), p = require('path').join(require('os').homedir(), '.config/opencode/opencode.json');
const c = fs.existsSync(p) ? JSON.parse(fs.readFileSync(p,'utf8')) : {};
c.plugin = [...new Set([...(Array.isArray(c.plugin) ? c.plugin : []), 'opencode-claude-auth@latest'])];
fs.mkdirSync(require('path').dirname(p), {recursive:true});
fs.writeFileSync(p, JSON.stringify(c, null, 2));
console.log('Added opencode-claude-auth@latest to', p);
"The @latest tag ensures OpenCode always pulls the newest version on startup. No manual npm install is needed — OpenCode automatically installs npm plugins using Bun at startup.
Verify the plugin was added:
cat ~/.config/opencode/opencode.jsonYou should see opencode-claude-auth@latest in the plugin array.
If you previously installed opencode-claude-auth without the @latest tag, update your config to use opencode-claude-auth@latest as shown above.
If the plugin isn't picking up a new version, clear the cached package and restart OpenCode:
rm -rf ~/.cache/opencode/packages/opencode-claude-auth@latest/The plugin is now installed and configured. When you run OpenCode, it will automatically use your Claude Code credentials — no separate login needed.
If you encounter issues, see the main README troubleshooting section.