docs(omo-codex): clarify sisyphuslabs marketplace install

This commit is contained in:
YeonGyu-Kim
2026-05-27 19:10:38 +09:00
parent 56f39d60fc
commit 9c428091b6
10 changed files with 49 additions and 37 deletions
+20 -16
View File
@@ -10,10 +10,10 @@ Most users want **Ultimate**. Pick **Light** if you are already invested in Code
| You want | Run | Lands on disk |
| :--- | :--- | :--- |
| Ultimate (OpenCode) | `bunx omo install` (TUI walks you through it) | Plugin registered in `opencode.json`, agent/model config, provider auth |
| Light (Codex CLI) | `bunx omo install --platform=codex` (no questions) | `~/.codex/plugins/cache/...`, `~/.codex/config.toml` plugin block, `~/.local/bin/omo-*` |
| Light (Codex CLI) | `bunx omo install --platform=codex` or `bunx lazycodex install` (no questions) | `~/.codex/plugins/cache/sisyphuslabs/omo/`, `~/.codex/config.toml` marketplace/plugin blocks, `~/.local/bin/omo-*` |
| Both | `bunx omo install --platform=both` | Both of the above |
`--platform` defaults to `opencode` (Ultimate). The `bunx lazycodex install` alias is a shortcut for `bunx omo install --platform=codex` same compiled CLI, different default.
`--platform` defaults to `opencode` (Ultimate). The `bunx lazycodex install` alias is a shortcut for `bunx omo install --platform=codex`: same compiled CLI, different default. `lazycodex` is a repo/npm/bin alias, not the Codex marketplace name.
## For Humans
@@ -38,7 +38,7 @@ bunx omo install --platform=codex
bunx lazycodex install
```
It writes only to `~/.codex/`. No OpenCode interaction, no provider flags.
It writes only to `~/.codex/`. No OpenCode interaction, no provider flags. Codex config will register marketplace `sisyphuslabs` from `https://github.com/code-yeongyu/lazycodex.git` and enable plugin `omo@sisyphuslabs`.
### A note on direct install
@@ -178,7 +178,7 @@ bunx oh-my-openagent install \
[--skip-auth]
```
`--platform` defaults to `opencode` if omitted. Subscription flags only apply when `--platform` is `opencode` or `both` — they are ignored under `--platform=codex` because the Codex adapter does not write OpenCode model config.
`--platform` defaults to `opencode` if omitted. Subscription flags only apply when `--platform` is `opencode` or `both`. They are rejected under `--platform=codex` because the Light edition does not write OpenCode model config.
**Examples:**
@@ -205,14 +205,14 @@ bunx oh-my-openagent install \
bunx oh-my-openagent install --no-tui --platform=opencode --claude=no --openai=no --gemini=no --copilot=no --opencode-go=yes
```
**About the `lazycodex` bin name.** `lazycodex` is an alias for the same compiled CLI. The only difference: `lazycodex install` defaults `--platform=codex` instead of `opencode`. You can still pass `--platform=both` to override. Use whichever name reads cleaner.
**About the `lazycodex` bin name.** `lazycodex` is an alias for the same compiled CLI and the Git repository that hosts the marketplace bundle. The only CLI difference is that `lazycodex install` defaults `--platform=codex` instead of `opencode`. You can still pass `--platform=both` to override. The Codex marketplace name is `sisyphuslabs`, and the plugin name is `omo`.
**What the installer does:**
| Platform | Writes |
|----------|--------|
| `opencode`, `both` | Registers `"oh-my-openagent"` in `opencode.json` `plugin` array. Generates agent → model mappings into `~/.config/opencode/oh-my-openagent.jsonc`. |
| `codex`, `both` | Copies `packages/omo-codex/plugin/` into `~/.codex/plugins/cache/sisyphuslabs/omo/<version>/`. Runs `npm install` + `npm run build` inside. Symlinks `~/.local/bin/omo-*` (or `$CODEX_LOCAL_BIN_DIR/omo-*`) for each of the 5 components. Computes SHA256 trusted-hashes for every hook and writes the `[plugins."omo@..."]` + `[hooks.state."omo@..."]` blocks into `~/.codex/config.toml`. |
| `codex`, `both` | Copies `packages/omo-codex/plugin/` into `~/.codex/plugins/cache/sisyphuslabs/omo/<version>/`. Runs `npm install` + `npm run build` inside. Symlinks `~/.local/bin/omo-*` (or `$CODEX_LOCAL_BIN_DIR/omo-*`) for each of the 5 components. Computes SHA256 trusted-hashes for every hook and writes `[marketplaces.sisyphuslabs]` with git source `https://github.com/code-yeongyu/lazycodex.git`, `[plugins."omo@sisyphuslabs"]`, and `[hooks.state."omo@sisyphuslabs:..."]` blocks into `~/.codex/config.toml`. |
Both halves are independent and idempotent — re-running is safe.
@@ -229,12 +229,15 @@ bunx oh-my-openagent doctor
`doctor` runs six categories of checks: **System** (binary version, plugin registration), **Config** (JSONC + Zod schema), **TUI Plugin**, **Tools** (AST-grep, LSP, GitHub CLI, comment-checker), **Models** (cache, per-agent resolution, fallback chain availability), and **Team Mode** (if enabled). Exit code: `0` = ok, `1` = errors, `2` = warnings only.
#### Verify Codex adapter (skip if platform=opencode)
#### Verify Codex CLI Light edition (skip if platform=opencode)
```bash
# Plugin cache present?
ls ~/.codex/plugins/cache/sisyphuslabs/omo/
# Marketplace source is the lazycodex repo?
grep -A4 'marketplaces.sisyphuslabs' ~/.codex/config.toml
# Codex config has the plugin block?
grep -A2 'omo@sisyphuslabs' ~/.codex/config.toml
@@ -251,7 +254,7 @@ If any of these come back empty, re-run `bunx omo install --platform=codex` —
#### Codex CLI
Codex uses its own OpenAI authentication. The omo-codex adapter inherits whatever auth Codex CLI is already using — there is nothing extra to configure here. If `codex --help` works for you, you are done with Codex auth.
Codex uses its own OpenAI authentication. The Light edition inherits whatever auth Codex CLI is already using. There is nothing extra to configure here. If `codex --help` works for you, you are done with Codex auth.
#### OpenCode providers
@@ -544,7 +547,7 @@ Skip this section if `--platform=opencode`. Otherwise, the user installed the **
- **Plugin cache:** `~/.codex/plugins/cache/sisyphuslabs/omo/<version>/`
- **Component binaries:** `~/.local/bin/omo-rules`, `omo-comment-checker`, `omo-lsp`, `omo-ultrawork`, `omo-ultragoal` (or `$CODEX_LOCAL_BIN_DIR/omo-*` if set)
- **Codex config edits:** `~/.codex/config.toml` gained `[features] plugins = true`, `[features] plugin_hooks = true`, a `[plugins."omo@sisyphuslabs"]` block, and SHA256-pinned `[hooks.state."omo@..."]` entries
- **Codex config edits:** `~/.codex/config.toml` gained `[features] plugins = true`, `[features] plugin_hooks = true`, `[marketplaces.sisyphuslabs]` pointing at `https://github.com/code-yeongyu/lazycodex.git`, `[plugins."omo@sisyphuslabs"]`, and SHA256-pinned `[hooks.state."omo@sisyphuslabs:..."]` entries
#### The 5 components
@@ -558,7 +561,7 @@ Skip this section if `--platform=opencode`. Otherwise, the user installed the **
#### Coexistence with OpenCode
The Codex adapter is fully independent of the OpenCode plugin. You can install both side-by-side — they share no runtime state, no config files, and no model selection. Each emits its own daily telemetry event.
The Codex CLI Light edition is fully independent of the OpenCode plugin. You can install both side-by-side. They share no runtime state, no config files, and no model selection. Each emits its own daily telemetry event.
#### Codex troubleshooting
@@ -567,7 +570,7 @@ The Codex adapter is fully independent of the OpenCode plugin. You can install b
| `codex --help` does not list the omo plugin | Re-run `bunx omo install --platform=codex` (idempotent — hook hashes are recomputed) |
| `command not found: omo-rules` | Add `~/.local/bin` to `PATH`, or set `$CODEX_LOCAL_BIN_DIR` to a directory already on `PATH` |
| `npm install` fails mid-install | `rm -rf ~/.codex/plugins/cache/sisyphuslabs` and retry |
| Plugin block is present but hooks do not fire | Verify `~/.codex/config.toml` contains `[features]\nplugins = true\nplugin_hooks = true` |
| Plugin block is present but hooks do not fire | Verify `~/.codex/config.toml` contains `[features]\nplugins = true\nplugin_hooks = true` and `[plugins."omo@sisyphuslabs"]` |
| Hook trust hash mismatch warnings | Re-run the installer; hashes are regenerated each install |
### Step 8: Team Mode (optional, opt-in)
@@ -661,7 +664,7 @@ Every agent, hook, skill, MCP, command, and tool is configurable via `disabled_*
| `OMO_INVOCATION_NAME` | Overrides detected bin name (`oh-my-opencode`, `omo`, `lazycodex`, etc.). Used to route `lazycodex install` to `--platform=codex`. |
| `OMO_DISABLE_POSTHOG=1` | Disables all PostHog telemetry for the main plugin |
| `OMO_SEND_ANONYMOUS_TELEMETRY=0` | Same effect as above |
| `OMO_CODEX_DISABLE_POSTHOG=1` | Disables PostHog telemetry for the Codex adapter only |
| `OMO_CODEX_DISABLE_POSTHOG=1` | Disables PostHog telemetry for the Codex CLI Light edition only |
| `OMO_CODEX_SEND_ANONYMOUS_TELEMETRY=0` | Same effect as above |
| `OMO_DISABLE_PROCESS_CLEANUP=1` | Disables background-agent best-effort process cleanup on parent exit |
| `OMO_OPENCLAW_COMMAND_TIMEOUT_MS` | Timeout for OpenClaw outbound shell/HTTP commands |
@@ -709,7 +712,7 @@ Per product:
| Product | Event name | Sources |
|---------|-----------|---------|
| Main plugin | `oh_my_openagent_daily_active` | Session start |
| Codex adapter | `omo_codex_daily_active` | Installer (`install_completed`) + Codex `SessionStart` hook (`session_start`) |
| Codex CLI Light edition | `omo_codex_daily_active` | Installer (`install_completed`) + Codex `SessionStart` hook (`session_start`) |
Opt-out:
@@ -719,13 +722,13 @@ export OMO_DISABLE_POSTHOG=1
# or
export OMO_SEND_ANONYMOUS_TELEMETRY=0
# Disable only the Codex adapter's telemetry
# Disable only the Codex CLI Light edition telemetry
export OMO_CODEX_DISABLE_POSTHOG=1
# or
export OMO_CODEX_SEND_ANONYMOUS_TELEMETRY=0
```
The global flags (`OMO_DISABLE_POSTHOG`, `OMO_SEND_ANONYMOUS_TELEMETRY`) also suppress the Codex adapter's telemetry.
The global flags (`OMO_DISABLE_POSTHOG`, `OMO_SEND_ANONYMOUS_TELEMETRY`) also suppress the Codex CLI Light edition telemetry.
See [Privacy Policy](../legal/privacy-policy.md) and [Terms of Service](../legal/terms-of-service.md).
@@ -752,13 +755,14 @@ opencode --version
# Plugin should no longer be loaded
```
### Remove the Codex adapter
### Remove the Codex CLI Light edition
```bash
# 1. Remove the plugin cache
rm -rf ~/.codex/plugins/cache/sisyphuslabs
# 2. Edit ~/.codex/config.toml and remove these blocks:
# [marketplaces.sisyphuslabs]
# [plugins."omo@sisyphuslabs"]
# [hooks.state."omo@sisyphuslabs"]
+3 -1
View File
@@ -68,7 +68,9 @@ bunx oh-my-openagent install
| `--vercel-ai-gateway <value>` | Vercel AI Gateway: `no`, `yes` (Ultimate only) |
| `--skip-auth` | Skip authentication setup hints |
When using the `lazycodex` bin alias, `install` defaults to `--platform=codex`. Subscription flags (`--claude`, `--openai`, etc.) only apply when `--platform` is `opencode` or `both` — they are rejected under `--platform=codex` because the Light edition does not write OpenCode model config.
When using the `lazycodex` bin alias, `install` defaults to `--platform=codex`. `lazycodex` is only the npm/bin alias and marketplace repository name. The Codex config uses marketplace `sisyphuslabs` and plugin `omo`, enabled as `omo@sisyphuslabs`, with the marketplace source set to `https://github.com/code-yeongyu/lazycodex.git`.
Subscription flags (`--claude`, `--openai`, etc.) only apply when `--platform` is `opencode` or `both`. They are rejected under `--platform=codex` because the Light edition does not write OpenCode model config.
### Telemetry and opt-out
@@ -1,5 +1,7 @@
# Reserving the lazycodex npm name (first-publish playbook)
`lazycodex` is the npm/bin alias for the Codex CLI Light edition and the Git repository that hosts the native Codex marketplace bundle. It is not the marketplace identity. Codex installs marketplace `sisyphuslabs` and plugin `omo`, enabled as `omo@sisyphuslabs`.
The `publish.yml` workflow includes `lazycodex` in trusted-publisher preflight, but that check is soft for first publish.
If `lazycodex` is not yet claimed on npm, the workflow warns and continues so existing package releases are not blocked.
To claim the name, run a one-time manual `npm publish` for `lazycodex` from a trusted environment (for example local shell with `NPM_AUTH_TOKEN`).
@@ -7,3 +9,5 @@ After the first manual publish, configure GitHub Actions trusted publishing at:
https://www.npmjs.com/package/lazycodex/access
Set Provider to GitHub Actions, Organization to `code-yeongyu`, Repository to `oh-my-openagent`, and Workflow filename to `publish.yml`.
After this setup, subsequent releases from `publish.yml` can publish `lazycodex` automatically.
The same release workflow also syncs `packages/omo-codex/marketplace.json` and `packages/omo-codex/plugin/` into `code-yeongyu/lazycodex` as `.agents/plugins/marketplace.json` and `plugins/omo/`. That cross-repo push requires the `LAZYCODEX_SYNC_TOKEN` repository secret.
@@ -3,7 +3,7 @@
Comparison and porting record for the three rule injection implementations
maintained out of `/Users/yeongyu/local-workspaces`:
- **codex-rules** — Codex hook plugin (`codex-plugins/plugins/codex-rules`, repo `code-yeongyu/codex-rules`, branch `main`).
- **codex-rules** — Codex hook plugin now bundled under the OMO Codex marketplace plugin (`packages/omo-codex/plugin/components/rules`, marketplace `sisyphuslabs`, plugin `omo`). The original standalone repo was `code-yeongyu/codex-rules`, branch `main`.
- **pi-rules** — pi-mono extension (`pi-extensions/pi-rules`, repo `code-yeongyu/pi-rules`, branch `main`).
- **omo rules-injector** — opencode plugin path (`omo/src/hooks/rules-injector`, repo `code-yeongyu/oh-my-openagent`, branch `dev`).
@@ -18,7 +18,7 @@ maintained out of `/Users/yeongyu/local-workspaces`:
Installation state after the porting round:
- **omo** — `~/.bun/install/global/node_modules/oh-my-opencode` is a symlink to the local workspace, so `bun run build` immediately publishes the rebuilt `dist/`. Verified via `grep -c transcriptHydration dist/index.js` → 6.
- **codex-rules** — `node scripts/install-local.mjs ...` was rerun and the cache at `~/.codex/plugins/cache/code-yeongyu-codex-plugins/codex-rules/0.1.0` was refreshed.
- **codex-rules** — now installed through the aggregate OMO Codex plugin cache at `~/.codex/plugins/cache/sisyphuslabs/omo/<version>/components/rules`, enabled by `[plugins."omo@sisyphuslabs"]`.
- **pi-rules** — pi-mono consumes the package source directly; no separate install step.
## 1. Performance baseline