OmniRoute Routing CLI
diegosouzapw/OmniRoute
Creates, switches, and inspects OmniRoute model-routing combos, plus a suggestion command with cost and latency constraints.
Load for any work that touches OpenCode — its routes, events, message or session shapes, plugins, the pinned CLI/client version, "what's new in OpenCode 2.0.x", or a bug that looks like OpenCode…
$ npx skills add openchamber/openchamber --skill opencode-v2 -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install openchamber/openchamber opencode-v2 --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/openchamber/openchamber.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/opencode-v2 .claude/skills/opencode-v2 && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "opencode-v2" agent skill from https://github.com/openchamber/openchamber/tree/main/.agents/skills/opencode-v2 into .claude/skills/opencode-v2/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opencode-v2", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/openchamber/openchamber/tree/main/.agents/skills/opencode-v2Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add openchamber/openchamber --skill opencode-v2 -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install openchamber/openchamber opencode-v2 --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openchamber/openchamber.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/opencode-v2 .agents/skills/opencode-v2 && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "opencode-v2" agent skill from https://github.com/openchamber/openchamber/tree/main/.agents/skills/opencode-v2 into .agents/skills/opencode-v2/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opencode-v2", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add openchamber/openchamber --skill opencode-v2 -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install openchamber/openchamber opencode-v2 --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openchamber/openchamber.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/opencode-v2 .cursor/skills/opencode-v2 && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "opencode-v2" agent skill from https://github.com/openchamber/openchamber/tree/main/.agents/skills/opencode-v2 into .cursor/skills/opencode-v2/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opencode-v2", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/openchamber/openchamber.git --path .agents/skills/opencode-v2--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add openchamber/openchamber --skill opencode-v2 -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install openchamber/openchamber opencode-v2 --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openchamber/openchamber.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/opencode-v2 .gemini/skills/opencode-v2 && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "opencode-v2" agent skill from https://github.com/openchamber/openchamber/tree/main/.agents/skills/opencode-v2 into .gemini/skills/opencode-v2/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opencode-v2", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install openchamber/openchamber opencode-v2Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add openchamber/openchamber --skill opencode-v2 -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/openchamber/openchamber.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/opencode-v2 .github/skills/opencode-v2 && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "opencode-v2" agent skill from https://github.com/openchamber/openchamber/tree/main/.agents/skills/opencode-v2 into .github/skills/opencode-v2/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opencode-v2", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add openchamber/openchamber --skill opencode-v2 -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install openchamber/openchamber opencode-v2 --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openchamber/openchamber.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/opencode-v2 .opencode/skills/opencode-v2 && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "opencode-v2" agent skill from https://github.com/openchamber/openchamber/tree/main/.agents/skills/opencode-v2 into .opencode/skills/opencode-v2/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opencode-v2", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
opencode-v2Load for any work that touches OpenCode — its routes, events, message or session shapes, plugins, the pinned CLI/client version, "what's new in OpenCode 2.0.x", or a bug that looks like OpenCode…
Opencode V2 is an agent skill from openchamber/openchamber. Load for any work that touches OpenCode — its routes, events, message or session shapes, plugins, the pinned CLI/client version, "what's new in OpenCode 2.0.x", or a bug that looks like OpenCode behaving differently than OpenChamber expects. OpenChamber runs on OpenCode 2.x since 2026-09; 1.x code paths are gone.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/mcp-spawn-probe.md`).
The repository describes itself as: Agentic Development Environment based on OpenCode AI agent. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit de84da2. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitopencodebunFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
OPENCODE_PASSWORDOPENCODE_SERVER_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Opencode V2 loads about 2.2k tokens when it runs, and up to ~2.8k if it reads all its reference files. Until then it costs about 82 tokens; SKILL.md has 1,131 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from openchamber/openchamber at commit de84da2, republished under its MIT licence (© openchamber). 1,131 words, ~2,249 tokens.
.claude/skills/opencode-v2/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.OpenChamber moved from the OpenCode 1.x API to 2.x in one cutover (PR #3837,
2026-09). Everything OpenCode-facing speaks 2.x: routes under /api/*, one
global /api/event stream of session.* events, sessions as cursor-paged
lists, messages with their parts inline, plugins hot-reloaded from watched
config, @opencode/client + @opencode/schema as the only SDK. A bug report
that mentions 1.x behaviour (/session without /api, message.updated
events, auth.json, @opencode-ai/sdk) describes the old world; answer from
the 2.x code, not from memory of 1.x.
packages/ui/src/lib/opencode/client.ts — every official OpenCode call the
shared UI makes; projection.ts turns wire shapes into the OpenChamber
domain model in model.ts; events.ts translates wire events;
plugins.ts translates the experimental plugin routes; session-stats.ts
translates the experimental session.stats usage route; websearch.ts
translates web search (providers, the websearch config choice, keys, the
tool's text result and its first-use consent form). These files are the
only place that knows 2.x wire shapes. Rendering and stores
read the domain model; fix a missing field there, never with a shim.packages/web/server/lib/opencode/proxy.js forwards /api/* as-is (2.x
serves under /api itself) and folds OpenChamber-owned session state into
the records it serves. env-runtime.js launches opencode serve.plugin-spec.js and
agent-tool/runtime.js, declared through the watched
<dataDir>/opencode.managed.json (OPENCODE_CONFIG), so a settings change
applies without a restart. Only the binary, port and external toggle restart.On 2.x a read through the location middleware builds that directory's location, and the build starts every configured local MCP server for it. The location then lives until an hour without session events. So each read names a directory, and only one the user is working in:
protocol/src/api.ts lists the
groups with locationMiddleware). Session routes resolve the session's own
location; GET /api/session, /api/session/active and /api/credential
are global and start nothing.x-opencode-directory header,
percent-encoded, or a location[directory] query. A ?directory= query is
ignored.opencodeClient with the current directory; server code with no
directory of its own uses the lifecycle's getDefaultOpenCodeDirectory(),
the last-used directory it warmed at startup.A report of processes multiplying, memory climbing with MCP servers enabled, or MCP servers starting in projects nobody opened: reproduce it with references/mcp-spawn-probe.md before reading code.
Each exists because 2.x has no route for it. When a tag adds the route, the workaround goes and the record comes from OpenCode.
openchamber-sessions/archive-store.js
keeps it per data dir and the proxy folds it into session reads.
Session metadata is not a workaround since 2.0.15: it lives on the OpenCode
record, written by merge-then-PATCH in session-metadata-store.js, which
also migrates the old sessions-metadata.json. Provider credentials are
not one either since 2.0.20: opencode/auth.js reads GET /api/credential.v1-migration-topup.js rewinds the migration cursor before a managed start,
only when no revisited session has 2.x activity.ref.Open asks upstream (OpenCode Slack): declaring 500 bodies on session mutations. Dropped: an import route for missing 1.x sessions (the top-up workaround is enough). Check the newest tag before re-asking.
Verified against live 2.x servers; re-check on a newer tag before relying on a gap.
provider.updated / model.updated with that
location.directory. Recovery rides on those events (markConfigCatalogStale).opencode.json or auth.json; /api/provider is the only view, and
it strips options.fetch, so nothing tells a directly callable provider from
one that only works through OpenCode. Without a zen login OpenCode sets
options.apiKey = "public" on zen and trims it to free models: those run on
OpenCode's infrastructure and are called only through OpenCode.LocationNotFoundError. STATUS_BY_TAG does not map it
to 404 on purpose: fetchPermission reads 404 as "settled", which would let
auto-accept fail open. POST /api/session/:id/move works on such a session.shell.remove kills the process
but hands the agent a Shell.NotFoundError, and agents relaunch the command,
so stopBackgroundShell posts a cancellation note to the agent first.opencode run --agent X uses the default model, not the agent's: pass
-m provider/model#variant in batch runs.opencode serve started from the app's shell answers 401:
the shell inherits the desktop's OPENCODE_PASSWORD, which wins over
OPENCODE_SERVER_PASSWORD. Start it with env -u OPENCODE_PASSWORD (Basic
auth user opencode).~/projects/opencode, branch origin/v2 and its
v2.x.y tags (git fetch origin --tags there; never edit it). Server
behaviour: packages/core/src, HTTP surface: packages/server/src/handlers/*,
wire types: packages/schema/src, packages/protocol/src/groups.MINIMUM_OPENCODE_VERSION in
packages/web/server/lib/opencode/compatibility.js; raise it when OpenChamber
starts depending on a route a newer tag added.opencodeCli.version in packages/electron/package.json
(the bundled binary) and @opencode/client / @opencode/schema in the
root, ui, web and vscode manifests, plus @opencode/cli@ in the
Dockerfile. They move together.Answer from the diff. Done when every API-facing change between the pinned tag and the newest tag is classified.
git fetch origin --tags, pinned = opencodeCli.version,
newest = git tag -l 'v2.*' | sort -V | tail -1, then
git diff --stat vPINNED..vNEWEST -- packages/schema/src packages/protocol/src packages/server/src packages/client packages/plugin/src. Ignore packages/tui, packages/app, packages/web.Move every pin to the same tag and check out that tag in the reference
checkout (git checkout vX.Y.Z in ~/projects/opencode), bun install, then tsc in packages/ui,
packages/web, packages/vscode; the isolated ui suites; web vitest; vscode
tests. A new message type or event needs a case in model.ts and
events.ts before it renders. Verify @opencode/cli@<tag> exists on npm:
the desktop packaging and the Docker image install it.
© openchamber, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in .agents/skills/opencode-v2 of openchamber/openchamber.
Open the folder on GitHubat commit de84da2
Opencode V2 next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Opencode V2 this skillopenchamber/openchamber | 11k | — | ~2.2k | Automated safety check: Pass | MIT | |
| OmniRoute Routing CLIdiegosouzapw/OmniRoute | 74k | — | ~342 | Automated safety check: Pass | MIT | |
| OmniRoute Combo Routingdiegosouzapw/OmniRoute | 74k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Intelligence Routeruvnet/ruflo | 74k | — | ~874 | Automated safety check: Notes | MIT | |
| SPA Routes and Featureslobehub/lobehub | 83k | — | ~3.2k | Automated safety check: Pass | Custom licence | |
| Routingalsk1992/CloddsBot | 2.9k | — | ~1.6k | Automated safety check: Pass | MIT |
diegosouzapw/OmniRoute
Creates, switches, and inspects OmniRoute model-routing combos, plus a suggestion command with cost and latency constraints.
diegosouzapw/OmniRoute
Manages OmniRoute routing combos through its REST API: create and update combos, choose from 19 strategies, set fallback chains, test outcomes and read metrics.
ruvnet/ruflo
Route tasks via the 3-tier model selector and learned patterns; emits a routing rationale via hooksexplain
lobehub/lobehub
Explains LobeHub's split between src/routes page segments and src/features domain code, and where router config, redirects and platform adapters belong.
alsk1992/CloddsBot
Multi-agent routing, channel bindings, and tool policies. An agent skill from alsk1992/CloddsBot.
langflow-ai/langflow
Batch-scan Langflow frontend routes for accessibility issues using the Python IBM Equal Access scanner (scripts/a11y/a11yscan.py) and produce JSON/Markdown/HTML reports.
openchamber/openchamber
A skill your agent uses when creating or modifying OpenChamber UI components, styling, colors, buttons, visual states, themes, or icons.
openchamber/openchamber
A skill your agent uses when creating or modifying OpenChamber shared UI data access, OpenCode SDK calls, RuntimeAPIs, runtime fetch/auth/URLs, authenticated browser assets, bridges/proxies, runtime…
openchamber/openchamber
A skill your agent uses when implementing or modifying OpenChamber sortable or drag-to-reorder behavior, especially @dnd-kit, touch/mobile interactions, variable-width items, or wrapping layouts.
openchamber/openchamber
A skill your agent uses when creating or modifying OpenChamber UI text, labels, buttons, placeholders, aria labels, empty states, toasts, dialogs, settings copy, navigation labels, or any…
openchamber/openchamber
A skill your agent uses when implementing or reviewing code on interaction, render, event, polling, synchronization, list-processing, store-selector, cache, indexing, or high-volume data paths; when…
openchamber/openchamber
A skill your agent uses when working with the OpenChamber iOS Simulator app without opening Xcode - boot/install/launch the Capacitor iOS app, start a browser stream, tap/type/gesture/rotate…
Load for any work that touches OpenCode — its routes, events, message or session shapes, plugins, the pinned CLI/client version, "what's new in OpenCode 2.0.x", or a bug that looks like OpenCode…. Opencode V2 is an agent skill from openchamber/openchamber.x", or a bug that looks like OpenCode behaving differently than OpenChamber expects.
Run `npx skills add openchamber/openchamber --skill opencode-v2 -a claude-code`. Or copy the skill folder (.agents/skills/opencode-v2 in openchamber/openchamber) into .claude/skills/opencode-v2 in your project. Claude Code loads it when a task matches its description.
Run `npx skills add openchamber/openchamber --skill opencode-v2 -a codex`. Or copy the skill folder (.agents/skills/opencode-v2 in openchamber/openchamber) into .agents/skills/opencode-v2 in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add openchamber/openchamber --skill opencode-v2 -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/opencode-v2, .gemini/skills/opencode-v2, .github/skills/opencode-v2 and .opencode/skills/opencode-v2 in your project.
Going by SKILL.md and its folder, Opencode V2 needs the command-line tools its instructions call (git, opencode and bun) and credentials named OPENCODE_PASSWORD and OPENCODE_SERVER_PASSWORD. Our summary lists: Docker.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Opencode V2 is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 592 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Opencode V2: OmniRoute Routing CLI (diegosouzapw/OmniRoute, 74k stars), OmniRoute Combo Routing (diegosouzapw/OmniRoute, 74k stars), Intelligence Route (ruvnet/ruflo, 74k stars) and SPA Routes and Features (lobehub/lobehub, 83k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
openchamber (a GitHub organization) maintains it in openchamber/openchamber, which has 11,227 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on October 7, 2026.
Source: openchamber/openchamber on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.