oh-my-opencode.json์—์„œ ๋ฌด์—‡์„ ๋ฐ”๊พธ๋ฉด ๋™์ž‘์ด ์–ด๋–ป๊ฒŒ ๋‹ฌ๋ผ์ง€๋Š”์ง€, ์•ˆ์ „ํ•œ ๊ธฐ๋ณธ๊ฐ’ ์ค‘์‹ฌ์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋น ๋ฅด๊ฒŒ ์‹คํ–‰ (๋ณต๋ถ™)

cat ~/.config/opencode/oh-my-opencode.json
opencode models
bunx oh-my-opencode doctor --category authentication
bunx oh-my-opencode doctor --verbose
flowchart TD
A[ํŒŒ์ผ ์œ„์น˜] --> B[๊ณต๊ธ‰์ž]
B --> C[์—์ด์ „ํŠธ/์นดํ…Œ๊ณ ๋ฆฌ]
C --> D[์Šคํ‚ฌ/๋ธŒ๋ผ์šฐ์ €/tmux]
D --> E[doctor ๊ฒ€์ฆ]

๋‹จ๊ณ„๋ณ„ ์ ์šฉ

1) ์„ค์ • ํŒŒ์ผ ์šฐ์„ ์ˆœ์œ„ ํ™•์ธ

  • ์„ค๋ช…: ํ”„๋กœ์ ํŠธ(.opencode) > ์‚ฌ์šฉ์ž(~/.config/opencode) ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ์˜ˆ์‹œ: cat ~/.config/opencode/oh-my-opencode.json

2) JSONC๋กœ ์„ค์ • ๊ธฐ๋ก

  • ์„ค๋ช…: ์ฃผ์„/ํŠธ๋ ˆ์ผ๋ง ์ฝค๋งˆ๋ฅผ ํ™œ์šฉํ•ด ์„ค์ • ์˜๋„์™€ ๋ณ€๊ฒฝ ์ด์œ ๋ฅผ ๋‚จ๊น๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ์˜ˆ์‹œ: opencode models

3) Provider ์„ค์ • ์ ๊ฒ€

  • ์„ค๋ช…: Google Auth/Ollama(stream:false)/OpenCode Zen/Z.ai ๋“ฑ ๊ณต๊ธ‰์ž๋ณ„ ์ฃผ์˜์ ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ์˜ˆ์‹œ: bunx oh-my-opencode doctor --category authentication

4) Agent/Category ํŠœ๋‹

  • ์„ค๋ช…: ๋น„์šฉ๊ณผ ํ’ˆ์งˆ ๊ท ํ˜•์„ ์œ„ํ•ด agent/category ๋ชจ๋ธ์„ ๋ถ„๋ฆฌ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ์˜ˆ์‹œ: bunx oh-my-opencode doctor --verbose

5) Skills/Browser/Tmux/Hooks ํ™•์žฅ

  • ์„ค๋ช…: ์Šคํ‚ฌ ๋กœ๋“œ, ๋ธŒ๋ผ์šฐ์ € ์—”์ง„, tmux, ํ›… ์ž๋™ํ™”๋ฅผ ๋‹จ๊ณ„์ ์œผ๋กœ ์ผญ๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ์˜ˆ์‹œ: bunx oh-my-opencode doctor --verbose

6) ๋ณ€๊ฒฝ ํ›„ doctor ๊ฒ€์ฆ

  • ์„ค๋ช…: ์„ค์ • ๋ณ€๊ฒฝ๋งˆ๋‹ค doctor๋กœ ์˜ํ–ฅ ๋ฒ”์œ„๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ์˜ˆ์‹œ: bunx oh-my-opencode doctor --verbose

๋ถ€๋ก) ์›๋ฌธ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ (๊ฒ€์ˆ˜์šฉ, ์ดˆ๋ณด์ž๋Š” ๊ฑด๋„ˆ๋›ฐ๊ธฐ)

bunx oh-my-opencode install
{
  "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
  // Override specific agent models
  "agents": {
    "oracle": { "model": "openai/gpt-5.2" },           // Use GPT for debugging
    "librarian": { "model": "zai-coding-plan/glm-4.7" }, // Cheap model for research
    "explore": { "model": "opencode/gpt-5-nano" }        // Free model for grep
  },
  // Override category models (used by task)
  "categories": {
    "quick": { "model": "opencode/gpt-5-nano" },         // Fast/cheap for trivial tasks
    "visual-engineering": { "model": "google/gemini-3-pro" } // Gemini for UI
  }
}
{
  "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json"
}
{
  "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
  /* Agent overrides - customize models for specific tasks */
  "agents": {
    "oracle": {
      "model": "openai/gpt-5.2"  // GPT for strategic reasoning
    },
    "explore": {
      "model": "opencode/gpt-5-nano"  // Free & fast for exploration
    },
  },
}
{
  "agents": {
    "explore": {
      "model": "ollama/qwen3-coder",
      "stream": false
    }
  }
}
   curl -s http://localhost:11434/api/chat \
     -d '{"model": "qwen3-coder", "messages": [{"role": "user", "content": "Hello"}], "stream": false}'
{
  "agents": {
    "explore": {
      "model": "anthropic/claude-haiku-4-5",
      "temperature": 0.5
    },
    "multimodal-looker": {
      "disable": true
    }
  }
}
{
  "agents": {
    "oracle": {
      "thinking": {
        "type": "enabled",
        "budgetTokens": 200000
      }
    }
  }
}

๋งˆ๋ฌด๋ฆฌ ์ฒดํฌ

  • ์œ„ โ€œ๋น ๋ฅด๊ฒŒ ์‹คํ–‰โ€ ๋ช…๋ น์„ ์ตœ์†Œ 1๊ฐœ ์‹คํ–‰ํ–ˆ๋‹ค.
  • ์‹คํŒจ ์‹œ โ€œ์›๋ฌธ ์‹คํ–‰ ์ฝ”๋“œ ํ™•์žฅโ€์˜ ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์žฌ๊ฒ€์ฆํ–ˆ๋‹ค.
  • ์›๋ณธ ํ•ญ๋ชฉ ๋Œ€์กฐ ์ธ๋ฑ์Šค์—์„œ ๋น ์ง„ ๊ธฐ๋Šฅ์ด ์—†๋Š”์ง€ ํ™•์ธํ–ˆ๋‹ค.

์ถœ์ฒ˜