npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@yjjeong/omg

v0.3.1

Published

Multi-LLM team orchestrator for a single working directory.

Downloads

181

Readme

omg

Multi-LLM team orchestrator for a single working directory.

omg coordinates provider CLIs as a team — Claude CLI, Codex CLI, and agy — while keeping provider and model names separate (Claude→Opus/Sonnet, Codex→GPT, agy/Antigravity→Gemini). Each agent gets a role (planner / implementer / reviewer / verifier), a single director resolves conflicts, and a shared context bus keeps handoffs intact.

omgc, the Go/Bubble Tea cockpit, is the interactive surface; the Node CLI remains for headless orchestration, setup, updates, MCP, and scripted smoke. Team reasoning, tool calls, and verdicts are surfaced through the Cockpit activity/transcript views and the JSON-RPC stream.

Why

Most multi-LLM tools either pick one model per task or run them in isolation. omg treats provider-backed agents as a team with explicit roles and a consensus mechanism — a Claude/Opus planning step can inform a Codex/GPT implementation, and an agy/Gemini verdict does not silently stall the pipeline.

Prerequisites

  • Node ≥ 20
  • Linux, macOS, or Windows. The internal broker IPC uses a Unix-domain socket on POSIX and a named pipe on Windows. Windows support is experimental in v0.x — verify in your environment; WSL also works.
  • At least one provider CLI installed and logged in, OR --demo / --provider stub for a no-deps trial. Provider options:
    • claude — Claude Code; run claude /login after install.
    • codex — Codex CLI; codex login after install.
    • agy — Antigravity CLI command; run agy once for first-time auth.
    • gemini — Gemini CLI; standalone compatibility provider path, only needed when explicitly selected.

omg never sees your provider tokens; it spawns the CLIs you already authed.

After install, run omg doctor to verify your providers are installed, logged in, and (for Gemini) MCP-registered — it prints the exact fix command for any gap, and only flags the providers your active team preset actually uses. Add --install (omg doctor --install) to install the missing required provider CLIs using each provider's installer (npm i -g for npm-managed CLIs, Google's installer for agy). Add --install-sdk for API-key SDK paths, or --install-all for both. Then run the printed omg login <provider> to authenticate each CLI. omg login <provider> also re-runs a provider CLI's own login when its auth has expired. Use omg doctor --instructions to audit global/project instruction files for legacy .omc / .omx guidance without deleting anything.

For a guided first-run checklist, use omg setup. It scaffolds the local project files idempotently, runs doctor with instruction diagnostics, checks updates, then prints both setup paths: subscription CLI auth and API-key SDK. Bare omg delegates to the Go Cockpit (omgc) when a TTY is available. First-run/setup work is handled explicitly through omg setup, omg doctor, and omg update; provider login stays explicit via omg login <provider>.

omg also checks for newer versions of omg, Claude Code, Codex CLI, Gemini CLI, and agy on normal startup. The check is advisory, cached, and written to stderr so headless JSON output stays clean. Run omg update for a full report, or omg update --install to apply available updates: npm-managed CLIs (omg, claude, codex, gemini), Homebrew-managed Codex casks when detected, Claude's native updater when the active Claude binary is outside npm, and agy update when agy is stale.

Quick Start

npm install -g @yjjeong/omg

omg setup                                         # first-run checklist
omg --demo --headless                              # no external CLI required
omg --run "hi" --provider stub --headless          # stubbed orchestrator turn
omg                                                # delegates to the Go Cockpit
omg cockpit --provider stub --headless             # Cockpit smoke
omgc                                               # fullscreen Go Cockpit TUI

omg --demo --headless is the safest scripted first-impression — it runs the full pipeline against a built-in stub provider, no auth or external binary needed. For the interactive first impression, run omgc.

Usage examples

# Real provider via OAuth subscription (no API credit consumed).
omg --run "draft a release note" --provider claude-cli --headless
omg --run "draft a release note" --provider codex-cli --headless
omg --run "draft a release note" --provider agy --headless              # agy/Antigravity provider, Gemini model family
omg --run "draft a release note" --provider gemini-cli --headless       # standalone Gemini CLI

# Real provider via API key (uses official SDK; installs on demand).
omg --run "draft a release note" --provider claude --headless          # @anthropic-ai/sdk
omg --run "draft a release note" --provider codex --headless           # openai
omg --run "draft a release note" --provider gemini --headless          # @google/genai

# Multi-role team with voting consensus.
omg --team-run "ship a python hello world" --provider claude-cli --headless \
    --reviewers reviewer,verifier --strategy voting

# Agentic loop — tool results feed back into the next turn.
omg --run "demo" --provider stub --tools --loop --headless

CLI surface

omg [--version] [--help]
omg doctor [--json] [--install] [--install-sdk] [--install-all] [--instructions]
                                         # diagnose install / auth / SDK / instruction leakage
omg setup                                # guided first-run checklist
omg update [--json] [--install]          # check/apply tool version updates
omg login <claude|codex|agy>          # antigravity/gemini remain explicit aliases
                                         # (re)authenticate a provider CLI
omg init                                 # scaffold AGENTS.md/CLAUDE.md/GEMINI.md + .omg/mcp.json here
omg --demo --headless [--tools | --write-tools] [--ask]
omg --run <PROMPT>      --headless [--role <ROLE>] [--provider <P>]
                        [--tools | --write-tools] [--loop --max-steps N]
omg --team-run <PROMPT> --headless [--reviewers role1,role2,...] [--strategy S]
                        [--max-iterations N] [--provider <P>] [--model <M>]
                        [--tools | --write-tools]
omg cockpit [--run <PROMPT> | --team-run <PROMPT>] --headless [--provider <P>] [--model <M>]
omg cockpit [--effort <level>]                         # preselect model-specific reasoning/thinking
omg cockpit session list|show|last|rename|delete [--json]     # persisted Cockpit sessions
omg cockpit --continue                                        # resume latest Cockpit session
omg cockpit logs [--tail N] [--follow] [--json]               # structured Cockpit diagnostics
omg cockpit checkpoint [--last|--list] [path] [--json]        # compact checkpoint artifacts
omgc                                                          # interactive Go Cockpit only

Providers: policy (read from src/policy/team.yaml), stub, claude / codex / gemini (SDK), claude-cli / codex-cli / agy / antigravity-cli (recommended subscription CLIs), plus gemini-cli as an explicit standalone compatibility provider. nvidia / nim is also available as an experimental OpenAI-compatible NVIDIA NIM API provider using NVIDIA_API_KEY and https://integrate.api.nvidia.com/v1.

Consensus strategies: escalate (default — severity-first veto), voting (plurality), hierarchy (top reviewer wins).

Interactive surface

The retired Node interactive REPL has been removed. Use:

  • omgc (or bare omg in a TTY) for interactive work.
  • omg --run ... --headless, omg --team-run ... --headless, and omg cockpit ... --headless for scripts and CI.
  • omg setup, omg doctor, omg update, omg login, and omg init for administration.

State lives in ~/.omg/: team-preset, plan.json, memory.md, Cockpit sessions/checkpoints, and MCP configuration.

omgc Cockpit TUI

omgc is the short interactive alias for the Go/Bubble Tea Cockpit frontend; TTY omg cockpit without scripted subcommands delegates to the same Go binary. It keeps OMG's run ledger, sessions, provider policy, and team/director concepts, but opens directly into a keyboard-first terminal cockpit. Interactive omgc uses an alternate-screen fullscreen surface by default, enables xterm mouse tracking for wheel/click/drag, and keeps the composer pinned to the bottom of the screen. Set OMG_C_NO_ALT_SCREEN=1 if you explicitly want normal-screen rendering.

omgc intentionally accepts no arguments. Use omg cockpit ... for scripted runs, session management, diagnostics, logs, checkpoints, and smoke tests. There is no /workflows slash command in omgc; live work is reflected in the right-side Activity panel, Status, and Skills views instead.

Workflow-style skills are explicit: open Skills from the command palette or submit /skill <name> [goal]. Press Enter in Skills to toggle a project recommendation, or Ctrl-R on a skill row to run it as a visible Cockpit turn. Running skills appear in the normal run ledger and Activity panel as skill:<name>; omgc does not start hidden background workflows.

For NVIDIA's free/dev NIM endpoints, open Switch model (Ctrl-M) inside omgc and choose one of the curated high-performance NVIDIA rows, such as nvidia/nemotron-3-ultra-550b-a55b, nvidia/nemotron-3-super-120b-a12b, mistralai/mistral-large-3-675b-instruct-2512, mistralai/mistral-medium-3.5-128b, mistralai/mistral-small-4-119b-2603, minimaxai/minimax-m3, stepfun-ai/step-3.7-flash, or openai/gpt-oss-120b. EOL or unstable rows are kept out of the curated picker. MiniMax M3 is a preview model with non-commercial license caveats in the NVIDIA model card. If no NVIDIA_API_KEY is configured, omgc prompts for it in-place, masks the input, saves it to ~/.omg/api-keys.json with 0600 permissions, then switches to the selected model. You can get a key from NVIDIA Build's API key page (https://build.nvidia.com/settings/api-keys; NGC personal keys need NGC Catalog + Public API Endpoints). Treat NVIDIA NIM as an experimental fallback: free/dev endpoint availability and model support can change per NVIDIA's catalog.

Appearance is also first-class in omgc: open Appearance / Theme from the command palette, submit /theme or /appearance, or ask in natural language (e.g. "테마 피커 열어줘"). Built-in presets include OMGC Charmtone, Catppuccin Mocha/Macchiato/Latte, Tokyo Night, Rosé Pine Moon, High Contrast, System Auto, and No Color / ASCII Safe. The picker applies immediately and saves to ~/.omg/cockpit-theme.json with 0600 permissions. OMGC_THEME=<preset-id> can force a preset for launches, and NO_COLOR=1 disables ANSI colors while keeping reverse-video selection/search affordances.

The Reasoning / Thinking picker is model-aware. Codex CLI rows expose the Codex effort levels; supported NVIDIA rows expose their documented controls such as Nemotron enable_thinking / reasoning_budget, DeepSeek thinking, and GPT-OSS or Mistral reasoning_effort. Unsupported providers/models show a single safe Default row and send no extra reasoning fields.

Predict ghost text is intentionally fast by default. When enabled from the command palette, omgc now generates a local next-message suggestion immediately after the previous turn and filters low-confidence phrases such as "no confidence" instead of showing them as a ghost. If you explicitly want an extra LLM refinement pass, set OMGC_PREDICT_LLM=1; the refinement is capped to a short best-effort timeout so it cannot stall the UI.

The welcome screen runs a non-blocking update check for omg and provider CLIs. If updates are available, select the Updates row and press Enter to run the same updater as omg update --install directly from the TUI. npm-managed CLIs are updated with npm install -g, Homebrew Codex casks use brew upgrade --cask codex, Claude native installs use claude update, and agy uses agy update when installed.

Optional notifications can mirror high-attention Cockpit events outside the terminal. Set OMGC_NOTIFY=desktop for native OS notifications, or set OMGC_TELEGRAM_BOT_TOKEN + OMGC_TELEGRAM_CHAT_ID to send Telegram messages. Use OMGC_NOTIFY=all to enable both, OMGC_NOTIFY_EVENTS=permission,complete,failed,update to choose event classes, or OMGC_NOTIFY_LOG=/tmp/omgc-notify.jsonl to record local JSONL audit/dry-run notifications without OS or Telegram side effects. Use OMGC_DISABLE_NOTIFICATIONS=1 to force silence. Notifications are best-effort and never block a running turn.

If you are developing from a cloned repository and omgc prints command not found, build and link the package first:

npm install
npm run build
npm link                         # exposes both omg and omgc from package.json bin
omg doctor                       # verifies the omgc alias and Cockpit state dir
omgc                             # interactive Go cockpit

Without linking, use the scripted Cockpit surface through Node:

node dist/cli.js cockpit --provider stub --headless
node dist/cli.js cockpit logs --tail 50

Safe smoke commands:

omg cockpit --provider stub --headless
omg cockpit --run "summarize this repo" --provider stub --headless
omg cockpit --team-run "review this plan" --provider stub --headless
omg cockpit session list --json
omg cockpit session last
omg cockpit session show <session-id-or-prefix> --json
omg cockpit checkpoint
omg cockpit checkpoint --list
omg cockpit checkpoint --list --json
omg cockpit --continue
omg cockpit logs --tail 50
omg cockpit session rename <session-id-or-prefix> "New title"
omg cockpit session delete <session-id-or-prefix>

Interactive keys:

  • Ctrl-P opens the command palette.
  • Ctrl-S opens session selection.
  • Ctrl-M opens model routing. /model provider/model also changes future runs.
  • /theme opens Appearance / Theme and persists the selected palette.
  • Ctrl-P → Reasoning / Thinking (or /effort) picks the current model's reasoning/thinking setting for future runs; --effort <level> preselects it at launch.
  • Ctrl-U opens pending permission requests. The default confirm action is deny; inside the permission dialog, f toggles fullscreen diff, v expands/collapses the diff, and j/k scroll.
  • Ctrl-T toggles solo/team submit mode.
  • @file and ./path complete repository files; large paste becomes an attachment.
  • Mouse wheel, click-drag on the transcript, and drag on the right scrollbar scroll the transcript; clicking the composer returns focus to prompt input.
  • ↑ / ↓ scroll the transcript; Ctrl-E follows the latest event again.

Cockpit state is persisted under ~/.omg/cockpit/ by default; set OMG_COCKPIT_STATE_DIR=/tmp/somewhere for isolated tests. Completion status is driven by canonical run/session events (run.completed, run.failed, permission resolution, verifier/director events), not by assistant prose such as "done" in the transcript. Provider/auth/credit failures and compact timeouts are shown as actionable recovery cards instead of raw stderr-only messages.

Cockpit shared backend lifecycle:

  • By default, interactive commands use a local workspace unless a socket-backed backend is already live.
  • Set OMG_COCKPIT_SOCKET=1 to connect interactive omgc and scripted omg cockpit runs to a shared backend when available.
  • When OMG_COCKPIT_SOCKET=1 is set and no socket exists yet, Cockpit auto- starts a process-local shared backend and shuts it down automatically when the launcher exits.
  • For long-lived shared collaboration, run OMG_COCKPIT_SOCKET=1 omg cockpit serve in a dedicated terminal and keep it running.
  • Use omg cockpit serve explicitly when you want the backend to outlive the command that created it.

Current known limitations: Cockpit is now the Go/Bubble Tea omgc surface; the retired Node interactive renderer has been removed. MCP server toggles and recommended-server adds are wired in the Go cockpit. LSP is discovery-backed and can explicitly attach/detach recommended language-server processes from the LSP panel; publishDiagnostics counts are captured from native LSP output, while richer references/rename/actions still need a fuller protocol client. Visual acceptance is covered by unit/PTY-style smoke, a public cell-based Go cockpit matrix, and the local Crush comparison harness rather than private pixel-perfect Crush screenshot goldens; provider auth/credit failures render as Cockpit recovery cards when surfaced by the underlying CLI/API; and performance scorecards include deterministic Go render smoke checks, not OS-level frame timing guarantees.

End-to-end Cockpit PTY lifecycle tests (test/e2e/cockpitPtyLifecycle.test.ts) are PTY-only and skip with an actionable reason in runtimes that cannot spawn node-pty (set OMG_FORCE_PTY_E2E=1 to force failure and surface the PTY launch error).

For release validation, capture PTY capability first via npm run check-pty-env, then run npm run test:cockpit so PTY smoke and long-lived shared-backend socket ownership tests are both exercised in one command.

When PTY tests are skipped unexpectedly, run:

node scripts/check-pty-env.mjs

This prints the active node binary, node-pty helper path/permissions, and the exact spawn error before you retry PTY e2e tests.

Cockpit regression checks:

  • npm run test:cockpit (single-command cockpit release gate: PTY readiness + shared-backend + socket ownership + PTY lifecycle smoke set)
  • npm test -- test/unit/cockpitCli.test.ts (long-lived shared-backend supervision + session/store interactions)
  • npm test -- test/unit/cockpitSocketTransport.test.ts (socket transport and permission ownership edge cases)
  • npm test -- test/e2e/cockpitPtyLifecycle.test.ts (PTY exit lifecycle; may skip in non-PTY environments)

Troubleshooting

  • Not sure what's misconfigured? Run omg doctor — it reports per-provider install / login / MCP status and the exact command to fix each gap. omg doctor --json emits the same as machine-readable JSON.
  • omgc: command not found — local clones need npm run build && npm link before the omgc bin alias exists on PATH. If you do not want to link, run node dist/cli.js cockpit. omg doctor now reports the alias state, exact recovery commands, and the active OMG_COCKPIT_STATE_DIR.
  • "binary not found on PATH" — install the provider CLI shown in the error message, or try omg --demo to confirm omg itself works.
  • TUI doesn't render properly — use a modern terminal (iTerm2, Alacritty, Kitty, Wezterm, recent Terminal.app, recent Windows Terminal via WSL). Legacy xterm with limited ANSI support may misrender.
  • Doesn't exit on /quit — Ctrl-C twice escalates; please file an issue if you hit this consistently.
  • "Cannot find module '@anthropic-ai/sdk'" when using --provider claude (the SDK, not claude-cli) — install it: npm install -g @anthropic-ai/sdk. Provider SDKs are optional peer dependencies.
  • Team role runs forever with no visible work — build roles are cancelled after 20 minutes with no output/tool progress; reviewers after 5 minutes. Override with OMG_TEAM_BUILD_IDLE_TIMEOUT_MS, OMG_TEAM_REVIEW_IDLE_TIMEOUT_MS, or OMG_TEAM_IDLE_TIMEOUT_MS.
  • Update nags are noisy/offline — set OMG_SKIP_UPDATE_CHECK=1. The default check is cached for 6 hours; override with OMG_UPDATE_CHECK_TTL_MS.
  • Windows ask/picker path is suspect — run npm run build && npm run test:windows-picker on the native Windows machine. It exercises the built hooked-tool proxy, named-pipe broker, and ~/.omg/hookedtool.log.

Platform support

| Platform | Status | |---|---| | Linux (x64 / ARM64) | ✅ Supported | | macOS (Intel / Apple Silicon) | ✅ Supported | | Windows (x64) | 🧪 Experimental — named-pipe IPC; verify locally. WSL also works. |

Development

git clone https://github.com/jyj902/omg.git
cd omg
npm install
npm run build          # tsc + copy-assets (verifies dist/cli.js --version)
npm test               # full vitest suite
npm run test:windows-picker # built hooked-tool picker smoke (named pipe on Windows)
npm run test:pack      # npm pack + clean-prefix install smoke
npm link               # `omg` global symlink → dist/cli.js

The repo's full design rationale lives in AGENTS.md (the single source of truth for all agents; CLAUDE.md is a thin stub that imports it) and .omg/audit/ (the architectural audit + cleanup queue).

License

MIT