Adds a new Codex plugin component `telemetry` that emits a single omo_codex_daily_active event (reason: session_start) from every Codex SessionStart hook, with the same UTC-day deduplication, hashed installation identifier, and four-flag opt-out as the install-time event. Previously omo-codex telemetry only fired on install_completed, so DAU/WAU/MAU under-reported real Codex usage. - New plugin component packages/omo-codex/plugin/components/telemetry/ mirrors the rules/comment-checker/lsp pattern: own src/, tsc build, vitest tests, package.json (posthog-node dep), hooks/hooks.json. - src/codex-hook.ts wraps createPluginPostHog().trackActive(..., "session_start") with safeShutdown so Codex session startup never blocks on telemetry. - Plugin root hooks.json + workspaces register the new component alongside rules and ultrawork on SessionStart. - Aggregate test expectations updated to include the telemetry directory. - cross-package-equivalence.test.ts pins product-identity constants and shouldDisablePostHog behavior to stay byte-equivalent between the CLI installer (src/telemetry/) and the plugin runtime (plugin/components/telemetry/src/), so the two PostHog sources never drift on event name, distinct_id base, dedup file path, or opt-out flags. - PostHogActivityReason union in the CLI-side posthog.ts gains "session_start" so future CLI paths can emit the same reason without a type break.
@oh-my-opencode/omo-codex
Codex harness adapter for oh-my-openagent. Brings the OMO experience (rules injection, comment checker, LSP MCP, ultrawork, ultragoal) into OpenAI Codex CLI through Codex's native plugin system.
Layout
| Path | Purpose |
|---|---|
plugin/ |
Vendored Codex plugin namespace omo with 5 components. Shipped to the user via ~/.codex/plugins/cache/. |
marketplace.json |
Codex marketplace manifest. Identifies omo as the single installable plugin. |
scripts/ |
Node ESM build scripts (port of the original codex-plugins/scripts/install-local.mjs). |
src/ |
TypeScript runtime: installer + telemetry consumed by the omodex CLI. |
MARKETPLACE.md |
Vendored upstream marketplace README. |
Components Vendored
rules(TypeScript) - injectsAGENTS.md/CLAUDE.md/.omo/rules/**into context viaSessionStart,UserPromptSubmit,PostToolUse,PostCompact.comment-checker(TypeScript) - runs@code-yeongyu/comment-checkerafterapply_patch/edit/writetool use.lsp(TypeScript + LSP MCP) - exposes LSP diagnostics, navigation, symbols, rename via MCP + post-edit hooks.ultrawork(Python) - keyword detector (ulw/ultrawork) that injects the full ultrawork directive, plus aSessionStarthook that syncs bundled agent TOML files intoCODEX_HOME/agents.ultragoal(TypeScript) - durable multi-goal orchestration backed by.omo/ultragoal/evidence audit.
Install
End users invoke through the omodex CLI:
bunx omo install --codex=yes
# or, equivalently:
bunx oh-my-opencode install --codex=yes
bunx oh-my-openagent install --codex=yes
The installer copies the built plugin into ~/.codex/plugins/cache/code-yeongyu-codex-plugins/omo/<version>/, enables it in ~/.codex/config.toml, and links the per-component binaries into ~/.local/bin/ (or CODEX_LOCAL_BIN_DIR).
Telemetry
Anonymous telemetry uses the same PostHog project as oh-my-openagent but emits the distinct event omo_codex_daily_active. Opt out with:
export OMO_CODEX_DISABLE_POSTHOG=1
# or globally for every OMO product:
export OMO_DISABLE_POSTHOG=1
See /Users/yeongyu/local-workspaces/omodex/docs/legal/privacy-policy.md for the full disclosure.
Provenance
Vendored from code-yeongyu/codex-plugins at the snapshot present in /Users/yeongyu/local-workspaces/codex-plugins/ on 2026-05-25. Per-component upstream: