Skip to content

Instantly share code, notes, and snippets.

@srmdn
Last active May 29, 2026 23:02
Show Gist options
  • Select an option

  • Save srmdn/448d142a122208c47e586a0d78323b3e to your computer and use it in GitHub Desktop.

Select an option

Save srmdn/448d142a122208c47e586a0d78323b3e to your computer and use it in GitHub Desktop.
Oh My OpenAgent (oMo) config + guide - model routing, free tier notices, and setup instructions

Oh My OpenAgent (oMo) Configuration Guide

For the solo builders out there. Keeping up with AI moves fast — really fast. If you're like me, grinding alone, shipping projects on weekends, and watching your wallet, you know the pain. You need tools that punch above their weight without punching a hole in your bank account. This config is how I stay in the race: premium models when it matters, free tiers when it doesn't. Same quality, fraction of the cost. Let's catch up to this AI era together.

⚠️ Critical: Read Before Using

This config assumes you have both files set up correctly:

  1. oh-my-openagent.json~/.config/opencode/oh-my-openagent.json (this gist)
  2. opencode.json~/.config/opencode/opencode.json — you MUST add the Qwen status override section, otherwise multimodal-looker and ultrabrain fallbacks will fail.

What Is What?

Platform What It Is Website
OpenCode The base terminal AI coding agent. A native terminal UI for AI-powered coding with 75+ LLM providers. opencode.ai
oMo (Oh My OpenAgent) A plugin/harness that transforms OpenCode's single agent into a coordinated team of 10+ specialized agents (Sisyphus, Oracle, Librarian, etc.) with intelligent model routing. Previously called oh-my-opencode. ohmyopenagent.com
OpenCode Go A $10/month subscription ($5 first month) providing reliable access to popular open coding models: DeepSeek V4, GLM-5.1, MiniMax M2.7, Qwen3.6. Hosted in US/EU/Singapore for global access. Uses opencode-go/ model prefix. opencode.ai/go
OpenCode Zen A pay-as-you-go model provider ($20+ balance). Curated, benchmarked models specifically tested for coding agents. Also offers a free tier (zen/* models). Uses opencode/ (paid) and zen/ (free) prefixes. opencode.ai/zen

In short: OpenCode is the car. oMo is the racing team. OpenCode Go and Zen are different fuel stations with different pricing models.

Prerequisites

To use this config exactly as written, you need:

  1. OpenCode installed (installation guide)
  2. oMo plugin installed: bunx oh-my-opencode install
  3. OpenCode Go subscription ($10/month) — required for all opencode-go/* models. Subscribe here
  4. Qwen status override in opencode.jsonsee below

Changelog (April 29, 2026)

This config was rebuilt from the ground up to fix reliability issues and benchmark-based fallback ordering.

Why Kimi K2.6 Was Dropped

Kimi K2.6 was the previous primary model across 12 of 16 slots. As of late April 2026, it's broken in OpenCode Go:

  • Quota exhaustion: Moonshot API returns insufficient_balance / exceeded_current_quota_error (HTTP 429) even when Go quota is available. Open issue #24462.
  • Provider errors: Generic "Provider returned error" masking real upstream failures. Open issue #23887.
  • Tool call corruption: Malformed streaming tool calls can corrupt session state, poisoning subsequent turns even after switching models.
  • User-Agent throttling: Without the official KimiCLI header, requests are routed to lower-priority tiers.

All 12 Kimi slots were migrated to DeepSeek V4 Pro. Kimi now has zero presence in this config.

Why hy3-preview-free Was Proactively Migrated

Tencent's Hunyuan 3 preview (hy3-preview-free) was the primary model for 6 low-stakes agents (librarian, explore, sisyphus-junior, quick, unspecified-low, writing). It expires May 8, 2026 — just 9 days from this update. Rather than waiting for failures, all 6 slots were migrated:

  • Mid-complexity agents (librarian, explore, sisyphus-junior) → MiniMax M2.7 ($0.30/$1.20 per M tokens, 100 tok/s, 56.22% SWE-Pro)
  • Trivial agents (quick, unspecified-low, writing) → MiniMax M2.5-free (80.2% SWE-bench Verified, completely free)

Fallback Chain Rationale

Every premium slot uses the same capability-ordered fallback chain:

deepseek-v4-pro → glm-5.1 → minimax-m2.7 → minimax-m2.5-free

This ordering is backed by public benchmarks, not vibes:

Model SWE-Bench Pro vs Opus 4.6 Cost/M output Why This Position
GLM-5.1 (1st fallback) 58.4 (#1 globally) 94.6% $3.20-$4.40 Beats GPT-5.4 and Claude Opus 4.6 on SWE-Bench Pro. Runs autonomously for 8+ hours.
MiniMax M2.7 (2nd fallback) 56.22 ~90% $1.20 3-4x cheaper than GLM-5.1, 2x faster (100 tok/s). Near-Opus quality at 1/50th the price.
MiniMax M2.5-free (last resort) Free Safety net. Scores 80.2% on SWE-bench Verified. Free, so it can't break the bank.

Ultrabrain is the only exception — it inserts Qwen3.6 Plus ahead of GLM-5.1 (78.8% SWE-bench Verified, 61.6% Terminal-Bench 2.0, beats Claude 4.5 Opus on agentic coding).

Qwen Status Override

Qwen3.6 Plus is the primary model for multimodal-looker and the first fallback for ultrabrain. It's currently unavailable through the default OpenCode Go model list due to an upstream Alibaba Cloud issue. Add this override to make it available:

Add this to your ~/.config/opencode/opencode.json:

{
  "provider": {
    "opencode-go": {
      "models": {
        "qwen3.6-plus": {
          "name": "Qwen3.6 Plus",
          "reasoning": true,
          "status": "beta"
        },
        "qwen3.5-plus": {
          "name": "Qwen3.5 Plus",
          "reasoning": true,
          "status": "beta"
        }
      }
    }
  }
}

The "status": "beta" bypasses OpenCode's model visibility filter. Without it, multimodal-looker (image/PDF analysis) will have no working primary model.

See opencode.json example for context on this workaround.

DeepSeek V4 Pro Notes

Thinking mode bug: DeepSeek V4 Pro's thinking mode has a known issue where reasoning_content isn't preserved across multi-turn conversations in OpenCode. As of May 2026, this bug is still active — three complete fix PRs were closed without merge. The workaround: this config strips thinking blocks from all deepseek-v4-pro agents. The model runs in standard mode by default. Use Ctrl+T in the TUI to manually toggle reasoning for single-turn hard queries where the bug won't surface.

Promo pricing: DeepSeek V4 Pro is currently 75% off ($0.435/M input, $0.87/M output) through May 31, 2026. After that, list prices are $1.74/$3.48 per M tokens — still competitive, but 3-4x higher than current rates. Lock in heavy usage before the deadline.

Why DeepSeek V4 Pro as primary: Matches Claude Opus 4.6 on SWE-bench Verified (80.6%), leads on LiveCodeBench (93.5%, #1 globally) and Codeforces (3206). 1M context window, 384K max output. No other model in the Go catalog combines this capability with this price point.

v2 Update (May 25, 2026) — Tiered Reasoning

This config now uses selective thinking mode to optimize cost vs quality:

  • glm-5.1 agents (momus, visual-engineering, artistry): thinking enabled with tiered budgetTokens — 4k–16k depending on task complexity
  • minimax-m2.7 agents (sisyphus-junior): thinking enabled at 4k budget for delegated task execution
  • deepseek-v4-pro agents: thinking intentionally stripped to avoid the multi-turn reasoning_content bug. Use Ctrl+T for manual reasoning on critical queries.
  • low-effort agents (quick, writing, unspecified-low, explore, librarian): thinking disabled — no value from chain-of-thought overhead

Model Trust Tiers

Tier Models When to Trust
Premium deepseek-v4-pro Heavy reasoning, coding, architecture decisions, multi-step agents
Capable glm-5.1, minimax-m2.7, qwen3.6-plus Mid-complexity work, fallback for premium, research, task execution
Free/Utility minimax-m2.5-free, big-pickle Trivial tasks, typos, single-file changes, documentation
⚠️ Fragile qwen3.6-plus (multimodal only) Only model capable of image/PDF analysis. If Alibaba upstream issues persist, multimodal-looker breaks.

big-pickle transparency: big-pickle appears as fallback in 3 slots (quick, unspecified-low, writing). Its benchmark scores and capabilities are unknown — it's an OpenCode Go free-tier model with no published evaluation data. It only activates if minimax-m2.5-free fails, so risk is minimal.

Quick Start

  1. Install OpenCode and the oMo plugin
  2. Connect your OpenCode Go subscription: run /connect in OpenCode, select OpenCode Go, paste your API key. Get OpenCode Go
  3. Copy oh-my-openagent.json to ~/.config/opencode/
  4. Add the Qwen status override to ~/.config/opencode/opencode.json
  5. Restart OpenCode

Agent Model Assignments

Agent Primary Model Thinking Fallback Models Purpose
sisyphus opencode-go/deepseek-v4-pro — (Ctrl+T) glm-5.1, minimax-m2.7, minimax-m2.5-free Main orchestrator — delegates tasks to specialists
oracle opencode-go/deepseek-v4-pro — (Ctrl+T) glm-5.1, minimax-m2.7, minimax-m2.5-free High-IQ consultation for debugging & architecture
librarian opencode-go/minimax-m2.7 disabled glm-5.1, minimax-m2.5-free External research — docs, OSS, web search
explore opencode-go/minimax-m2.7 disabled glm-5.1, minimax-m2.5-free Codebase exploration & pattern discovery
multimodal-looker opencode-go/qwen3.6-plus ⚠️ minimax-m2.7, minimax-m2.5-free Image/PDF analysis (requires Qwen status override)
prometheus opencode-go/deepseek-v4-pro — (Ctrl+T) glm-5.1, minimax-m2.7, minimax-m2.5-free Strategic planning before execution
metis opencode-go/deepseek-v4-pro — (Ctrl+T) glm-5.1, minimax-m2.7, minimax-m2.5-free Pre-planning analysis & scope clarification
momus opencode-go/glm-5.1 enabled (16k) minimax-m2.7, minimax-m2.5-free Plan review & quality assurance
atlas opencode-go/deepseek-v4-pro — (Ctrl+T) glm-5.1, minimax-m2.7, minimax-m2.5-free Context mapping & codebase understanding
sisyphus-junior opencode-go/minimax-m2.7 enabled (4k) glm-5.1, minimax-m2.5-free Task execution worker

Category Model Assignments

Category Primary Model Thinking Fallback Models Use Case
visual-engineering opencode-go/glm-5.1 enabled (8k) qwen3.6-plus, kimi2.6, minimax-m2.7 UI/UX, CSS, design, frontend components
ultrabrain opencode-go/deepseek-v4-pro — (Ctrl+T) qwen3.6-plus, glm-5.1, minimax-m2.7, minimax-m2.5-free Hard logic, algorithms, architecture decisions
deep opencode-go/deepseek-v4-pro — (Ctrl+T) glm-5.1, minimax-m2.7, minimax-m2.5-free End-to-end implementation, autonomous problem-solving
artistry opencode-go/glm-5.1 enabled (16k) minimax-m2.7, minimax-m2.5-free Creative problem solving, unconventional approaches
quick opencode-go/minimax-m2.5-free disabled big-pickle Trivial tasks — typos, single-file changes
unspecified-low opencode-go/minimax-m2.5-free disabled big-pickle Low effort undefined tasks
unspecified-high opencode-go/deepseek-v4-pro — (Ctrl+T) glm-5.1, minimax-m2.7, minimax-m2.5-free High effort undefined tasks
writing opencode-go/minimax-m2.5-free disabled big-pickle, glm-5.1 Documentation, READMEs, technical writing

Cost Optimization Strategy

This config uses a tiered model strategy backed by benchmarks:

  • Premium (deepseek-v4-pro) → 9 slots: everything that requires heavy reasoning, coding, multi-step agents. 80.6% SWE-bench, 93.5% LiveCodeBench.
  • Mid-tier (glm-5.1, minimax-m2.7, qwen3.6-plus) → 7 slots: research, exploration, plan review, task execution. 56-78% SWE-bench range, 3-50x cheaper than Claude Opus. Selective thinking enabled on non-DeepSeek models.
  • Free/Utility (minimax-m2.5-free, big-pickle) → 3 slots: trivial tasks, typos, documentation. Free, with 80.2% SWE-bench Verified as the floor.

Budget impact: With DeepSeek's 75% promo ($0.87/M output vs Kimi's $4.00/M), the same OpenCode Go $60/month cap goes ~4.6x further for output-heavy agentic work.

Cross-provider safety net: Every premium agent has opencode-go/minimax-m2.5-free as a final fallback. If you hit OpenCode Go's usage limit, agents fall back to the free tier instead of failing.

Without OpenCode Go, replace opencode-go/* with models from Anthropic, OpenAI, Google, or local providers.

Customization

Adding Your Own Models

"your-agent-name": {
  "model": "provider/model-name",
  "fallback_models": [
    { "model": "provider/fallback-1" },
    { "model": "provider/fallback-2" }
  ]
}

Common providers and prefixes:

  • anthropic/claude-sonnet-4-6 — Anthropic Claude
  • openai/gpt-5.4 — OpenAI GPT
  • google/gemini-3.1-pro — Google Gemini
  • openrouter/provider/model — OpenRouter (aggregates 100+ providers)

Disabling Browser Features

This config disables browser-related skills and MCPs for security:

  • playwright, agent-browser, dev-browser (skills)
  • playwright, browser (MCPs)

Remove from disabled_skills/disabled_mcps if you need browser automation.

Useful oMo Commands

Once installed, use these in OpenCode:

  • /start-work — Launch Prometheus planner for complex tasks
  • /ultrawork — Full autonomous mode with self-correcting loops
  • /team — View active agent team and their assignments
  • /models — List all available models from connected providers

Troubleshooting

Issue Cause Fix
"No payment method" error Missing OpenCode Go subscription Subscribe to Go or switch models
Qwen models not appearing Alibaba upstream issue Add Qwen status override to opencode.json
DeepSeek reasoning error Thinking mode bug still active Config already strips thinking. Use Ctrl+T for manual single-turn reasoning only
Multimodal-looker fails Qwen upstream issues or missing override Verify status override, check Alibaba API status
Agent uses wrong model Config not loaded Verify file is at ~/.config/opencode/oh-my-openagent.json and restart
Usage cap hit Exceeded $60/month Go limit Fallback to minimax-m2.5-free is automatic

Links

License

Public domain. Use, modify, and share freely.

{
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/dev/assets/oh-my-opencode.schema.json",
"disabled_skills": [
"playwright",
"agent-browser",
"dev-browser"
],
"disabled_mcps": [
"playwright",
"browser"
],
"agents": {
"sisyphus": {
"model": "opencode-go/deepseek-v4-pro",
"textVerbosity": "low",
"fallback_models": [
{
"model": "opencode-go/glm-5.1"
},
{
"model": "opencode-go/minimax-m2.7"
},
{
"model": "opencode-go/minimax-m2.5-free"
}
]
},
"oracle": {
"model": "opencode-go/deepseek-v4-pro",
"textVerbosity": "low",
"fallback_models": [
{
"model": "opencode-go/glm-5.1"
},
{
"model": "opencode-go/minimax-m2.7"
},
{
"model": "opencode-go/minimax-m2.5-free"
}
]
},
"librarian": {
"model": "opencode-go/minimax-m2.7",
"textVerbosity": "low",
"thinking": {
"type": "disabled"
},
"fallback_models": [
{
"model": "opencode-go/glm-5.1"
},
{
"model": "opencode-go/minimax-m2.5-free"
}
]
},
"explore": {
"model": "opencode-go/minimax-m2.7",
"textVerbosity": "low",
"thinking": {
"type": "disabled"
},
"fallback_models": [
{
"model": "opencode-go/glm-5.1"
},
{
"model": "opencode-go/minimax-m2.5-free"
}
]
},
"multimodal-looker": {
"model": "opencode-go/qwen3.6-plus",
"textVerbosity": "low",
"fallback_models": [
{
"model": "opencode-go/minimax-m2.7"
},
{
"model": "opencode-go/minimax-m2.5-free"
}
]
},
"prometheus": {
"model": "opencode-go/deepseek-v4-pro",
"textVerbosity": "low",
"fallback_models": [
{
"model": "opencode-go/glm-5.1"
},
{
"model": "opencode-go/minimax-m2.7"
},
{
"model": "opencode-go/minimax-m2.5-free"
}
]
},
"metis": {
"model": "opencode-go/deepseek-v4-pro",
"textVerbosity": "low",
"fallback_models": [
{
"model": "opencode-go/glm-5.1"
},
{
"model": "opencode-go/minimax-m2.7"
},
{
"model": "opencode-go/minimax-m2.5-free"
}
]
},
"momus": {
"model": "opencode-go/glm-5.1",
"textVerbosity": "low",
"thinking": {
"type": "enabled",
"budgetTokens": 16000
},
"fallback_models": [
{
"model": "opencode-go/minimax-m2.7"
},
{
"model": "opencode-go/minimax-m2.5-free"
}
]
},
"atlas": {
"model": "opencode-go/deepseek-v4-pro",
"textVerbosity": "low",
"fallback_models": [
{
"model": "opencode-go/glm-5.1"
},
{
"model": "opencode-go/minimax-m2.7"
},
{
"model": "opencode-go/minimax-m2.5-free"
}
]
},
"sisyphus-junior": {
"model": "opencode-go/minimax-m2.7",
"textVerbosity": "low",
"thinking": {
"type": "enabled",
"budgetTokens": 4000
},
"fallback_models": [
{
"model": "opencode-go/glm-5.1"
},
{
"model": "opencode-go/minimax-m2.5-free"
}
]
}
},
"categories": {
"visual-engineering": {
"model": "opencode-go/glm-5.1",
"textVerbosity": "low",
"thinking": {
"type": "enabled",
"budgetTokens": 8000
},
"fallback_models": [
{
"model": "opencode-go/qwen3.6-plus"
},
{
"model": "opencode-go/kimi2.6"
},
{
"model": "opencode-go/minimax-m2.7"
}
]
},
"ultrabrain": {
"model": "opencode-go/deepseek-v4-pro",
"textVerbosity": "low",
"fallback_models": [
{
"model": "opencode-go/qwen3.6-plus"
},
{
"model": "opencode-go/glm-5.1"
},
{
"model": "opencode-go/minimax-m2.7"
},
{
"model": "opencode-go/minimax-m2.5-free"
}
]
},
"deep": {
"model": "opencode-go/deepseek-v4-pro",
"textVerbosity": "low",
"fallback_models": [
{
"model": "opencode-go/glm-5.1"
},
{
"model": "opencode-go/minimax-m2.7"
},
{
"model": "opencode-go/minimax-m2.5-free"
}
]
},
"artistry": {
"model": "opencode-go/glm-5.1",
"textVerbosity": "low",
"thinking": {
"type": "enabled",
"budgetTokens": 16000
},
"fallback_models": [
{
"model": "opencode-go/minimax-m2.7"
},
{
"model": "opencode-go/minimax-m2.5-free"
}
]
},
"quick": {
"model": "opencode-go/minimax-m2.5-free",
"textVerbosity": "low",
"thinking": {
"type": "disabled"
},
"fallback_models": [
{
"model": "opencode-go/big-pickle"
}
]
},
"unspecified-low": {
"model": "opencode-go/minimax-m2.5-free",
"textVerbosity": "low",
"thinking": {
"type": "disabled"
},
"fallback_models": [
{
"model": "opencode-go/big-pickle"
}
]
},
"unspecified-high": {
"model": "opencode-go/deepseek-v4-pro",
"textVerbosity": "low",
"fallback_models": [
{
"model": "opencode-go/glm-5.1"
},
{
"model": "opencode-go/minimax-m2.7"
},
{
"model": "opencode-go/minimax-m2.5-free"
}
]
},
"writing": {
"model": "opencode-go/minimax-m2.5-free",
"textVerbosity": "low",
"thinking": {
"type": "disabled"
},
"fallback_models": [
{
"model": "opencode-go/big-pickle"
},
{
"model": "opencode-go/glm-5.1"
}
]
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment