omega-gemini-cli
SKILL.md
Gemini CLI Skill
Headless wrapper for Google Gemini CLI. Sends prompts via stdin to gemini -p "" --yolo.
Free tier available — no API key required (Google OAuth only).
When to Use
- Get a Google Gemini perspective on any question
- Free-tier AI consultation (no API key costs)
- Code review from Gemini's model
- Brainstorming and analysis tasks
- Cross-validation of Claude's own responses
- Large files or codebases that benefit from Gemini's context window
- Sandbox execution (run/test code via Gemini)
Response Times
Gemini CLI runs as a subprocess and includes model startup time:
- Simple Q&A / news query: ~2 minutes
- Codebase or large-file review: ~5–10 minutes
Set expectations with the user before running long tasks.
Usage
Ask a question
node .claude/skills/omega-gemini-cli/scripts/ask-gemini.mjs "What is the best caching strategy for a Node.js API?"
Specify model (short or long flag)
node .claude/skills/omega-gemini-cli/scripts/ask-gemini.mjs "Explain async/await" --model gemini-2.5-flash
node .claude/skills/omega-gemini-cli/scripts/ask-gemini.mjs "Explain async/await" -m gemini-2.5-flash
JSON output
node .claude/skills/omega-gemini-cli/scripts/ask-gemini.mjs "List 5 design patterns" --json
# Returns: {"response":"..."} on success, {"error":"...","raw":"..."} on parse failure
Code sandbox (short or long flag)
node .claude/skills/omega-gemini-cli/scripts/ask-gemini.mjs "Write and run a fibonacci function" --sandbox
node .claude/skills/omega-gemini-cli/scripts/ask-gemini.mjs "Write and run a fibonacci function" -s
Stdin usage
echo "Explain recursion" | node .claude/skills/omega-gemini-cli/scripts/ask-gemini.mjs
File review (embed content in prompt)
node .claude/skills/omega-gemini-cli/scripts/ask-gemini.mjs "Review this code: $(cat src/auth.ts)"
Availability Check
node .claude/skills/omega-gemini-cli/scripts/verify-setup.mjs
# Exit 0 = available (Node 18+ and Gemini CLI found)
# Exit 1 = not installed or too old
Scripts
| Script | Purpose |
|---|---|
ask-gemini.mjs |
Core headless wrapper — sends prompt via stdin |
parse-args.mjs |
Argument parser (--model/-m, --json, --sandbox/-s) |
verify-setup.mjs |
Availability check (Node 18+, Gemini CLI via PATH or npx) |
format-output.mjs |
Output normalization (JSON envelope handling) |
Flags
| Flag | Short | Description |
|---|---|---|
--model MODEL |
-m |
Gemini model (e.g., gemini-2.5-flash, gemini-2.5-pro) |
--json |
Machine-readable JSON output: {"response":"..."} envelope |
|
--sandbox |
-s |
Code execution sandbox mode |
Models (2026)
| Model ID | Notes |
|---|---|
gemini-3-pro-preview |
Latest (2026), highest capability |
gemini-3-flash-preview |
Latest (2026), faster |
gemini-2.5-pro |
Stable, high capability |
gemini-2.5-flash |
Recommended: lower quota/latency |
gemini-2.5-flash-lite |
Lightest, fastest, lowest quota usage |
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Error (CLI failure, auth issue, JSON parse failure with --json) |
| 9009 | Windows: command not found (falls back to npx automatically) |
Slash Commands (when installed in a project with .claude/commands/)
| Command | Purpose |
|---|---|
/analyze |
Run headless script with user's prompt (and any @ file refs) |
/sandbox |
Run with --sandbox; execute or test code |
/omega-gemini |
Alias: run headless for analysis, sandbox, or brainstorm as appropriate |
/brainstorm |
Brainstorm mode (build prompt with challenge + optional methodology) |
/omega-gemini-setup |
Verify Node and Gemini CLI; guide user to install and auth. No MCP. |
Anti-Patterns & Iron Laws
- ALWAYS use verify-setup.mjs before first use
- NEVER pass prompt as positional arg to raw gemini CLI — use ask-gemini.mjs wrapper
- ALWAYS validate model parameter (wrapper validates via regex
^[a-zA-Z0-9._-]+$on Windows) - NEVER assume gemini is on PATH — wrapper handles npx
@google/gemini-clifallback automatically - ALWAYS handle exit code 1 and 9009 gracefully
- ALWAYS set user expectations about response time before running (2–10 minutes typical)
Integration Notes
- Auth: One-time Google OAuth via
geminiinteractive session (rungeminionce to sign in) - Rate limits: Governed by Gemini API quotas (generous for personal use on free tier)
- Platform: Full cross-platform; Windows uses
shell: truewith model validation; non-Windows uses array args (no shell) - npx fallback: On PATH miss, automatically retries with
npx -y @google/gemini-cli - No timeout flag: Unlike other omega wrappers, gemini wrapper has no --timeout-ms
- Stdin delivery: Prompt always sent via stdin to avoid shell argument length limits (8191-char cmd.exe limit on Windows, ARG_MAX on Linux/macOS)
- JSON envelope:
--jsonwraps output as{"response":"..."}on success or{"error":"...","raw":"..."}on failure
Requirements
- Node.js 18+ to run the scripts
- Google Gemini CLI (
npm install -g @google/gemini-cli) with one-time Google sign-in
Memory Protocol
Before work: Read .claude/context/memory/learnings.md
After work: Append findings to learnings or issues as needed.
Note: Use pnpm search:code to discover references to this skill codebase-wide.
Weekly Installs
21
Repository
oimiragieo/agent-studioGitHub Stars
16
First Seen
Feb 25, 2026
Security Audits
Installed on
github-copilot21
codex21
kimi-cli21
gemini-cli21
cursor21
opencode21