oh-my-codex 0.11.2 → 0.11.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/Cargo.lock +13 -5
  2. package/Cargo.toml +3 -1
  3. package/README.md +126 -655
  4. package/dist/cli/__tests__/index.test.js +8 -1
  5. package/dist/cli/__tests__/index.test.js.map +1 -1
  6. package/dist/cli/__tests__/packaged-script-resolution.test.d.ts +2 -0
  7. package/dist/cli/__tests__/packaged-script-resolution.test.d.ts.map +1 -0
  8. package/dist/cli/__tests__/packaged-script-resolution.test.js +18 -0
  9. package/dist/cli/__tests__/packaged-script-resolution.test.js.map +1 -0
  10. package/dist/cli/__tests__/ralph.test.js +32 -1
  11. package/dist/cli/__tests__/ralph.test.js.map +1 -1
  12. package/dist/cli/index.d.ts +3 -0
  13. package/dist/cli/index.d.ts.map +1 -1
  14. package/dist/cli/index.js +15 -6
  15. package/dist/cli/index.js.map +1 -1
  16. package/dist/cli/ralph.d.ts +6 -1
  17. package/dist/cli/ralph.d.ts.map +1 -1
  18. package/dist/cli/ralph.js +33 -7
  19. package/dist/cli/ralph.js.map +1 -1
  20. package/dist/team/__tests__/api-interop.test.js +13 -5
  21. package/dist/team/__tests__/api-interop.test.js.map +1 -1
  22. package/dist/team/__tests__/cross-rebase-smoke.test.d.ts +2 -0
  23. package/dist/team/__tests__/cross-rebase-smoke.test.d.ts.map +1 -0
  24. package/dist/team/__tests__/cross-rebase-smoke.test.js +161 -0
  25. package/dist/team/__tests__/cross-rebase-smoke.test.js.map +1 -0
  26. package/dist/team/__tests__/events.test.js +42 -3
  27. package/dist/team/__tests__/events.test.js.map +1 -1
  28. package/dist/team/api-interop.d.ts.map +1 -1
  29. package/dist/team/api-interop.js +49 -4
  30. package/dist/team/api-interop.js.map +1 -1
  31. package/dist/team/contracts.d.ts +1 -1
  32. package/dist/team/contracts.d.ts.map +1 -1
  33. package/dist/team/contracts.js +4 -0
  34. package/dist/team/contracts.js.map +1 -1
  35. package/package.json +4 -1
  36. package/src/scripts/demo-team-e2e.sh +10 -8
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  <p align="center">
4
4
  <img src="https://yeachan-heo.github.io/oh-my-codex-website/omx-character-nobg.png" alt="oh-my-codex character" width="280">
5
5
  <br>
6
- <em>Your codex is not alone.</em>
6
+ <em>Make Codex easier to steer, reuse, and scale up.</em>
7
7
  </p>
8
8
 
9
9
  [![npm version](https://img.shields.io/npm/v/oh-my-codex)](https://www.npmjs.com/package/oh-my-codex)
@@ -11,731 +11,202 @@
11
11
  [![Node.js](https://img.shields.io/badge/node-%3E%3D20-brightgreen)](https://nodejs.org)
12
12
  [![Discord](https://img.shields.io/discord/1466022107199574193?color=5865F2&logo=discord&logoColor=white&label=Discord)](https://discord.gg/qRJw62Gvh7)
13
13
 
14
- > **[Website](https://yeachan-heo.github.io/oh-my-codex-website/)** | **[Documentation](https://yeachan-heo.github.io/oh-my-codex-website/docs.html)** | **[CLI Reference](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#cli-reference)** | **[Workflows](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#workflows)** | **[OpenClaw Integration Guide](./docs/openclaw-integration.md)** | **[GitHub](https://github.com/Yeachan-Heo/oh-my-codex)** | **[npm](https://www.npmjs.com/package/oh-my-codex)** | **[Discord](https://discord.gg/qRJw62Gvh7)**
14
+ **Website:** https://yeachan-heo.github.io/oh-my-codex-website/
15
+ **Docs:** [Getting Started](./docs/getting-started.html) · [Agents](./docs/agents.html) · [Skills](./docs/skills.html) · [Integrations](./docs/integrations.html) · [Demo](./DEMO.md) · [OpenClaw guide](./docs/openclaw-integration.md)
15
16
 
16
- Operational runtime for [OpenAI Codex CLI](https://github.com/openai/codex).
17
+ OMX is an operational layer for [OpenAI Codex CLI](https://github.com/openai/codex).
17
18
 
18
- ## Featured Guides
19
+ It keeps Codex as the execution engine and adds:
20
+ - installable **prompts** and **skills**
21
+ - durable **team orchestration** for bigger tasks
22
+ - operator commands like `setup`, `doctor`, `status`, and `cancel`
23
+ - project/runtime state under `.omx/`
19
24
 
20
- - [OpenClaw / Generic Notification Gateway Integration Guide](./docs/openclaw-integration.md)
21
- - [Spark Initiative hotfix release notes (v0.9.1)](./docs/release-notes-0.9.1.md)
22
- - [Spark Initiative hotfix release body (v0.9.1)](./docs/release-body-0.9.1.md)
25
+ ## Who it is for
23
26
 
24
- ## Languages
25
-
26
- - [English](./README.md)
27
- - [한국어 (Korean)](./README.ko.md)
28
- - [日本語 (Japanese)](./README.ja.md)
29
- - [简体中文 (Chinese Simplified)](./README.zh.md)
30
- - [繁體中文 (Chinese Traditional)](./README.zh-TW.md)
31
- - [Tiếng Việt (Vietnamese)](./README.vi.md)
32
- - [Español (Spanish)](./README.es.md)
33
- - [Português (Portuguese)](./README.pt.md)
34
- - [Русский (Russian)](./README.ru.md)
35
- - [Türkçe (Turkish)](./README.tr.md)
36
- - [Deutsch (German)](./README.de.md)
37
- - [Français (French)](./README.fr.md)
38
- - [Italiano (Italian)](./README.it.md)
39
-
40
- OMX turns Codex into an operational runtime for real multi-step work:
41
- - **Team Mode first** — coordinated multi-agent execution with shared visibility, resume, recovery, and lifecycle control
42
- - **Role prompts + skills** — productized behaviors for planners, executors, reviewers, and reusable workflows
43
- - **Persistent runtime state** — MCP-backed state, memory, mailbox, plans, and diagnostics in `.omx/`
44
- - **Operator controls** — launch, inspect, verify, cancel, and resume long-running work without replacing Codex itself
45
-
46
- ## Why OMX
47
-
48
- Codex CLI is unusually well suited to persistent orchestration: it is lightweight enough to stay alive across long sessions, tmux lanes, and repeated handoffs without burying coordination under a heavy shell stack.
49
-
50
- That matters because orchestration is not just fanout. It needs durable state, shared situational awareness, visible recovery paths, and tight operator control. Heavier shell-centric wrappers can be fine for one-shot launches, but they are a poor fit for always-on coordination where every extra layer adds latency, noise, and failure surface.
51
-
52
- OMX keeps Codex as the execution engine and adds the runtime around it.
53
-
54
- ## Runtime model
55
-
56
- OMX is a small operational runtime layered around Codex:
57
- - **Execution plane:** Codex runs the actual agent work
58
- - **Control plane:** `omx` manages team workers, lifecycle commands, HUD/tmux integration, and recovery
59
- - **State plane:** MCP servers back state, mailbox, memory, diagnostics, and project context
60
-
61
- This keeps the stack simple: Codex stays in the loop, while OMX makes the work inspectable, resumable, and repeatable.
62
-
63
- ## Team Mode vs. Ultrawork
64
-
65
- If you are deciding between the two, start with **Team Mode**.
27
+ Use OMX if you already like Codex and want one or more of these:
28
+ - reusable agent prompts such as `/prompts:architect`
29
+ - workflow shortcuts such as `$plan`, `$team`, and `$ralph`
30
+ - a durable team runtime for bigger tasks
31
+ - better visibility into long-running work
66
32
 
67
- - **`$team` / `omx team`** default for substantial work. Use it when tasks share context, blockers matter, handoffs are likely, or you want durable runtime control.
68
- - **`$ultrawork`** — use it for lightweight parallel fanout when subtasks are mostly independent and the leader can merge results afterward.
33
+ If you just want plain Codex with no extra workflow layer, you probably do not need OMX.
69
34
 
70
- In short: **Ultrawork is parallelism. Team Mode is orchestration.**
35
+ ## Quick start
71
36
 
72
- Low-token Team Mode profile example:
37
+ ### Requirements
73
38
 
74
- ```bash
75
- OMX_TEAM_WORKER_CLI=codex \
76
- OMX_TEAM_WORKER_LAUNCH_ARGS='-c model_reasoning_effort="low"' \
77
- omx team 2:explore "short scoped analysis task"
78
- ```
79
-
80
- ## Requirements
81
-
82
- - Node.js >= 20 (CI validates Node 20 and current LTS, currently Node 22)
83
- - Codex CLI installed (`npm install -g @openai/codex`)
39
+ - Node.js 20+
40
+ - Codex CLI installed: `npm install -g @openai/codex`
84
41
  - Codex auth configured
42
+ - `tmux` if you want `omx team` on macOS/Linux
43
+ - `psmux` if you want native Windows team mode
85
44
 
86
- ### Platform & tmux
87
-
88
- OMX features like `omx team` require **tmux**:
89
-
90
- | Platform | tmux provider | Install |
91
- | -------------- | -------------------------------------------------------- | ---------------------- |
92
- | macOS | [tmux](https://github.com/tmux/tmux) | `brew install tmux` |
93
- | Ubuntu/Debian | tmux | `sudo apt install tmux`|
94
- | Fedora | tmux | `sudo dnf install tmux`|
95
- | Arch | tmux | `sudo pacman -S tmux` |
96
- | Windows | [psmux](https://github.com/marlocarlo/psmux) (native) | `winget install psmux` |
97
- | Windows (WSL2) | tmux (inside WSL) | `sudo apt install tmux`|
98
-
99
- > **Windows users:** [psmux](https://github.com/marlocarlo/psmux) provides a native `tmux` binary for Windows with 76 tmux-compatible commands. No WSL required.
100
-
101
- ## Quickstart (3 minutes)
45
+ ### Install
102
46
 
103
47
  ```bash
104
48
  npm install -g @openai/codex oh-my-codex
105
49
  omx setup
106
- omx doctor --team
107
- omx team 3:executor "ship the scoped task with verification"
108
- ```
109
-
110
- ## Model defaults and local-model overrides
111
-
112
- OMX treats default model selection as a small explicit contract:
113
-
114
- - `OMX_DEFAULT_FRONTIER_MODEL` — canonical frontier/default leader model
115
- - `OMX_DEFAULT_STANDARD_MODEL` — canonical standard subagent model
116
- - `OMX_DEFAULT_SPARK_MODEL` — canonical spark / low-complexity worker model
117
-
118
- If upstream defaults change, update the single canonical source instead of scattering model literals across prompts/docs/runtime.
119
-
120
- For local-model setups, you can persist overrides in `~/.codex/.omx-config.json` (or `CODEX_HOME/.omx-config.json`) under the top-level `env` field:
121
-
122
- ```json
123
- {
124
- "env": {
125
- "OMX_DEFAULT_FRONTIER_MODEL": "your-frontier-model",
126
- "OMX_DEFAULT_STANDARD_MODEL": "your-standard-model",
127
- "OMX_DEFAULT_SPARK_MODEL": "your-spark-model"
128
- }
129
- }
130
- ```
131
-
132
- Resolution order:
133
-
134
- 1. Real shell env vars
135
- 2. `.omx-config.json` `env` overrides
136
- 3. OMX built-in canonical defaults
137
-
138
- The same config-driven env overrides are forwarded when OMX launches native helpers such as `omx sparkshell`, so local-model routing stays consistent. By default OMX ships a three-lane split: frontier roles on `gpt-5.4`, standard subagents on `gpt-5.4-mini`, and spark/fast roles on `gpt-5.3-codex-spark`.
139
-
140
- Recommended trusted-environment launch profile:
141
-
142
- ```bash
143
- omx --xhigh --madmax
144
- ```
145
-
146
- ## New in v0.9.0 — Spark Initiative
147
-
148
- <p align="center">
149
- <img src="./docs/shared/omx-character-spark-initiative.jpg" alt="OMX character sparked for the Spark Initiative" width="720">
150
- </p>
151
-
152
- `0.9.0` is the **Spark Initiative** release: OMX now ships a stronger native fast path for read-only repository discovery, shell-native inspection, and cross-platform native distribution.
153
-
154
- `0.9.1` is the clean superseding hotfix release for the Spark Initiative line: it carries the packed-install smoke hydration fix that was merged into `dev` after `v0.9.0`, while `v0.9.0` remains historically red.
155
-
156
- - **`omx explore` native harness** — qualifying read-only exploration runs through a constrained native Rust helper with explicit allowlists and fallback behavior.
157
- - **`omx sparkshell`** — a first-class operator surface for fast shell-native inspection, adaptive summaries, and explicit tmux-pane capture.
158
- - **Cross-platform native release assets** — tagged releases now publish native archives for both `omx-explore-harness` and `omx-sparkshell`, plus `native-release-manifest.json` for hydration and checksum verification.
159
- - **Release-oriented verification lanes** — `npm run build:full`, `npm run test:explore`, `npm run test:sparkshell`, and packed-install smoke verification now cover the new native surfaces.
160
- - **Sharper install/runtime fallback order** — OMX prefers explicit `OMX_*_BIN` overrides, then hydrated per-user native cache, then repo-local development artifacts.
161
-
162
- Spark Initiative references:
163
-
164
- - [Release notes: `v0.9.1`](./docs/release-notes-0.9.1.md)
165
- - [Release body: `v0.9.1`](./docs/release-body-0.9.1.md)
166
- - [Release readiness draft: `v0.9.1`](./docs/qa/release-readiness-0.9.1.md)
167
-
168
- Quick Spark Initiative smoke path:
169
-
170
- ```bash
171
- npm run build:full
172
- omx explore --prompt "git log --oneline -10"
173
- omx sparkshell git --version
174
- omx sparkshell --tmux-pane %12 --tail-lines 400
50
+ omx doctor
175
51
  ```
176
52
 
177
- ## First Session
53
+ ### Fastest useful example
178
54
 
179
- Inside Codex:
180
-
181
- ```text
182
- $plan "ship OAuth callback safely"
183
- $team 3:executor "implement safely with shared verification"
184
- /prompts:architect "review the boundary decisions"
185
- /prompts:executor "take the next scoped task"
186
- ```
187
-
188
- From terminal:
55
+ Launch Codex with OMX:
189
56
 
190
57
  ```bash
191
- omx team 4:executor "parallelize a multi-module refactor"
192
- omx team status <team-name>
193
- omx team status <team-name> --json
194
- omx team status <team-name> --tail-lines 600
195
- omx team resume <team-name>
196
- omx team shutdown <team-name>
58
+ omx
197
59
  ```
198
60
 
199
- ## Core Model
200
-
201
- OMX installs and wires these layers:
61
+ Then try one command inside Codex:
202
62
 
203
63
  ```text
204
- User / Operator
205
- -> OMX runtime
206
- -> Codex CLI (execution engine)
207
- -> AGENTS.md (orchestration brain)
208
- -> ~/.codex/prompts/*.md (installable active/internal agent prompt catalog)
209
- -> ~/.codex/skills/*/SKILL.md (skill catalog)
210
- -> ~/.codex/config.toml (features, notify, MCP)
211
- -> .omx/ (runtime state, memory, plans, logs)
212
- ```
213
-
214
- ## Experimental: posture-aware routing
215
-
216
- This branch includes an experimental routing layer that separates:
217
-
218
- - `role`: agent responsibility (`executor`, `planner`, `architect`)
219
- - `tier`: reasoning depth / cost (`LOW`, `STANDARD`, `THOROUGH`)
220
- - `posture`: operating style (`frontier-orchestrator`, `deep-worker`, `fast-lane`)
221
-
222
- Current intent of the experiment:
223
-
224
- - **Frontier-orchestrator**: leader/router posture for steerable frontier models
225
- - **Deep-worker**: implementation-first posture for executor-style roles
226
- - **Fast-lane**: lightweight triage/search posture for fast models
227
-
228
- This is designed to make OMX's initial routing behavior more Sisyphus-like without removing the existing Hephaestus-like execution lane.
229
-
230
- ### How to test this experiment
231
-
232
- 1. Build the project (TypeScript + native Rust helpers):
233
-
234
- ```bash
235
- npm run build:full
236
- ```
237
-
238
- If you only need the TypeScript output, `npm run build` still runs just `tsc`.
239
-
240
- 2. Reinstall native agent configs:
241
-
242
- ```bash
243
- node bin/omx.js setup
244
- ```
245
-
246
- 3. Inspect generated native agent configs in `~/.omx/agents/` and confirm they now include:
247
- - `## OMX Posture Overlay`
248
- - `## Model-Class Guidance`
249
- - `## OMX Agent Metadata`
250
-
251
- 4. Spot-check representative roles:
252
- - `planner` / `architect` / `critic` -> `frontier-orchestrator`
253
- - `executor` / `build-fixer` / `test-engineer` -> `deep-worker`
254
- - `explore` / `writer` -> `fast-lane`
255
-
256
- 5. Run focused tests:
257
-
258
- ```bash
259
- node --test dist/agents/__tests__/definitions.test.js dist/agents/__tests__/native-config.test.js
64
+ /prompts:architect "analyze the authentication flow"
260
65
  ```
261
66
 
262
- This experiment currently changes native prompt generation and metadata, not the full prose of every prompt file.
67
+ That is the fastest way to feel what OMX changes: you get installable prompts, skills, and project guidance layered into a normal Codex session.
263
68
 
264
- ## Main Commands
69
+ ### First team run
265
70
 
266
- ```bash
267
- omx # Launch Codex inside the OMX runtime (+ HUD in tmux when available)
268
- omx team ... # Start/status/resume/shutdown coordinated team workers (default orchestration surface)
269
- omx setup # Install prompts/skills/config by scope + project .omx + scope-specific AGENTS.md
270
- omx agents-init . # Bootstrap lightweight AGENTS.md files for a repo/subtree
271
- omx doctor # Installation/runtime diagnostics
272
- omx cleanup # Kill orphaned OMX MCP server processes (--dry-run to inspect)
273
- omx doctor --team # Team Mode diagnostics
274
- omx ask ... # Ask local provider advisor (claude|gemini), writes .omx/artifacts/*
275
- omx resume # Resume a previous interactive Codex session
276
- omx explore ... # Default read-only exploration entrypoint (may use sparkshell backend)
277
- omx ralph # Launch Codex with ralph persistence mode active
278
- omx autoresearch <mission-dir> # Launch thin-supervisor autoresearch with keep/discard/reset parity
279
- omx status # Show active modes
280
- omx cancel # Cancel active execution modes
281
- omx reasoning <mode> # low|medium|high|xhigh
282
- omx tmux-hook ... # init|status|validate|test
283
- omx hooks ... # init|status|validate|test (plugin extension workflow)
284
- omx hud ... # --watch|--json|--preset
285
- omx version # Show version information
286
- omx help # Show help message
287
- ```
288
-
289
- Ask command examples:
290
-
291
- ```bash
292
- omx ask claude "review this diff"
293
- omx ask gemini "brainstorm alternatives"
294
- omx ask claude --agent-prompt executor "implement feature X with tests"
295
- omx ask gemini --agent-prompt=planner --prompt "draft a rollout plan"
296
- # underlying provider flags from CLI help:
297
- # claude -p|--print "<prompt>"
298
- # gemini -p|--prompt "<prompt>"
299
- ```
300
-
301
- Explore command examples:
71
+ If you want coordinated multi-agent execution:
302
72
 
303
73
  ```bash
304
- omx explore --prompt "which files define team routing"
305
- omx explore --prompt-file prompts/explore-task.md
306
- USE_OMX_EXPLORE_CMD=1 omx # advisory preference for simple read-only exploration prompts
74
+ omx team 3:executor "fix the failing tests with verification"
307
75
  ```
308
76
 
309
- Autoresearch command example:
77
+ Check on it later with:
310
78
 
311
79
  ```bash
312
- mkdir -p missions/demo
313
- cat > missions/demo/mission.md <<'EOF'
314
- # Mission
315
- Solve the scoped task in this repository.
316
- EOF
317
- cat > missions/demo/sandbox.md <<'EOF'
318
- ---
319
- evaluator:
320
- command: node scripts/eval.js
321
- format: json
322
- ---
323
- Stay inside the mission boundary and stop when the evaluator passes.
324
- EOF
325
- omx autoresearch missions/demo
326
- ```
327
-
328
- `omx autoresearch` now runs as a thin supervisor around one Codex experiment session at a time. A fresh launch creates a run-tagged `autoresearch/<slug>/<run-tag>` worktree lane, seeds the baseline evaluator row, writes authoritative per-run artifacts under `.omx/logs/autoresearch/<run-id>/`, and expects the session to hand back a repo-root `candidate.json` artifact. Each iteration's bootstrap instructions include the current baseline/last-kept state plus a bounded recent ledger summary, and `status=candidate` artifacts must point at the current worktree `HEAD` and last-kept base commit. After each session exit, OMX evaluates the candidate, records keep/discard/reset state, hard-resets discarded or ambiguous experiments back to the last kept commit, and relaunches the next iteration unless the run aborts. Use `omx autoresearch --resume <run-id>` to continue an existing run from its manifest/worktree.
329
-
330
- Autoresearch showcase:
331
-
332
- For the canonical autoresearch showcase — including completed research-style demos, missions, evaluators, and the lightweight runner script — see [`playground/README.md`](playground/README.md).
333
-
334
- `omx explore` is the default OMX surface for simple read-only exploration. It stays intentionally read-only and shell-only, and qualifying shell-native read-only tasks may be routed through `omx sparkshell` as a backend when that is the cheaper/more direct fit. The routing flag only adds advisory steering in generated session instructions; ambiguous or implementation-heavy requests stay on the normal Codex path, and OMX falls back normally if the explore harness is unavailable. The harness constrains Codex through a temporary allowlisted shell/bin layer so only approved repository-inspection command families are available during the offloaded run.
335
-
336
- - Current shell allowlist: `rg`, `grep`, `ls`, `find`, `wc`, `cat`, `head`, `tail`, `pwd`, `printf`
337
- - Current shell restrictions: no pipes, redirection, `&&`, `||`, `;`, subshells, path-qualified binaries, non-allowlisted commands, stdin-fed inspection, or path escapes outside the target repository (including existing symlink-resolved escapes)
338
- - `omx explore` is **not** a full parity surface for modern Codex read-only mode: it does not promise web search, MCP, images, or general-purpose tool access
339
-
340
-
341
- Packaging / install notes:
342
-
343
- - Published npm packages now include the Rust workspace files for the explore harness (`Cargo.toml`, `Cargo.lock`, `crates/`).
344
- - npm publishes no longer rely on publisher-platform native binaries.
345
- - Tagged releases build multi-platform native archives for both `omx-explore-harness` and `omx-sparkshell` via cargo-dist and attach them to the GitHub Release from `.github/workflows/release.yml`, with Linux published from musl-first targets for broader runtime compatibility.
346
- - Runtime now prefers `OMX_*_BIN` overrides, then a hydrated per-user native cache, then repo-local development artifacts.
347
- - `omx explore` keeps a source-install `cargo run --manifest-path crates/omx-explore/Cargo.toml -- ...` fallback in repository checkouts; packaged installs rely on release-asset hydration unless `OMX_EXPLORE_BIN` is set.
348
- - `omx sparkshell` hydrates from release assets when no override or repo-local build output is available; the release gate now proves that hydrated Linux assets still work in an older Dockerized Linux runtime before npm publish.
349
- - Release assets now include `native-release-manifest.json` with per-target download metadata and SHA-256 checksums.
350
- - Helpful local commands:
351
-
352
- ```bash
353
- npm run build:full
354
- npm run build:explore
355
- npm run build:explore:release
356
- npm run test:explore
357
- node scripts/smoke-packed-install.mjs --release-assets-dir ./release-assets
358
- # release workflow also reruns the same smoke in node:20-bullseye as an older-Linux-runtime proof gate
359
- node scripts/check-version-sync.mjs --tag v$(node -p "require('./package.json').version")
360
- ```
361
-
362
- `npm run build:full` is the one-shot source build for TypeScript plus the packaged explore harness and sparkshell native binary.
363
-
364
- Non-tmux team launch (advanced):
365
-
366
- ```bash
367
- OMX_TEAM_WORKER_LAUNCH_MODE=prompt omx team 2:executor "task"
368
- ```
369
-
370
- ## Hooks Extension (Additive Surface)
371
-
372
- OMX now includes `omx hooks` for plugin scaffolding and validation.
373
-
374
- - `omx tmux-hook` remains supported and unchanged.
375
- - `omx hooks` is additive and does not replace tmux-hook workflows.
376
- - Plugin files live at `.omx/hooks/*.mjs`.
377
- - Plugins are off by default; enable with `OMX_HOOK_PLUGINS=1`.
378
-
379
- See `docs/hooks-extension.md` for the full extension workflow and event model.
380
-
381
- ## Sparkshell (Spark Initiative surface)
382
-
383
- `omx sparkshell <command> [args...]` runs through a JS -> Rust sidecar bridge for fast command execution with adaptive summaries when output exceeds `OMX_SPARKSHELL_LINES`. In `0.9.0`, it became a first-class Spark Initiative surface: `omx explore` can use it as a backend for qualifying read-only shell-native tasks, while `omx sparkshell` remains the explicit operator-facing command for direct use.
384
-
385
- It remains an explicit operator-facing command, but OMX may also use it as a backend for qualifying `omx explore` read-only shell-native tasks. That backend relationship does not relax read-only safety: non-read-only or unsupported shell execution should still stay blocked or on the normal path.
386
-
387
- Current preview contract:
388
- - Short output stays raw; long output is summarized into markdown sections limited to `summary:`, `failures:`, and `warnings:`.
389
- - Summary mode uses the local Codex CLI via `codex exec` and prefers `OMX_SPARKSHELL_MODEL`, then `OMX_DEFAULT_SPARK_MODEL`, then the spark default model.
390
- - `--spark` / `--madmax-spark` remain team-worker launch flags; sparkshell model routing is controlled by env vars instead.
391
- - Native binary lookup order is `OMX_SPARKSHELL_BIN`, then the hydrated native cache, then packaged dev artifacts (when present), then repo-local workspace output `target/release/omx-sparkshell[.exe]`.
392
- - Team/leader pane summarization is explicit opt-in via tmux pane mode, for example:
393
-
394
- ```bash
395
- omx sparkshell --tmux-pane %12 --tail-lines 400
396
- ```
397
-
398
- - tmux pane mode captures a larger pane tail (100-1000 lines) and applies the same raw-vs-summary behavior to worker/leader pane context.
399
- - sparkshell pane summarization is not always-on; it is enabled only when explicitly requested.
400
-
401
- Preview build helpers:
402
-
403
- ```bash
404
- npm run build:sparkshell
405
- npm run test:sparkshell
406
- ```
407
-
408
- For a full local source build in one command, use `npm run build:full`.
409
-
410
- ## Launch Flags
411
-
412
- ```bash
413
- --yolo # Launch Codex in yolo mode
414
- --high # High reasoning effort (shorthand for -c model_reasoning_effort="high")
415
- --xhigh # xhigh reasoning effort (shorthand for -c model_reasoning_effort="xhigh")
416
- --madmax # DANGEROUS: bypass Codex approvals and sandbox
417
- --spark # Use Codex spark model for team workers only (~1.3x faster)
418
- --madmax-spark # spark model for workers + bypass approvals for leader and workers
419
- -w, --worktree[=<name>] # Launch Codex in a git worktree (detached when no name given)
420
- --force # Enable destructive maintenance (for example stale/deprecated skill cleanup)
421
- --dry-run # Show what would be done without doing it
422
- --keep-config # Skip config.toml cleanup during uninstall
423
- --purge # Remove .omx/ cache directory during uninstall
424
- --verbose # Show detailed output
425
- --scope <user|project> # setup only
426
- ```
427
-
428
- `--madmax` maps to Codex `--dangerously-bypass-approvals-and-sandbox`.
429
- Use it only in trusted/external sandbox environments.
430
-
431
- ### MCP workingDirectory policy (optional hardening)
432
-
433
- By default, MCP state/memory/trace tools accept caller-provided `workingDirectory`.
434
- To constrain this, set an allowlist of roots:
435
-
436
- ```bash
437
- export OMX_MCP_WORKDIR_ROOTS="/path/to/project:/path/to/another-root"
438
- ```
439
-
440
- When set, `workingDirectory` values outside these roots are rejected.
441
-
442
- ## Codex-First Prompt Control
443
-
444
- By default, OMX injects:
445
-
446
- ```text
447
- -c model_instructions_file="<cwd>/AGENTS.md"
448
- ```
449
-
450
- This merges `CODEX_HOME/AGENTS.md` with project `./AGENTS.md` guidance (when present), then appends the runtime overlay.
451
- It extends Codex behavior, but does not replace/bypass Codex core system policies.
452
-
453
- Controls:
454
-
455
- ```bash
456
- OMX_BYPASS_DEFAULT_SYSTEM_PROMPT=0 omx # disable AGENTS.md injection
457
- OMX_MODEL_INSTRUCTIONS_FILE=/path/to/instructions.md omx
458
- ```
459
-
460
- ## Team Mode
461
-
462
- Use team mode for broad work that benefits from parallel workers.
463
-
464
- Lifecycle:
465
-
466
- ```text
467
- start -> assign scoped lanes -> monitor -> verify terminal tasks -> shutdown
468
- ```
469
-
470
- Operational commands:
471
-
472
- ```bash
473
- omx team <args>
474
- omx team --help
475
- omx team api --help
476
80
  omx team status <team-name>
477
- omx team status <team-name> --json
478
- omx team status <team-name> --tail-lines 600
479
81
  omx team resume <team-name>
480
82
  omx team shutdown <team-name>
481
83
  ```
482
84
 
483
- ```bash
484
- omx resume --last
485
- ```
85
+ ## Core commands
486
86
 
487
- Important rule: do not shutdown while tasks are still `in_progress` unless aborting.
87
+ ### In the terminal
488
88
 
489
- ### Recommended high-control workflow: `ralplan -> team -> ralph`
89
+ | Command | What it does |
90
+ | --- | --- |
91
+ | `omx` | Launch Codex with OMX wiring |
92
+ | `omx setup` | Install prompts, skills, config, and AGENTS scaffolding |
93
+ | `omx doctor` | Verify the install |
94
+ | `omx team 3:executor "..."` | Start a coordinated tmux-based team |
95
+ | `omx team status <team-name>` | Inspect a running team |
96
+ | `omx status` | Show active OMX modes |
97
+ | `omx cancel` | Cancel active modes |
98
+ | `omx explore --prompt "..."` | Read-only repository exploration |
99
+ | `omx sparkshell <command>` | Shell-native inspection helper |
100
+ | `omx version` | Show version info |
490
101
 
491
- For contributors who want tighter control than `autopilot` but more coordination than `$ultrawork`, the strongest workflow is:
492
-
493
- ```text
494
- ralplan -> team -> ralph
495
- ```
496
-
497
- Why this combination works well:
498
- - **`ralplan`** turns a rough request into a spec, acceptance checks, and a lane-ready breakdown before workers start.
499
- - **`$team`** executes that plan with durable worker coordination, visible runtime state, and better handling of blockers than simple fanout.
500
- - **`$ralph`** keeps the loop alive until verification is real, evidence is fresh, and cleanup is explicit.
501
-
502
- In practice, this is the right workflow when you want to stay in control of planning and orchestration while still getting parallel execution. `autopilot` can chain these modes for you, but advanced users will often prefer running the sequence directly so they can tune worker roles, follow-up stages, and verification thresholds themselves.
503
-
504
- Example:
505
-
506
- ```bash
507
- omx ask --agent-prompt planner "ralplan: break this feature into worker lanes and acceptance checks"
508
- omx team 3:executor "execute the approved ralplan with shared runtime coordination"
509
- ```
102
+ ### Inside Codex
510
103
 
511
- Planned documentation/product direction: make `ralplan` produce stronger team follow-up guidance by default, including worker placement hints and an explicit follow-up path such as `--followup team`.
104
+ | Command | Use it for |
105
+ | --- | --- |
106
+ | `/prompts:architect "..."` | Analysis and boundary review |
107
+ | `/prompts:executor "..."` | Focused implementation work |
108
+ | `/skills` | Browse installed skills |
109
+ | `$plan "..."` | Build a plan before implementation |
110
+ | `$team 3:executor "..."` | Kick off coordinated team execution |
111
+ | `$ralph "..."` | Run persistent sequential execution |
512
112
 
513
- ### Why `omx team ralph` is a linked launch path
113
+ ## A simple mental model
514
114
 
515
- Use `omx team ralph ...` when the team run and Ralph follow-up should behave as
516
- one linked lifecycle, not as two unrelated commands.
115
+ OMX does **not** replace Codex.
517
116
 
518
- It does **not** spin up a separate team runtime. OMX uses the normal
519
- `omx team` startup path, then seeds linked team/Ralph state from launch time so
520
- later status, shutdown, and cancel flows can observe one connected run.
117
+ It adds a lightweight runtime around it:
118
+ - **Codex** does the actual agent work
119
+ - **OMX prompts and skills** make common roles and workflows reusable
120
+ - **`omx team`** adds durable tmux/worktree orchestration for bigger jobs
121
+ - **`.omx/`** stores runtime state, plans, logs, and memory
521
122
 
522
- - **Linked lifecycle/state:** launch records `linked_ralph=true` in team state,
523
- creates/updates Ralph state with `linked_team=true`, and later terminal team
524
- phases propagate into Ralph state. That gives one operator-visible chain for
525
- resume/cancel/final verification instead of a manual handoff after the fact.
526
- - **Cleanup/shutdown:** linked shutdown uses the Ralph-aware cleanup policy.
527
- Team cleanup happens first, Ralph is terminalized from the linked team result,
528
- branch rollback preserves worktree branches, and the run records linked
529
- terminal metadata plus Ralph cleanup events.
530
- - **Why not just `team` then later `ralph`:** if you start plain `team` and only
531
- launch Ralph afterward, OMX treats them as separate runs. You do not get
532
- linked terminal propagation, linked cancel ordering, or automatic Ralph-aware
533
- shutdown semantics for that original team run.
123
+ ## Start here if you are new
534
124
 
535
- Use this quick rule:
125
+ 1. Run `omx setup`
126
+ 2. Run `omx`
127
+ 3. Try `/prompts:architect "analyze <something>"`
128
+ 4. Try `/skills`
129
+ 5. When work gets bigger, use `$plan` or `omx team`
536
130
 
537
- | Path | Use when |
538
- |---|---|
539
- | `omx team ...` | You want parallel worker coordination only; you will inspect/close the run yourself. |
540
- | `omx team ralph ...` | You already know the team run should roll straight into persistent Ralph verification and linked cleanup. |
541
- | `omx team ...` then later `omx ask ... ralph` | You intentionally want a separate, manual second pass after reviewing team output or changing scope. |
131
+ ## Power-user notes
542
132
 
543
- ### Ralph Cleanup Policy
133
+ ### Team Mode vs Ultrawork
544
134
 
545
- When a team runs in ralph mode (`omx team ralph ...`), the shutdown cleanup
546
- applies a dedicated policy that differs from the normal path:
135
+ - **Team Mode** is the default for bigger, shared-context tasks. It gives you durable tmux/state/worktree orchestration.
136
+ - **Ultrawork** is lighter parallel fanout for more independent subtasks.
547
137
 
548
- | Behavior | Normal team | Ralph team |
549
- |---|---|---|
550
- | Force shutdown on failure | Throws `shutdown_gate_blocked` | Bypasses gate, logs `ralph_cleanup_policy` event |
551
- | Auto branch deletion | Deletes worktree branches on rollback | Preserves branches (`skipBranchDeletion`) |
552
- | Completion logging | Standard `shutdown_gate` event | Additional `ralph_cleanup_summary` event with task breakdown |
138
+ Short version: **Ultrawork is parallelism. Team Mode is orchestration.**
553
139
 
554
- The ralph policy is auto-detected from team mode state (`linked_ralph`) or
555
- can be passed explicitly via `omx team shutdown <name> --ralph`.
140
+ ### `omx explore` vs `omx sparkshell`
556
141
 
557
- Worker CLI selection for team workers:
558
-
559
- ```bash
560
- OMX_TEAM_WORKER_CLI=auto # default; uses claude when worker --model contains "claude"
561
- OMX_TEAM_WORKER_CLI=codex # force Codex CLI workers
562
- OMX_TEAM_WORKER_CLI=claude # force Claude CLI workers
563
- OMX_TEAM_WORKER_CLI_MAP=codex,codex,claude,claude # per-worker CLI mix (len=1 or worker count)
564
- OMX_TEAM_AUTO_INTERRUPT_RETRY=0 # optional: disable adaptive queue->resend fallback
565
- ```
566
-
567
- Notes:
568
- - Worker launch args are still shared via `OMX_TEAM_WORKER_LAUNCH_ARGS` for model/config inheritance.
569
- - When no explicit worker model is provided, low-complexity worker fallback follows `OMX_DEFAULT_SPARK_MODEL` (legacy alias: `OMX_SPARK_MODEL`).
570
- - `OMX_TEAM_WORKER_CLI_MAP` overrides `OMX_TEAM_WORKER_CLI` for per-worker selection.
571
- - Team mode now allocates `model_reasoning_effort` per teammate from the resolved worker role (`low` / `medium` / `high`) unless an explicit reasoning override already exists in `OMX_TEAM_WORKER_LAUNCH_ARGS`.
572
- - When a worker resolves to a concrete task role, OMX composes a per-worker startup instructions file that layers the corresponding role prompt on top of the shared team worker protocol; explicit `model_instructions_file` launch overrides still win.
573
- - Trigger submission uses adaptive retries by default (queue/submit, then safe clear-line+resend fallback when needed).
574
- - In Claude worker mode, OMX spawns workers as plain `claude` (no extra launch args) and ignores explicit `--model` / `--config` / `--effort` overrides so Claude uses default `settings.json`.
575
-
576
- ## What `omx setup` writes
577
-
578
- - `.omx/setup-scope.json` (persisted setup scope)
579
- - Scope-dependent installs:
580
- - `user`: `~/.codex/prompts/`, `~/.codex/skills/`, `~/.codex/config.toml`, `~/.omx/agents/`, `~/.codex/AGENTS.md`
581
- - `project`: `./.codex/prompts/`, `./.codex/skills/`, `./.codex/config.toml`, `./.omx/agents/`, `./AGENTS.md`
582
- - Launch behavior: if persisted scope is `project`, `omx` launch auto-uses `CODEX_HOME=./.codex` (unless `CODEX_HOME` is already set).
583
- - Launch instructions merge `~/.codex/AGENTS.md` (or `CODEX_HOME/AGENTS.md` when overridden) with project `./AGENTS.md`, then append the runtime overlay
584
- - Managed OMX artifacts refresh by default in both interactive and non-interactive runs: prompts, skills, native agent configs, and the managed OMX portion of `config.toml`
585
- - Existing `AGENTS.md` files are never overwritten silently: interactive setup asks before replacing them, non-interactive setup skips replacement unless you pass `--force`
586
- - If a managed file differs and will be overwritten, setup creates a backup first under `.omx/backups/setup/<timestamp>/...` (project scope) or `~/.omx/backups/setup/<timestamp>/...` (user scope)
587
- - Active-session safety still blocks `AGENTS.md` overwrite while an OMX session is running
588
- - `config.toml` updates (for both scopes):
589
- - `notify = ["node", "..."]`
590
- - `model_reasoning_effort = "high"`
591
- - `developer_instructions = "..."`
592
- - `model = "<OMX_DEFAULT_FRONTIER_MODEL>"` when root `model` is absent
593
- - if the existing root model matches the legacy pre-frontier default, interactive `omx setup` asks whether to upgrade it to `OMX_DEFAULT_FRONTIER_MODEL`; non-interactive runs preserve the existing model
594
- - `model_context_window = 1000000` and `model_auto_compact_token_limit = 900000` only when the effective root model matches `OMX_DEFAULT_FRONTIER_MODEL` and both context keys are absent
595
- - `[features] multi_agent = true, child_agents_md = true`
596
- - MCP server entries (`omx_state`, `omx_memory`, `omx_code_intel`, `omx_trace`)
597
- - If a shared MCP registry exists at `~/.omx/mcp-registry.json`, setup syncs those entries into a dedicated managed block in `config.toml` (skipping names already defined elsewhere to avoid duplicate TOML tables)
598
- - User-scoped setup also syncs missing shared MCP entries into `~/.claude/settings.json` without overwriting existing Claude Code MCP server definitions
599
- - `[tui] status_line`
600
- - Scope-specific `AGENTS.md`
601
- - `.omx/` runtime directories and HUD config
602
- - Default setup output includes a compact per-category refresh summary; `--verbose` adds changed-file detail
603
- - `--force` is reserved for stronger maintenance behavior such as stale/deprecated skill cleanup; it is no longer required for ordinary refresh
604
- - The 1M GPT-5.4 context settings are experimental and can increase usage because requests beyond the standard context budget may count more heavily
605
-
606
- ## Lightweight AGENTS bootstrap
607
-
608
- Use `omx agents-init [path]` when you only want a narrow AGENTS.md bootstrap helper instead of full OMX setup.
609
-
610
- - creates or refreshes `AGENTS.md` in the target directory plus its immediate child directories
611
- - skips generated/vendor/tooling directories such as `.git`, `.omx`, `.codex`, `node_modules`, `dist`, and `build`
612
- - preserves the `<!-- OMX:AGENTS-MANUAL:* -->` section on refresh
613
- - skips unmanaged existing `AGENTS.md` files unless you pass `--force`
614
- - does **not** install prompts, skills, config, or replace planning/execution workflows such as `team`, `ralph`, or `ralplan`
142
+ - Use **`omx explore`** for read-only repo lookup driven by a prompt.
143
+ - Use **`omx sparkshell`** when you want direct shell-style inspection or tmux pane capture.
615
144
 
616
145
  Examples:
617
146
 
618
147
  ```bash
619
- omx agents-init .
620
- omx agents-init ./src --dry-run
621
- omx agents-init . --force
622
- ```
623
-
624
- ## Agents and Skills
625
-
626
- - Prompts: `prompts/*.md` (installed to `~/.codex/prompts/` for `user`, `./.codex/prompts/` for `project`)
627
- - Skills: `skills/*/SKILL.md` (installed to `~/.codex/skills/` for `user`, `./.codex/skills/` for `project`)
628
-
629
- Examples:
630
- - Agents: `architect`, `planner`, `executor`, `debugger`, `verifier`, `security-reviewer`
631
- - Skills: `autopilot`, `plan`, `team`, `ralph`, `ultrawork`, `cancel`
632
-
633
- ### Notification Setup Skill (`$configure-notifications`)
634
-
635
- Use `$configure-notifications` as the unified entry point for notification setup:
636
-
637
- - Discord (webhook/bot)
638
- - Telegram (bot)
639
- - Slack (webhook)
640
- - OpenClaw / custom webhook / custom CLI command
641
-
642
- Examples:
643
-
644
- ```text
645
- $configure-notifications "configure discord notifications"
646
- $configure-notifications "configure slack notifications"
647
- $configure-notifications "configure openclaw notifications"
148
+ omx explore --prompt "git log --oneline -10"
149
+ omx sparkshell git status
150
+ omx sparkshell --tmux-pane %12 --tail-lines 400
648
151
  ```
649
152
 
650
- For OpenClaw with **clawdbot agent turns** (instead of direct message forwarding),
651
- configure a command gateway using `clawdbot agent --deliver --reply-channel ... --reply-to ...`
652
- and map hook events (`session-start`, `session-idle`, `ask-user-question`, `session-stop`, `session-end`).
653
-
654
- For dev teams using `#omc-dev`, the OpenClaw guide includes a dedicated runbook for:
655
- - Korean-only hook responses
656
- - `sessionId` + `tmuxSession` tracing
657
- - `SOUL.md`-based follow-up workflow
658
-
659
- See: `docs/openclaw-integration.md` (Dev Guide section).
660
-
661
- Required env gates for OpenClaw command mode:
662
-
663
- ```bash
664
- export OMX_OPENCLAW=1
665
- export OMX_OPENCLAW_COMMAND=1
666
- ```
153
+ ### What `omx setup` writes
667
154
 
668
- ### Visual QA Loop (`$visual-verdict`)
155
+ `omx setup` installs and updates the OMX surfaces Codex uses:
156
+ - prompts under `~/.codex/prompts/`
157
+ - skills under `~/.codex/skills/`
158
+ - OMX config entries in Codex config
159
+ - scope-aware `AGENTS.md` scaffolding
160
+ - runtime state under `.omx/`
669
161
 
670
- Use `$visual-verdict` when a task depends on visual fidelity (reference image(s) + generated screenshot).
162
+ ### Model defaults
671
163
 
672
- - Return structured JSON: `score`, `verdict`, `category_match`, `differences[]`, `suggestions[]`, `reasoning`
673
- - Recommended pass threshold: **90+**
674
- - For visual tasks, run `$visual-verdict` every iteration before the next edit
675
- - Use pixel diff / pixelmatch overlays as **secondary debugging aids** (not the primary pass/fail signal)
164
+ OMX uses explicit default model lanes:
165
+ - `OMX_DEFAULT_FRONTIER_MODEL`
166
+ - `OMX_DEFAULT_STANDARD_MODEL`
167
+ - `OMX_DEFAULT_SPARK_MODEL`
676
168
 
677
- ## Project Layout
169
+ You can override them in your shell env or in `~/.codex/.omx-config.json`.
678
170
 
679
- ```text
680
- oh-my-codex/
681
- bin/omx.js
682
- src/
683
- cli/
684
- team/
685
- mcp/
686
- hooks/
687
- hud/
688
- config/
689
- modes/
690
- notifications/
691
- verification/
692
- prompts/
693
- skills/
694
- templates/
695
- scripts/
696
- ```
171
+ ## Platform notes
697
172
 
698
- ## Development
173
+ `omx team` needs a tmux-compatible backend:
699
174
 
700
- ```bash
701
- git clone https://github.com/Yeachan-Heo/oh-my-codex.git
702
- cd oh-my-codex
703
- npm install
704
- npm run lint
705
- npm run build:full
706
- npm test
707
- ```
175
+ | Platform | Install |
176
+ | --- | --- |
177
+ | macOS | `brew install tmux` |
178
+ | Ubuntu/Debian | `sudo apt install tmux` |
179
+ | Fedora | `sudo dnf install tmux` |
180
+ | Arch | `sudo pacman -S tmux` |
181
+ | Windows | `winget install psmux` |
182
+ | Windows (WSL2) | `sudo apt install tmux` |
708
183
 
709
184
  ## Documentation
710
185
 
711
- - **[Full Documentation](https://yeachan-heo.github.io/oh-my-codex-website/docs.html)** - Complete guide
712
- - **[CLI Reference](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#cli-reference)** - All `omx` commands, flags, and tools
713
- - **[Notifications Guide](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#notifications)** - Discord, Telegram, Slack, OpenClaw, and custom command/webhook setup
714
- - **[Recommended Workflows](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#workflows)** - Battle-tested skill chains for common tasks
715
- - **[Prompt Guidance Contract](./docs/prompt-guidance-contract.md)** - Contributor reference for the GPT-5.4 prompt behavior contract
716
- - **[Release Notes](https://yeachan-heo.github.io/oh-my-codex-website/docs.html#release-notes)** - What's new in each version
717
-
718
- ## Notes
719
-
720
- - Full changelog: `CHANGELOG.md`
721
- - Migration guide (post-v0.4.4 mainline): `docs/migration-mainline-post-v0.4.4.md`
722
- - Coverage and parity notes: `COVERAGE.md`
723
- - Hook extension workflow: `docs/hooks-extension.md`
724
- - OpenClaw integration examples: `docs/openclaw-integration.md`
725
- - Setup and contribution details: `CONTRIBUTING.md`
186
+ - [Getting Started](./docs/getting-started.html)
187
+ - [Demo guide](./DEMO.md)
188
+ - [Agent catalog](./docs/agents.html)
189
+ - [Skills reference](./docs/skills.html)
190
+ - [Integrations](./docs/integrations.html)
191
+ - [OpenClaw / notification gateway guide](./docs/openclaw-integration.md)
192
+ - [Contributing](./CONTRIBUTING.md)
193
+ - [Changelog](./CHANGELOG.md)
726
194
 
727
- ## Maintainers
728
-
729
- - [Yeachan-Heo](https://github.com/Yeachan-Heo)
730
- - [HaD0Yun](https://github.com/HaD0Yun)
731
-
732
- ## Acknowledgments
733
-
734
- Inspired by [oh-my-claudecode](https://github.com/Yeachan-Heo/oh-my-claudecode), adapted for Codex CLI.
735
-
736
- ## Star History
195
+ ## Languages
737
196
 
738
- [![Star History Chart](https://api.star-history.com/svg?repos=Yeachan-Heo/oh-my-codex&type=Date)](https://www.star-history.com/#Yeachan-Heo/oh-my-codex&Date)
197
+ - [English](./README.md)
198
+ - [한국어](./README.ko.md)
199
+ - [日本語](./README.ja.md)
200
+ - [简体中文](./README.zh.md)
201
+ - [繁體中文](./README.zh-TW.md)
202
+ - [Tiếng Việt](./README.vi.md)
203
+ - [Español](./README.es.md)
204
+ - [Português](./README.pt.md)
205
+ - [Русский](./README.ru.md)
206
+ - [Türkçe](./README.tr.md)
207
+ - [Deutsch](./README.de.md)
208
+ - [Français](./README.fr.md)
209
+ - [Italiano](./README.it.md)
739
210
 
740
211
  ## License
741
212