a local gui for managing opencode configurations. toggle mcp servers, edit skills, manage plugins, handle auth - no json editing required.
npm install -g opencode-studio-server
visit opencode.micr.dev and click "Launch Backend" in the sidebar.
windows
quickstart.bat
macos / linux
chmod +x quickstart.sh && ./quickstart.sh
open http://localhost:1080
gh cliflowchart LR
A[Browser] -->|HTTP| B(Express API :1920+)
B -->|Read/Write| C[~/.config/opencode/]
C --> D[opencode.json]
C --> E[skill/]
C --> F[plugin/]
| route | actions |
|---|---|
/mcp |
toggle switches, add via npx command, search/filter |
/profiles |
create/switch isolated environments |
/skills |
create from template, bulk import, edit in monaco |
/plugins |
pick template, bulk import, click to edit |
/commands |
browse custom slash commands |
/usage |
token costs, model breakdown, project stats |
/auth |
login/logout, save/switch credential profiles |
/settings |
general, system prompt, github sync, oh my opencode models |
paste multiple raw github urls (one per line):
https://raw.githubusercontent.com/.../skills/brainstorming/SKILL.md
https://raw.githubusercontent.com/.../skills/debugging/SKILL.md
https://raw.githubusercontent.com/.../skills/tdd/SKILL.md
click fetch → preview with checkboxes → existing items unchecked → import selected
opencode studio supports deep links for one-click installs from external sites.
note: github blocks custom protocols like
opencodestudio://in user content. use a redirect page on github pages to bypass this.
| protocol | description |
|---|---|
opencodestudio://launch |
start backend only |
opencodestudio://launch?open=local |
start backend + open localhost:1080+ |
opencodestudio://install-mcp?name=NAME&cmd=COMMAND |
install mcp server |
opencodestudio://import-skill?url=URL |
import skill from url |
opencodestudio://import-plugin?url=URL |
import plugin from url |
add mcp server button (for docs/repos):
<a href="https://github.com/Microck/opencode-studio">
<img src="https://img.shields.io/badge/opencode-studio-brown" alt="Add with OpenCode Studio" />
</a>
import skill button:
<a href="https://github.com/Microck/opencode-studio/raw/v2.3.0/opencodestudio://import-skill?url=https%3A%2F%2Fraw.githubusercontent.com%2F...%2FSKILL.md">
Import Skill
</a>
with environment variables:
opencodestudio://install-mcp?name=api-server&cmd=npx%20-y%20my-mcp&env=%7B%22API_KEY%22%3A%22%22%7D
parameters must be url-encoded:
- spaces → %20
- / → %2F
- : → %3A
- { → %7B
- } → %7D
when clicking deep links, users see a confirmation dialog showing the command or url and a warning about trusting the source.
opencode-studio/
├── client-next/ # next.js 16 frontend
│ ├── src/app/ # pages (mcp, profiles, skills, plugins, auth, settings, usage)
│ ├── src/components/ # ui components
│ └── public/ # static assets
├── server/
│ └── index.js # express api
├── quickstart.bat
├── quickstart.sh
└── package.json # runs both with concurrently
config locations:
- opencode config: ~/.config/opencode/
- studio data: ~/.config/opencode-studio/
- profiles: ~/.config/opencode-profiles/
| problem | fix |
|---|---|
| "opencode not found" | ensure ~/.config/opencode/opencode.json exists |
| port conflicts | both services auto-detect available ports (backend 1920+, frontend 1080+) |
| skills not showing | check ~/.config/opencode/skill/ has SKILL.md files |
| bulk import fails | ensure urls are raw github links |
| "Launch Backend" not working | run npm install -g opencode-studio-server first |
| protocol handler not registered | run opencode-studio-server --register as admin |
| github sync not working | run gh auth login first |
mit
$ claude mcp add opencode-studio \
-- python -m otcore.mcp_server <graph>