{"_id":"@danielsilvaperez/oh-my-gemini","name":"@danielsilvaperez/oh-my-gemini","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@danielsilvaperez/oh-my-gemini","version":"0.0.1","description":"Workflow/runtime layer and extension bundle for Gemini CLI","license":"MIT","repository":{"type":"git","url":"git+https://github.com/danielsilvaperez/oh-my-gemini.git"},"homepage":"https://github.com/danielsilvaperez/oh-my-gemini#readme","bugs":{"url":"https://github.com/danielsilvaperez/oh-my-gemini/issues"},"keywords":["gemini","gemini-cli","cli","extension","workflow","automation","tmux"],"engines":{"node":">=22"},"type":"module","bin":{"omg":"bin/omg.js"},"publishConfig":{"access":"public"},"workspaces":["packages/*"],"scripts":{"build":"npm run clean && tsc -p tsconfig.json","clean":"rm -rf dist","dev":"tsx packages/cli/bin/omg.ts","typecheck":"tsc -p tsconfig.json --noEmit","lint":"npm run typecheck","test":"tsx --test packages/core/src/__tests__/*.test.ts","pack:dry-run":"npm pack --dry-run","smoke:pack":"node scripts/smoke-pack.mjs","prepack":"npm run build","prepublishOnly":"npm test && npm run typecheck && npm run build && npm run smoke:pack"},"dependencies":{"commander":"^14.0.1","zod":"^4.1.5"},"devDependencies":{"@types/node":"^24.3.0","tsx":"^4.20.5","typescript":"^5.9.2"},"_id":"@danielsilvaperez/oh-my-gemini@0.0.1","gitHead":"eee027820cfa01277b66f24712cd13efedf23174","_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-mXczO9H6au9ngoGQDAb0WQEsoGLRHExzzKbSqyGxIzL+vj9krM60HXSUzwF5KSoXu+V/XGpifCYUpzMluKgE3g==","shasum":"a849d056de692c47b246b9008027d4b0981694a0","tarball":"https://registry.npmjs.org/@danielsilvaperez/oh-my-gemini/-/oh-my-gemini-0.0.1.tgz","fileCount":117,"unpackedSize":282584,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEDnUVvbh4JAccLFuIF1ZCHK4zhoh6NUEzLvmKGe9TCDAiBhwv9+QMMMjVU/dfdojCRyEf5D/J5rXKJNP91MHJ2exA=="}]},"_npmUser":{"name":"danielsilvaperez","email":"danielsilvaperez24@gmail.com"},"directories":{},"maintainers":[{"name":"danielsilvaperez","email":"danielsilvaperez24@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/oh-my-gemini_0.0.1_1776221163608_0.876167605381811"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-15T02:46:03.444Z","0.0.1":"2026-04-15T02:46:03.763Z","modified":"2026-04-15T02:46:03.989Z"},"maintainers":[{"name":"danielsilvaperez","email":"danielsilvaperez24@gmail.com"}],"description":"Workflow/runtime layer and extension bundle for Gemini CLI","homepage":"https://github.com/danielsilvaperez/oh-my-gemini#readme","keywords":["gemini","gemini-cli","cli","extension","workflow","automation","tmux"],"repository":{"type":"git","url":"git+https://github.com/danielsilvaperez/oh-my-gemini.git"},"bugs":{"url":"https://github.com/danielsilvaperez/oh-my-gemini/issues"},"license":"MIT","readme":"# OMG (oh-my-gemini)\n\nOMG is a workflow/runtime layer for Gemini CLI.\n\nIt aims to make day-to-day Gemini usage feel closer to the operator ergonomics of oh-my-codex / oh-my-claudecode:\n\n- stronger session startup\n- mode-driven defaults (`smart`, `madmax`, `high`)\n- first-class workflow commands (`setup`, `doctor`, `deep-interview`, `plan`, `ralph`, `team`)\n- persistent project state under `.omg/`\n- tmux-backed team execution\n- Gemini extension hooks, commands, and starter skills\n\n## Repo layout\n\n```text\npackages/\n  cli/        CLI entrypoint + command surface\n  core/       orchestration/state/runtime engine\n  extension/  Gemini extension bundle (hooks, commands, skills)\n```\n\n## Install from npm\n\n```bash\nnpm install -g @danielsilvaperez/oh-my-gemini\n# or:\nnpx @danielsilvaperez/oh-my-gemini@latest setup\n```\n\n## Setup\n\n```bash\nomg setup\n```\n\n`omg setup` does the following:\n- creates `~/.omg/` and project `.omg/` directories\n- scaffolds project `.gemini/GEMINI.md` if missing\n- mirrors the packaged extension into `~/.omg/extension`\n- validates and links the extension into Gemini CLI when `gemini` is available\n- writes a helper script at `~/.omg/link-extension.sh` for manual re-linking\n\nUse `omg setup --no-link` if you want to stage the extension without touching your Gemini CLI config.\n\nAfter install, you can confirm the packaged CLI version:\n\n```bash\nomg --version\n```\n\n## Verify install\n\n```bash\nomg doctor\ngemini extensions list\n```\n\nIf the link is healthy, `doctor` will report `Gemini extension link` as passing and `gemini extensions list` will include `oh-my-gemini`.\n\n## Install from source\n\n```bash\nnpm install\nnpm run build\nnode dist/packages/cli/bin/omg.js setup\n```\n\n## Doctor\n\n```bash\nomg doctor\n```\n\nChecks:\n- Node.js\n- npm\n- Gemini CLI\n- tmux\n- extension assets present\n- project/global state writable\n- OMG config present\n- Gemini extension link health\n\n## First run\n\n### Normal Gemini session\n\n```bash\nomg\nomg --smart\nomg --madmax\nomg --madmax --high\n```\n\nWithout a task argument, OMG initializes project state and launches Gemini interactively with OMG environment variables so the extension hooks can inject mode-aware context.\n\n### One-shot task execution\n\n```bash\nomg \"summarize this repo\"\nomg --madmax \"ship the auth change\"\nomg --madmax --high \"finish the approved implementation\"\n```\n\nBehavior:\n- `smart`: lightweight planning for non-trivial tasks, otherwise direct execution\n- `madmax`: plans non-trivial tasks first, then executes autonomously\n- `high`: uses the structured Ralph loop (`plan -> execute one step -> verify -> continue`)\n\n### tmux-backed session launch\n\n```bash\nomg --tmux --madmax --high\n```\n\nStarts a detached tmux session running Gemini (or Ralph for task-driven high mode) and prints the attach command.\n\n## Canonical workflow commands\n\n```bash\nomg deep-interview \"clarify the auth change\"\nomg deep-interview --non-interactive \"clarify the auth change\"\nomg plan \"approve the safest implementation path\"\nomg ralph \"carry the approved plan to completion\"\nomg team 3:executor \"execute the approved plan in parallel\"\nomg team status <team-id>\nomg team resume <team-id>\nomg team shutdown <team-id>\n```\n\nAdditional utility surfaces in v1:\n\n```bash\nomg hud --watch\nomg explore --prompt \"read-only repo question\"\nomg sparkshell \"git status --short\"\n```\n\n## State layout\n\n### Global\n\n```text\n~/.omg/\n  config.json\n  extension/\n  logs/\n  sessions/\n  skills/\n  artifacts/\n```\n\n### Project\n\n```text\n.omg/\n  session.json\n  mode.json\n  plan-current.md\n  plan-current.json\n  test-spec-current.md\n  test-spec-current.json\n  project-memory.json\n  notepad.md\n  context/\n  state/\n  sessions/\n  plans/\n  logs/\n  team/\n  artifacts/\n  skills/\n```\n\nNotable durable runtime files:\n- `.omg/state/*.json` — workflow/runtime mode state snapshots\n- `.omg/logs/trace.jsonl` — lightweight runtime trace of session, planning, Ralph, team, and hook events\n\n## Ralph loop\n\n`omg ralph` is a real stepwise loop:\n\n1. Generate a structured plan.\n2. Execute one bounded step at a time with Gemini headless mode.\n3. Run step verification commands.\n4. Persist iteration history to `.omg/artifacts/ralph-state.json` and `.omg/logs/ralph.jsonl`.\n5. Continue, retry, or stop based on structured execution + verification state.\n\nIt does **not** rely on brittle string matching like “contains complete”.\n\n`omg plan` now writes both durable implementation planning artifacts and a companion test-spec artifact so Ralph and operators have an explicit verification contract to work from.\n\n## Team mode\n\n`omg team` creates a durable tmux session and state under `.omg/team/<team-id>/`.\n\nCurrent v1 behavior:\n- worker 1 = primary delivery lane (writable)\n- middle workers = support / analysis lanes\n- final worker = verification lane\n- each worker has `config.json`, `status.json`, `result.json` (on success), a summary/status trail, and a dedicated log file\n- `status`, `resume`, and `shutdown` inspect or control the tmux session while preserving durable artifacts on disk\n\n## Gemini extension bundle\n\nThe packaged extension includes:\n- `gemini-extension.json`\n- `hooks/hooks.json`\n- `hooks/session-start.mjs`, `before-agent.mjs`, `after-agent.mjs`, `session-end.mjs`\n- slash commands: `/deep-interview`, `/plan`, `/ralph`, `/team`\n- starter skills: planning, execution, verification, debugging, repo-onboarding\n\n## Notes / limitations\n\n- OMG prefers extension/context-based behavior instead of forcing `GEMINI_SYSTEM_MD`, because Gemini’s system override is a full replacement of built-in firmware.\n- Team mode is intentionally lane-based in v1 to avoid unsafe multi-writer conflicts in the same checkout.\n- Extension hooks/commands depend on Gemini trusting the workspace and successfully loading the linked extension.\n\n## Publishing checklist\n\nBefore publishing a release:\n\n```bash\nnpm test\nnpm run typecheck\nnpm run build\nnpm run smoke:pack\nnpm publish --access public\n```\n\nGitHub Actions automation is included:\n- `.github/workflows/ci.yml` runs test/typecheck/build/pack smoke checks on pushes and PRs\n- `.github/workflows/publish.yml` publishes to npm and creates a GitHub release when you push a `v*` tag (requires `NPM_TOKEN`)\n","readmeFilename":"README.md","_rev":"1-40f1724e0df31b74f4001a38f13d9304"}