Context-engineering-powered multi-agent workflow pack for Gemini CLI.
Official Gemini Extensions command
gemini extensions install https://github.com/Joonghyun-Lee-Frieren/oh-my-gemini-cli
Verify: gemini extensions list /extensions list
"Claude Code's core competitiveness isn't the Opus or Sonnet engine. It's Claude Code itself. Surprisingly, Gemini works well too when attached to Claude Code."
OmG started from this question: "What if we bring that harness model to Gemini CLI?"
OmG is now aligned with recent Gemini CLI stable releases (v0.35.0, v0.36.0) plus preview tracking for v0.37.0-preview.1.
| Area | Update |
|---|---|
| Upstream compatibility window | Reviewed Gemini CLI updates from 2026-03-20 to 2026-04-03 and reflected stable-channel impact in OmG docs and diagnostics. |
| Stable baseline refresh | Raised recommended runtime baseline to v0.36.0+ to match current assumptions around native worktree sessions, sandboxing, and subagent orchestration. |
| Doctor diagnostics hardening | /omg:doctor now flags runtime compatibility drift (older CLI builds that miss current worktree/sandbox behavior assumptions). |
| Recent release mapping | Added explicit guidance for stable v0.35.0 (keyboard/vim + sandbox/JIT context), stable v0.36.0 (multi-registry, worktree, native sandbox), and preview v0.37.0-preview.1 (optional). |
| Version + docs refresh | README, Korean README, landing page, and changelog were updated with extension/package version bump to 0.6.0. |
| Extension boundary | All changes stay inside Gemini CLI extension primitives (prompt, skills, command policy, docs/state guidance) with no new daemon/service layer. |
How user intent becomes a validated output
User Request
|
Gemini CLI
|
OmG Extension (gemini-extension.json)
|--- commands/omg/*.toml -> command-driven orchestration
|--- skills/*/SKILL.md -> retained deep-work skills only
|--- agents/*.md -> role prompts and behavior contracts
|--- GEMINI.md -> context/omg-core.md
|
Structured Result
(plan / implementation / review / next actions)
Role-aware split across gemini-3.1-pro, gemini-3-flash, and gemini-3.1-flash-lite lanes.
What OmG adds over a plain single-session run
| Work Need | Plain Session | OmG Extension |
|---|---|---|
| Large feature planning | Manual prompt decomposition | $plan / $omg-plan and omg-planner with phased output format |
| Parallel role execution | Single-thread thinking | /omg:team-assemble builds role lanes first, then /omg:team executes with explicit handoffs |
| Task-fit team composition | Manual role guessing each session | Domain specialists + format specialists are selected dynamically with approval gate |
| Parallel lane or worktree coordination | Implicit branch/path assumptions and repeated restarts | /omg:workspace keeps root/lane ownership explicit and /omg:workspace audit surfaces dirty or untrusted lanes before parallel execution |
| Consistency in decisions | High drift risk across long chats | Shared baseline from a thin GEMINI.md -> context/omg-core.md chain |
| Debug/review loop | Ad-hoc and easy to skip | Dedicated omg-reviewer + omg-debugger path |
| Command discoverability | No namespaced workflow surface | Stable /omg:* command namespace |
| Intent-stage mismatch prevention | Manual interpretation each turn | /omg:intent gate routes requests to the right stage |
| Long-session bootstrap | Ad-hoc codebase scanning | /omg:deep-init creates project map and validation baseline |
| Done criteria discipline | Premature completion risk | /omg:taskboard + /omg:team-verify keep stable task IDs and verifier-backed completion evidence |
| Prior-decision recall | Manual transcript scrolling and guesswork | /omg:recall retrieves prior rationale via state-first search with bounded fallback. |
| Informational sessions trigger noisy learn nudges | Manual filtering or turning off learning prompts entirely | omg-learn-signal-after-agent filters informational-only queries and prompts /omg:learn only when actionable implementation signals exist. |
| Deep interview gets interrupted by auto nudges | Manual pause of hooks during interview windows | omg-learn-signal-after-agent suppresses learn nudges automatically while .omg/state/deep-interview.json reports an active lock. |
| Task-specific guardrails | Global/static prompt policies | /omg:rules injects conditional rule packs per task |
| Durable memory management | Decisions spread across turns and easy to lose | /omg:memory keeps a compact MEMORY.md index plus topic/rule files |
| Status visibility control | Single fixed output density | /omg:hud profiles (normal, compact, hidden) adapt status readability |
| Approval policy posture | Ad-hoc confirmation behavior | /omg:approval manages suggest/auto/full-auto with risk guardrails |
| Preflight diagnostics | Manual setup checks | /omg:doctor provides readiness findings and prioritized remediation |
| Hook safety and trigger discipline | Manual event policing and ad-hoc checks | /omg:hooks + /omg:hooks-validate enforce deterministic lanes, safety policy, and trigger health checks |
| Long-run alerting | Manual monitoring or ad-hoc shell notifications | /omg:notify keeps approvals, blockers, verify failures, checkpoints, and idle drift observable with extension-native policy files |
| Per-turn usage visibility | Manual /stats model checks only |
Built-in AfterAgent hook prints compact turn/session token usage after each completed turn and suppresses duplicate replays of the same transcript snapshot |
| Startup/discovery weight | Broad mirrored command/skill surface plus disconnected shared context | Slash-command-first surface with 8 retained deep-work skills and a real root GEMINI.md entrypoint |
Assemble first, execute after approval.
| Step | Behavior |
|---|---|
| 1. Analyze task shape | Infer domain, output type, risk posture, and evidence depth. |
| 2. Build role lanes | Select domain specialists and format specialists separately. |
| 3. Assign models + reasoning | Map model profiles and teammate reasoning effort by lane risk. |
| 4. Ask approval | Pause and request explicit confirmation before autonomous team execution. |
| 5. Run lifecycle | Execute team-plan -> team-prd -> taskboard -> team-exec -> team-verify -> team-fix. |
Competitor analysis + executive report
| Lane | Agent(s) | Purpose |
|---|---|---|
| Orchestration | omg-director | Route messages, resolve conflicts, maintain acceptance focus. |
| Exploration | omg-researcher x3 | Parallel evidence collection across competitor segments. |
| Decision | omg-consultant | Define criteria and recommend strategic direction. |
| Editorial | omg-editor | Deliver concise executive-ready output. |
| Quality | omg-reviewer | Check consistency, unsupported claims, and missing evidence. |
Compact state anchors plus lane hygiene for parallel lanes and long verify/fix loops.
| Command | Role |
|---|---|
/omg:workspace | Track primary root, optional worktree/path lanes, collision boundaries, and lane health. |
/omg:taskboard | Track stable task IDs, owners, dependencies, verifier-backed completion, and lane-health notes. |
/omg:recall | Recover prior rationale from compact state first, then widen to bounded recent history only when required. |
/omg:checkpoint | Resume from compact state references instead of replaying full chat history. |
/omg:cache | Audit whether compact state anchors are actually keeping cache prefixes stable. |
Lightweight control without adding a runtime daemon.
/omg:workspace set . /omg:workspace audit /omg:workspace add ../feature-auth omg-executor /omg:taskboard sync /omg:team Implement auth flow with tests /omg:taskboard next /omg:recall "why was auth lane blocked" scope=state /omg:checkpoint
Extension-native AfterAgent hooks for usage visibility and learn-signal safety filtering, including deep-interview lock suppression.
| Artifact | Purpose |
|---|---|
hooks/hooks.json | Registers omg-quota-watch-after-agent on AfterAgent |
hooks/scripts/after-agent-usage.js | Reads transcript, calculates turn/session/model token totals, and deduplicates repeated retries against the same snapshot |
.omg/state/quota-watch.json | Persists turn counter, latest usage snapshot, and last processed transcript fingerprint |
hooks/scripts/learn.js | Filters informational-only learning nudges, deduplicates retries, and sanitizes legacy state before emit |
.omg/state/learn-watch.json | Persists learn-signal dedupe key, prompt-once session tracking, and skip reason |
.omg/state/deep-interview.json | Lock-state input; when active, learn nudges are suppressed to protect interview flow |
Boundary: the hook cannot fetch authoritative remaining account quota by itself. Use /stats model for remaining quota/limits.
Printed automatically after each completed agent turn.
[OMG][USAGE][TURN 12] turn=9,703 tok (in 9,487 / out 48 / cache 3,195) session=18,859 tok model=gemini-3-flash-preview 18,859 tok remaining=/stats model (actionable session only) [OMG][Learn] Actionable session signals detected (4/11). Run '/omg:learn' (deep-interview lock active) learn nudge suppressed (duplicate retries against the same transcript snapshot are suppressed)
Disable per hook with hooksConfig.disabled = ["omg-quota-watch-after-agent"] or ["omg-learn-signal-after-agent"].
Primary control plane for status, notification routing, intent routing, workspace/task tracking, approval posture, and staged execution control.
Small retained deep-work skill set for discovery, planning, scoped execution, PRD drafting, research, and context cleanup.
Role-specialized behavior contracts across orchestration, analysis, implementation, quality, and final packaging.
| Type | Name | Primary Use |
|---|---|---|
| Command | /omg:status | Snapshot progress, risk, and next actions |
| Command | /omg:doctor | Diagnose extension/team/workspace/hook readiness and generate remediation plan |
| Command | /omg:hud | Switch status visibility profile (normal/compact/hidden) |
| Command | /omg:hud-on | Quick toggle to full HUD status view |
| Command | /omg:hud-compact | Quick toggle to compact HUD status view |
| Command | /omg:hud-off | Quick toggle to hidden HUD (plain status sections) |
| Command | /omg:hooks | Inspect/switch hook trigger profile, lanes, and safety policy |
| Command | /omg:hooks-init | Bootstrap hook policy files and plugin contract scaffolding |
| Command | /omg:hooks-validate | Validate trigger graph, lifecycle symmetry, ordering, and worker-session safety constraints |
| Command | /omg:hooks-test | Dry-run event sequences and estimate hook efficiency impact |
| Command | /omg:notify | Configure approvals/blockers/verify/checkpoint/idle notification routing |
| Command | /omg:intent | Classify request intent and route to the right stage |
| Command | /omg:workspace | Set primary root, worktree/path lane ownership, and audit lane health |
| Command | /omg:taskboard | Maintain compact task ledger with stable IDs, verify state, and lane-health notes |
| Command | /omg:recall | Recover prior decisions/evidence with state-first search and bounded history fallback |
| Command | /omg:team-assemble | Build a task-fit team roster and request execution approval |
| Command | /omg:deep-init | Build project map and validation baseline before long sessions |
| Command | /omg:rules | Activate task-conditional guardrail rule packs |
| Command | /omg:memory | Manage MEMORY.md index, topic notes, and rule packs |
| Command | /omg:reasoning | Set global/teammate reasoning effort profile for depth and cost control |
| Command | /omg:loop | Continue exec/verify/fix cycles until done or blocked |
| Command | /omg:approval | Switch approval posture (suggest/auto/full-auto) |
| Command | /omg:team | Run full multi-agent lifecycle with optional assembled roster and compact taskboard sync |
| Command | /omg:cancel | Harness-style safe cancel alias with resume handoff |
| Command | /omg:optimize | Tune prompt/context quality and cost profile |
| Command | /omg:cache | Inspect cache/context behavior and compact-state anchoring |
| Skill | $plan | Milestone-level decomposition |
| Skill | $omg-plan | Slash-friendly planning alias that avoids native /plan collision |
| Skill | $execute | Implementation pass for a scoped slice |
| Skill | $prd | Measurable scope and acceptance-criteria drafting |
| Skill | $ralplan | Strict staged planning with rollback points |
| Skill | $research | Option comparison and tradeoff synthesis |
| Skill | $deep-dive | Trace-to-interview discovery with clarity score and launch brief |
| Skill | $context-optimize | Signal-to-noise optimization in context |
| Agent | Responsibility | Model Profile |
|---|---|---|
omg-architect | System boundaries and long-term design quality | gemini-3.1-pro |
omg-planner | Task slicing, dependencies, execution order | gemini-3.1-pro |
omg-product | Scope lock and measurable acceptance criteria | gemini-3.1-pro |
omg-executor | Code-level implementation and incremental delivery | gemini-3-flash |
omg-reviewer | Regression checks and correctness review | gemini-3.1-pro |
omg-verifier | Acceptance-gate evidence checks and release readiness | gemini-3.1-pro |
omg-debugger | Root cause analysis and fix strategy | gemini-3.1-pro |
omg-consensus | Option convergence and decision scoring | gemini-3.1-pro |
omg-researcher | Evidence gathering and decision support | gemini-3.1-pro |
omg-director | Lane orchestration, conflict resolution, and handoff control | gemini-3.1-pro |
omg-consultant | Decision criteria, strategic analysis, and recommendation framing | gemini-3.1-pro |
omg-editor | Final deliverable structure and consistency packaging | gemini-3-flash |
omg-quick | Small tactical edits | gemini-3.1-flash-lite |
| Stage | Operator Command | Expected Output |
|---|---|---|
| Install | gemini extensions install https://github.com/Joonghyun-Lee-Frieren/oh-my-gemini-cli |
Extension registered as oh-my-gemini-cli |
| Validate | gemini extensions list or /extensions list |
Extension appears in active extension list |
| Doctor preflight | /omg:doctor (or /omg:doctor team) |
Readiness findings with prioritized remediation before autonomy |
| Set operator posture | /omg:approval auto |
Explicit confirmation policy aligned to task risk |
| Set alert posture | /omg:notify profile watchdog |
Approval, blocker, verify-failure, checkpoint, and idle-watchdog alerts persisted to policy state |
| Enable usage visibility | /stats model (periodic quota check) + built-in AfterAgent usage hook |
Automatic per-turn token usage line plus authoritative remaining quota on demand |
| Learn signal (automatic) | Built-in AfterAgent learn-signal hook |
/omg:learn nudge appears only for actionable sessions; informational-only turns and deep-interview lock windows are suppressed |
| Start workflow | /omg:deep-init <task> then /omg:intent <task> |
Project map + stage-routed handoff before coding |
| Set workspace lanes | /omg:workspace set ., /omg:workspace audit, and optionally /omg:workspace add <path> <owner> |
Explicit root/lane ownership plus lane hygiene before parallel implementation |
| Recall prior rationale | /omg:recall "<keyword>" scope=state (expand to scope=recent only if needed) |
Fast context recovery without replaying full transcript history |
| Assemble team | /omg:team-assemble <task> |
Role-fit roster proposal + approval gate before autonomous execution |
| Sync task ledger | /omg:taskboard sync |
Compact source of truth for ready, blocked, done, and verified tasks |
| Refresh memory | /omg:memory Sync index and active rules for current task |
Compact memory index + task-aware rule activation context |
| Bootstrap hooks | /omg:hooks-init then /omg:hooks profile balanced |
Deterministic hook lane policy persisted for the session |
| Validate hook graph | /omg:hooks-validate then /omg:hooks-test |
Safe-to-run decision, lifecycle symmetry check, and dry-run evidence before high-autonomy loops |
| Execute lifecycle | /omg:team Implement feature X with tests (approved roster) |
team-plan -> team-prd -> taskboard -> team-exec -> team-verify -> team-fix progression summary |
| Enforce completion loop | /omg:loop Continue unresolved verify backlog |
Explicit continue/done/blocked status with taskboard coverage and evidence |
| Observe state | /omg:status |
Current progress, blockers, and next actions |
| Tune visibility | /omg:hud compact or /omg:hud-off |
Status output density aligned to terminal/session style |
| Tune context | /omg:optimize or $context-optimize |
Cleaner context with lower drift, stable task anchors, and better cache reuse |
| Symptom | Likely Cause | Action |
|---|---|---|
settings.filter is not a function |
Outdated CLI runtime or stale extension cache | Update Gemini CLI, uninstall extension, reinstall via extensions command |
/omg:* not found |
Extension not loaded in current process | Run gemini extensions list and restart session |
| Workspace/sandbox behavior differs from docs | Gemini CLI runtime is older than the current OmG compatibility baseline | Upgrade Gemini CLI to stable v0.36.0+, then rerun /omg:doctor and /omg:workspace audit |
/plan opens native plan mode when OmG planning skill was expected |
Built-in /plan and skill slash invocation names can collide in newer Gemini CLI versions |
Use /omg-plan (or $omg-plan) for OmG planning skill behavior, or /omg:team-plan for staged planning |
| Autonomous flow confirms too often or too little | Approval posture not aligned with risk profile | Run /omg:approval suggest|auto|full-auto and re-check policy |
| Review or automation is about to run on a dirty or untrusted lane | Shared worktree hygiene is unclear | Run /omg:workspace audit, isolate the lane if needed, and only then continue verify/review steps |
| Hooks seem to miss terminal events or fire twice after continuation | Hook lifecycle symmetry is not explicit | Run /omg:hooks-validate, then fix lifecycle policy before re-enabling autonomous loops |
| Output feels generic or repetitive | Reasoning posture and quality gate too weak for target artifact | Raise /omg:reasoning (optionally teammate overrides) and rerun /omg:team-verify |
| Team assembly keeps proposing but not executing | No explicit approval token after roster proposal | Reply with yes, approve, go, or run and re-run /omg:team-assemble |
| Done status keeps drifting after long loops | No compact task source of truth or missing verifier signoff | Run /omg:taskboard sync, then rerun /omg:team-verify to close remaining task IDs |
| Setup health is unclear before a long run | State/config drift accumulated across sessions | Run /omg:doctor and apply remediation list |
| Skills not triggering | Skill files not loaded in active extension context | Confirm skills/*/SKILL.md files and reload CLI |