์‹œ๋ฆฌ์ฆˆ: oh-my-codex ์•„ํ‚คํ…์ฒ˜ ํ•ด๋ถ€

์ด ์‹œ๋ฆฌ์ฆˆ๋Š” OpenAI Codex CLI ํ™•์žฅ ๋Ÿฐํƒ€์ž„์ธ oh-my-codex(OMX)์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ํ•ด๋ถ€ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

ํŽธ๋‚ด์šฉํ•ต์‹ฌ
0ํŽธ (๋ณธ๋ฌธ)Overview3-Plane ์•„ํ‚คํ…์ฒ˜, OMC์™€์˜ ์ฐจ์ด, ์ „์ฒด ํ๋ฆ„
1ํŽธCodex CLI FoundationCodex CLI ์ž์ฒด์˜ ๊ตฌ์กฐ์™€ ํ™•์žฅ ํฌ์ธํŠธ
2ํŽธOMX IntegrationOMX๊ฐ€ Codex์— ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜๋‚˜
3ํŽธSkill System์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ •์˜ํ•˜๋‚˜
4ํŽธPrompt & Agent System์—์ด์ „ํŠธ๋Š” ๋ญ๊ณ  ์–ด๋–ป๊ฒŒ ์„ ํƒ๋˜๋‚˜
5ํŽธMCP Servers์–ด๋–ค MCP ๋„๊ตฌ๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋‚˜
6ํŽธState & Lifecycle์ƒํƒœ๋ฅผ ์–ด๋–ป๊ฒŒ ์œ ์ง€ํ•˜๋‚˜
7ํŽธTeam OrchestrationTeam ๋ชจ๋“œ๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋‚˜
8ํŽธNative & SparkRust ๋„ค์ดํ‹ฐ๋ธŒ ๋„๊ตฌ๋Š” ๋ญ”๊ฐ€

  • **oh-my-codex(OMX)**๋Š” OpenAI Codex CLI๋ฅผ ๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ์œผ๋กœ ํ™•์žฅํ•˜๋Š” ๋Ÿฐํƒ€์ž„ ๋ ˆ์ด์–ด
  • Codex CLI ์ž์ฒด๋ฅผ ๊ต์ฒดํ•˜์ง€ ์•Š๊ณ  ๊ทธ ์œ„์— ์กฐ์œจยท์ƒํƒœยท๋„๊ตฌ ์ธํ”„๋ผ๋ฅผ ์–น๋Š” ๊ตฌ์กฐ
  • ํ•ต์‹ฌ ์Šฌ๋กœ๊ฑด: โ€œYour codex is not alone.โ€

ํ•ด๋‹น ๊ฐœ๋…์ด ํ•„์š”ํ•œ ์ด์œ 

  • Codex CLI๋Š” ๋‹จ์ผ ์„ธ์…˜ ์—์ด์ „ํŠธ โ€” ํ•œ ๋ฒˆ์˜ ๋Œ€ํ™”์—์„œ ์ฝ”๋“œ ์ƒ์„ฑ/์ˆ˜์ •/์‹คํ–‰์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ, ์„ธ์…˜ ๊ฐ„ ์ƒํƒœ ์œ ์ง€๋‚˜ ๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ ์กฐ์œจ ๊ธฐ๋Šฅ์ด ์—†์Œ
  • ์‹ค์ œ ๊ฐœ๋ฐœ์—์„œ๋Š” ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ๊ฐ€ ์—ญํ• ์„ ๋‚˜๋ˆ„์–ด ๋ณ‘๋ ฌ ์ž‘์—…ํ•˜๊ณ , ์ƒํƒœ๋ฅผ ์ง€์† ๊ด€๋ฆฌํ•˜๋ฉฐ, ๊ฒ€์ฆ ๋ฃจํ”„๋ฅผ ๋Œ๋ ค์•ผ ํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ๋นˆ๋ฒˆ
  • OMX๋Š” ์ด ๊ฐ„๊ทน์„ ๋ฉ”์šฐ๋Š” ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋Ÿฐํƒ€์ž„

AS-IS

sequenceDiagram
    autonumber
    participant U as User
    participant CX as Codex CLI

    U->>CX: "refactor the API"
    CX->>CX: ๋‹จ์ผ ์„ธ์…˜์—์„œ ์ž‘์—… ์ˆ˜ํ–‰
    CX-->>U: ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
    Note over CX: ์„ธ์…˜ ์ข…๋ฃŒ ์‹œ ์ƒํƒœ ์†Œ๋ฉธ
    Note over CX: ๋ณ‘๋ ฌ ์ž‘์—… ๋ถˆ๊ฐ€
    Note over CX: ์—ญํ•  ๋ถ„๋‹ด ์—†์Œ

TO-BE

sequenceDiagram
    autonumber
    participant U as User
    participant OMX as OMX Runtime
    participant CX1 as Codex Worker 1
    participant CX2 as Codex Worker 2
    participant MCP as MCP Servers
    participant ST as .omx/ State

    U->>OMX: "team 2:executor refactor the API"
    OMX->>MCP: ์ƒํƒœ ์ดˆ๊ธฐํ™” (state_write)
    OMX->>CX1: frontend ๋ฆฌํŒฉํ„ฐ ์œ„์ž„
    OMX->>CX2: backend ๋ฆฌํŒฉํ„ฐ ์œ„์ž„
    CX1->>MCP: ์ง„ํ–‰ ์ƒํƒœ ๊ธฐ๋ก
    CX2->>MCP: ์ง„ํ–‰ ์ƒํƒœ ๊ธฐ๋ก
    OMX->>OMX: ๊ฒ€์ฆ & ๋จธ์ง€
    OMX->>ST: ์ตœ์ข… ์ƒํƒœ ์ €์žฅ
    OMX-->>U: ์™„๋ฃŒ ๋ณด๊ณ 
    Note over ST: ์„ธ์…˜ ๊ฐ„ ์ƒํƒœ ์œ ์ง€

3-Plane ์•„ํ‚คํ…์ฒ˜

OMX์˜ ์„ค๊ณ„๋ฅผ ๊ด€ํ†ตํ•˜๋Š” ํ•ต์‹ฌ ๊ตฌ์กฐ๋Š” ์„ธ ๊ฐœ์˜ Plane์œผ๋กœ ๋ถ„๋ฆฌ๋œ๋‹ค.

์šฉ์–ด ์ถœ์ฒ˜: โ€œControl Plane / Data(Execution) Planeโ€์€ Kubernetes, ๋„คํŠธ์›Œํฌ ์•„ํ‚คํ…์ฒ˜ ๋“ฑ ์ธํ”„๋ผ ๋ถ„์•ผ์—์„œ ๋ฒ”์šฉ์ ์œผ๋กœ ์“ฐ์ด๋Š” ๊ธฐ์กด ์šฉ์–ด๋ฅผ ์ฐจ์šฉํ•œ ๊ฒƒ์ด๋‹ค. OpenAI Codex ๊ณต์‹ ์šฉ์–ด๊ฐ€ ์•„๋‹ˆ๋ผ, OMX ์ €์ž๊ฐ€ ์ž์‹ ์˜ ์„ค๊ณ„๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์ ์šฉํ•œ OMX ๊ณ ์œ  ์•„ํ‚คํ…์ฒ˜ ์šฉ์–ด๋‹ค.

Plane์—ญํ• ๊ตฌํ˜„์ฒด์‹คํ–‰ ์ฃผ์ฒด
Control Plane์›Œํฌํ”Œ๋กœ์šฐ ์กฐ์œจ, ๋ผ์ดํ”„์‚ฌ์ดํด ๊ด€๋ฆฌ, CLIOMX CLI (src/cli/*.ts)์‚ฌ๋žŒ (ํ„ฐ๋ฏธ๋„ ์ง์ ‘ ์ž…๋ ฅ) โ€” ๊ฒฐ์ •๋ก ์ 
Execution Plane์‹ค์ œ ์—์ด์ „ํŠธ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑยท์ˆ˜์ •ยท์‹คํ–‰Codex CLI (AGENTS.md + ํ”„๋กฌํ”„ํŠธ๋กœ ์ž‘๋™)LLM (AGENTS.md ํ•ด์„) โ€” ํ™•๋ฅ ๋ก ์ 
State Plane์ง€์† ์ƒํƒœ, ๋ฉ”๋ชจ๋ฆฌ, ์ถ”์ , ํŒ€ ํ†ต์‹ MCP ์„œ๋ฒ„ 5๊ฐœ + .omx/ ๋””๋ ‰ํ† ๋ฆฌCodex CLI๊ฐ€ config.toml ๊ธฐ๋ฐ˜ ์ž๋™ ๊ธฐ๋™

์ด ๋ถ„๋ฆฌ์˜ ํ•ต์‹ฌ ์ด์ ์€ Codex CLI๋ฅผ ์‹คํ–‰ ์—”์ง„์œผ๋กœ ๊ทธ๋Œ€๋กœ ๋‘๋ฉด์„œ, ๊ด€์ธก์„ฑ(observability)๊ณผ ์žฌ๊ฐœ ๊ฐ€๋Šฅ์„ฑ(resumability)์„ OMX๊ฐ€ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์ด๋‹ค.

์ฃผ์˜: src/hooks/๋Š” Control Plane์ธ๊ฐ€ Execution Plane์ธ๊ฐ€?

src/hooks/ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์Šคํฌ๋ฆฝํŠธ(agents-overlay.ts, keyword-detector.ts ๋“ฑ)๋Š” ์ด๋ฆ„๊ณผ ๋‹ฌ๋ฆฌ Control Plane์—์„œ ์‹คํ–‰๋œ๋‹ค. src/cli/index.ts๊ฐ€ ์ด๋“ค์„ importํ•˜์—ฌ omx launch ๊ณผ์ •์—์„œ Node.js๋กœ ํ˜ธ์ถœํ•˜๋ฉฐ, LLM(Execution Plane)์ด ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.

Codex CLI๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ vs OMX๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ

Codex CLI (OpenAI ์ œ๊ณต)

  • ๋Œ€ํ™”ํ˜• REPL: codex "..."
  • ์ƒŒ๋“œ๋ฐ•์Šค: macOS Seatbelt / Linux Docker
  • ์Šน์ธ ๋ชจ๋“œ 3๊ฐ€์ง€: suggest / auto-edit / full-auto
  • AGENTS.md: ๊ณ„์ธต์  ์ง€์นจ ๋กœ๋“œ (~/.codex/AGENTS.md โ†’ ./AGENTS.md โ†’ ./subdir/AGENTS.md)
  • config.toml: ๋ชจ๋ธยทMCPยท๊ธฐ๋Šฅ ์„ค์ •
  • ๋ฉ€ํ‹ฐ ํ”„๋กœ๋ฐ”์ด๋”: OpenAI, Azure, Gemini, Ollama ๋“ฑ

Seatbelt โ€” Codex CLI์˜ macOS ์ƒŒ๋“œ๋ฐ•์Šค

Seatbelt๋Š” macOS์— ๋‚ด์žฅ๋œ ์ปค๋„ ๋ ˆ๋ฒจ ์ƒŒ๋“œ๋ฐ•์Šค ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค. sandbox-exec ๋ช…๋ น์–ด๋กœ ํ”„๋กœ์„ธ์Šค์— ๋ณด์•ˆ ์ •์ฑ…์„ ์ ์šฉํ•œ๋‹ค.

Codex CLI๋Š” full-auto ๋ชจ๋“œ์—์„œ ์—์ด์ „ํŠธ๊ฐ€ ์ž„์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, Seatbelt๋กœ ๋‹ค์Œ์„ ์ œํ•œํ•œ๋‹ค:

ํ—ˆ์šฉ์ฐจ๋‹จ
ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ ์ฝ๊ธฐ/์“ฐ๊ธฐํ”„๋กœ์ ํŠธ ์™ธ๋ถ€ ๋””๋ ‰ํ† ๋ฆฌ ์“ฐ๊ธฐ
OpenAI API ๋„คํŠธ์›Œํฌ ํ†ต์‹ ๊ทธ ์™ธ ๋„คํŠธ์›Œํฌ egress
ํ•„์ˆ˜ ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ ‘๊ทผ๋ฏผ๊ฐ ์‹œ์Šคํ…œ ํŒŒ์ผ ์ ‘๊ทผ

Linux์—์„œ๋Š” Seatbelt ๋Œ€์‹  Docker ์ปจํ…Œ์ด๋„ˆ + iptables๋กœ ๋™์ผํ•œ ๊ฒฉ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค. ์ฆ‰ ํ”Œ๋žซํผ๋ณ„๋กœ ๊ฒฉ๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋‹ค๋ฅด์ง€๋งŒ, โ€œ์—์ด์ „ํŠธ์˜ ํ™œ๋™ ๋ฒ”์œ„๋ฅผ ํ”„๋กœ์ ํŠธ ์•ˆ์œผ๋กœ ๊ฐ€๋‘๊ฒ ๋‹คโ€๋Š” ๋ชฉํ‘œ๋Š” ๊ฐ™๋‹ค.

OMX๊ฐ€ ์–น๋Š” ๊ฒƒ

  • omx CLI: setup, launch, team, ralph, explore, sparkshell ๋“ฑ 15+ ์„œ๋ธŒ์ปค๋งจ๋“œ
  • 5๊ฐœ MCP ์„œ๋ฒ„: state, memory, code-intel, trace, team
  • 33๊ฐœ Agent Prompt: architect, executor, explore ๋“ฑ ์—ญํ• ๋ณ„ ํ”„๋กฌํ”„ํŠธ
  • 35+ Skill: autopilot, ralph, team, ultrawork ๋“ฑ ์›Œํฌํ”Œ๋กœ์šฐ ์ง€์นจ์„œ
  • Team ๋ชจ๋“œ: tmux ๊ธฐ๋ฐ˜ N worker ๋ณ‘๋ ฌ ์กฐ์œจ
  • Rust ๋„ค์ดํ‹ฐ๋ธŒ ๋„๊ตฌ: explore-harness, sparkshell

OMC(oh-my-claudecode)์™€์˜ ํ†ตํ•ฉ ๋ฐฉ์‹ ์ฐจ์ด

OMX์™€ OMC๋Š” ๊ฐ™์€ ๋ชฉํ‘œ(CLI ์—์ด์ „ํŠธ ํ™•์žฅ)๋ฅผ ์ถ”๊ตฌํ•˜์ง€๋งŒ, ๋Œ€์ƒ ํ”Œ๋žซํผ์˜ ํ™•์žฅ ์ฑ„๋„์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ ‘๊ทผ์ด ๊ทผ๋ณธ์ ์œผ๋กœ ๋‹ค๋ฅด๋‹ค.

ํ•ญ๋ชฉOMC (Claude Code)OMX (Codex CLI)
ํ†ตํ•ฉ ์ฑ„๋„Hook(stdin/stdout) + MCP + Skill toolAGENTS.md + config.toml + CLI
์ด๋ฒคํŠธ ๊ฐ€๋กœ์ฑ„๊ธฐhooks.json์˜ 21๊ฐœ ๊ณต์‹ ์ด๋ฒคํŠธAGENTS.md์— ํ‚ค์›Œ๋“œ ๋งคํ•‘ ๋‚ด์žฅ
์—์ด์ „ํŠธ ํ˜ธ์ถœTask(subagent_type="omc:executor")/prompts:executor ๋˜๋Š” ์œ„์ž„
์Šคํ‚ฌ ํ˜ธ์ถœSkill("omc:ultrawork")$ultrawork (ํ‚ค์›Œ๋“œ ํŠธ๋ฆฌ๊ฑฐ)
MCP ์„œ๋ฒ„1๊ฐœ ํ†ตํ•ฉ ์„œ๋ฒ„ โ€œtโ€ (30+ ๋„๊ตฌ)5๊ฐœ ๋ถ„๋ฆฌ ์„œ๋ฒ„
Team ์›Œ์ปค๊ฐ™์€ ํ”„๋กœ์„ธ์Šค ๋‚ด ์„œ๋ธŒ์—์ด์ „ํŠธ๋…๋ฆฝ Codex CLI ํ”„๋กœ์„ธ์Šค (tmux)
๋„ค์ดํ‹ฐ๋ธŒ ๋„๊ตฌ์—†์ŒRust (explore-harness, sparkshell)

์™œ ๋‹ค๋ฅธ๊ฐ€?

  • Claude Code๋Š” Plugin ์‹œ์Šคํ…œ๊ณผ Hook ์ด๋ฒคํŠธ(stdin/stdout JSON)๋ฅผ ๊ณต์‹ ์ œ๊ณต โ†’ OMC๋Š” ์ด ์ฑ„๋„์„ ํ™œ์šฉ
  • Codex CLI๋Š” Hook ์ด๋ฒคํŠธ๊ฐ€ ์—†๊ณ , AGENTS.md์™€ config.toml์ด ์ฃผ์š” ํ™•์žฅ์  โ†’ OMX๋Š” ์ด ์ฑ„๋„์„ ํ™œ์šฉ
  • ํ™•์žฅ ์ฑ„๋„์ด ์ œํ•œ์ ์ด๋ฏ€๋กœ, OMX๋Š” ๋…๋ฆฝ CLI(omx ๋ช…๋ น์–ด)๋กœ ์ œ์–ด ๋ ˆ์ด์–ด๋ฅผ ๋ณ„๋„ ๊ตฌ์ถ•

์ˆœ์ฐจ ํ๋ฆ„ โ€” ์š”์ฒญ ํ•˜๋‚˜์˜ ์ƒ๋ช…์ฃผ๊ธฐ

์‚ฌ์šฉ์ž๊ฐ€ ultrawork refactor the API๋ผ๊ณ  ์ž…๋ ฅํ•˜๋ฉด:

  1. AGENTS.md ํ‚ค์›Œ๋“œ ๊ฐ์ง€ โ€” Codex CLI๊ฐ€ AGENTS.md๋ฅผ ์ฝ๊ณ , โ€œultraworkโ€ ํ‚ค์›Œ๋“œ๋ฅผ ๊ฐ์ง€
  2. Skill ๋กœ๋“œ โ€” $ultrawork โ†’ skills/ultrawork/SKILL.md ์ฝ๊ธฐ โ†’ ๋ณ‘๋ ฌ ์‹คํ–‰ ์ง€์นจ context ์ฃผ์ž…
  3. ์—์ด์ „ํŠธ ์œ„์ž„ โ€” /prompts:executor๋กœ ์ž‘์—… ์œ„์ž„ โ†’ MCP๋ฅผ ํ†ตํ•ด ์ƒํƒœ ๊ธฐ๋ก (state_write)
  4. ์ƒํƒœ ์ •๋ฆฌ โ€” ์™„๋ฃŒ ํ›„ ์ƒํƒœ๋ฅผ active: false๋กœ ๋งˆํ‚น, ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด๊ณ 

OMC์—์„œ๋Š” ์ด ํ๋ฆ„์ด Hook ์Šคํฌ๋ฆฝํŠธ(keyword-detector.mjs)์—์„œ ์‹œ์ž‘๋˜์ง€๋งŒ, OMX์—์„œ๋Š” AGENTS.md์— ๋‚ด์žฅ๋œ ํ‚ค์›Œ๋“œ ๋งคํ•‘ ํ…Œ์ด๋ธ”์—์„œ ์‹œ์ž‘๋œ๋‹ค๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ ์ฐจ์ด๋‹ค.

๋ณ‘๋ ฌ ํ๋ฆ„ โ€” Team ๋ชจ๋“œ

tmux โ€” Team ๋ชจ๋“œ์˜ ์‹คํ–‰ ๊ธฐ๋ฐ˜

tmux(terminal multiplexer)๋Š” ํ•˜๋‚˜์˜ ํ„ฐ๋ฏธ๋„ ์•ˆ์—์„œ ์—ฌ๋Ÿฌ ๋…๋ฆฝ ์…ธ ์„ธ์…˜์„ ์ƒ์„ฑยท๊ด€๋ฆฌํ•˜๋Š” ๋„๊ตฌ๋‹ค.

โ”Œโ”€ tmux session: omx-team โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ โ”Œโ”€ pane 0 โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€ pane 1 โ”€โ”€โ”€โ”€โ”€โ”€โ”         โ”‚
โ”‚ โ”‚ Worker 1      โ”‚ โ”‚ Worker 2      โ”‚         โ”‚
โ”‚ โ”‚ codex ...     โ”‚ โ”‚ codex ...     โ”‚         โ”‚
โ”‚ โ”‚ (frontend)    โ”‚ โ”‚ (backend)     โ”‚         โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ”‚
โ”‚ โ”Œโ”€ pane 2 โ”€โ”€โ”€โ”€โ”€โ”€โ”                           โ”‚
โ”‚ โ”‚ Worker 3      โ”‚                           โ”‚
โ”‚ โ”‚ codex ...     โ”‚                           โ”‚
โ”‚ โ”‚ (database)    โ”‚                           โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

OMX๊ฐ€ tmux๋ฅผ ์„ ํƒํ•œ ์ด์œ :

  • ๊ฐ Worker๊ฐ€ ๋…๋ฆฝ ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰๋˜๋ฏ€๋กœ ํ•œ Worker์˜ ํฌ๋ž˜์‹œ๊ฐ€ ๋‹ค๋ฅธ Worker์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ
  • pane ์บก์ฒ˜(tmux capture-pane)๋กœ ๊ฐ Worker์˜ ์ถœ๋ ฅ์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ ์ฝ์„ ์ˆ˜ ์žˆ์Œ
  • ์„ธ์…˜์ด ํ„ฐ๋ฏธ๋„ ์ข…๋ฃŒ ํ›„์—๋„ ์œ ์ง€๋˜์–ด ์žฅ์‹œ๊ฐ„ ์ž‘์—…์— ์ ํ•ฉ
  • OMX์˜ sparkshell๋„ tmux pane ์บก์ฒ˜๋ฅผ ํ™œ์šฉํ•˜์—ฌ Worker ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง

Team ๋ชจ๋“œ ์‹คํ–‰ ํ๋ฆ„

omx team 3:executor "build fullstack app" ์‹คํ–‰ ์‹œ:

  1. team-plan โ€” TeamRuntime ์ƒ์„ฑ, ์ž‘์—…์„ ์„œ๋ธŒํƒœ์Šคํฌ๋กœ ๋ถ„ํ•ด
  2. team-exec โ€” tmux session ์ƒ์„ฑ, ๊ฐ Worker๋ฅผ ๋…๋ฆฝ Codex CLI pane์œผ๋กœ ์‹คํ–‰
  3. ๋ณ‘๋ ฌ ์‹คํ–‰ โ€” Worker 1(frontend), Worker 2(backend), Worker 3(database) ๋™์‹œ ์ž‘์—…
  4. team-verify โ€” ๊ฒฐ๊ณผ ๊ฒ€์ฆ, ์ƒํƒœ ์—…๋ฐ์ดํŠธ, ์™„๋ฃŒ ๋ณด๊ณ 

Team ๋ชจ๋“œ์˜ ํ•ต์‹ฌ์€ ๊ฐ Worker๊ฐ€ ๋…๋ฆฝ Codex CLI ํ”„๋กœ์„ธ์Šค๋ผ๋Š” ์ ์ด๋‹ค. OMC์˜ ์„œ๋ธŒ์—์ด์ „ํŠธ์™€ ๋‹ฌ๋ฆฌ, tmux pane์—์„œ ์™„์ „ํžˆ ๊ฒฉ๋ฆฌ๋œ ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰๋œ๋‹ค.

๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ์š”์•ฝ

๋””๋ ‰ํ† ๋ฆฌ์—ญํ• ํ•™์Šต ํŒŒํŠธ
bin/CLI ์ง„์ž…์  (omx.js)01
src/cli/15+ ์„œ๋ธŒ์ปค๋งจ๋“œ ํ•ธ๋“ค๋Ÿฌ01
src/hooks/agents-overlay.ts, keyword-detector.ts, ์„ธ์…˜ ์ถ”์  (Control Plane โ€” src/cli/index.ts๊ฐ€ import)02
src/config/config.toml ์ƒ์„ฑ/๋จธ์ง€02
src/agents/์—์ด์ „ํŠธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ04
src/mcp/MCP ์„œ๋ฒ„ 5๊ฐœ ๊ตฌํ˜„05
src/team/Team ๋ชจ๋“œ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜07
src/state/์ƒํƒœ ๊ด€๋ฆฌ06
prompts/33๊ฐœ Agent Prompt04
skills/35+ Skill03
AGENTS.md์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋ธŒ๋ ˆ์ธ02
crates/, native/Rust ๋„ค์ดํ‹ฐ๋ธŒ ๋„๊ตฌ08

์ฐธ๊ณ  ๋ฌธ์„œ