com um clique
omc-setup
Setup and configure oh-my-gemini (the ONLY command you need to learn)
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
Setup and configure oh-my-gemini (the ONLY command you need to learn)
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
Automatically deploy oh-my-gemini to npm and GitHub
Full autonomous execution from idea to working code
Fix build and TypeScript errors with minimal changes
Cancel any active OMC mode (autopilot, ralph, ultrawork, ecomode, ultraqa, swarm, ultrapilot, pipeline)
Run a comprehensive code review
Deep executor mode for complex goal-oriented tasks
| name | omc-setup |
| description | Setup and configure oh-my-gemini (the ONLY command you need to learn) |
This is the only command you need to learn. After running this, everything else is automatic.
IMPORTANT: This setup process saves progress after each step. If interrupted (Ctrl+C or connection loss), the setup can resume from where it left off.
.omc/state/setup-state.json - Tracks completed stepsBefore starting any step, check for existing state:
# Check for existing setup state
STATE_FILE=".omc/state/setup-state.json"
# Cross-platform ISO date to epoch conversion
iso_to_epoch() {
local iso_date="$1"
local epoch=""
# Try GNU date first (Linux)
epoch=$(date -d "$iso_date" +%s 2>/dev/null)
if [ $? -eq 0 ] && [ -n "$epoch" ]; then
echo "$epoch"
return 0
fi
# Try BSD/macOS date
local clean_date=$(echo "$iso_date" | sed 's/[+-][0-9][0-9]:[0-9][0-9]$//' | sed 's/Z$//' | sed 's/T/ /')
epoch=$(date -j -f "%Y-%m-%d %H:%M:%S" "$clean_date" +%s 2>/dev/null)
if [ $? -eq 0 ] && [ -n "$epoch" ]; then
echo "$epoch"
return 0
fi
echo "0"
}
if [ -f "$STATE_FILE" ]; then
# Check if state is stale (older than 24 hours)
TIMESTAMP_RAW=$(jq -r '.timestamp // empty' "$STATE_FILE" 2>/dev/null)
if [ -n "$TIMESTAMP_RAW" ]; then
TIMESTAMP_EPOCH=$(iso_to_epoch "$TIMESTAMP_RAW")
NOW_EPOCH=$(date +%s)
STATE_AGE=$((NOW_EPOCH - TIMESTAMP_EPOCH))
else
STATE_AGE=999999 # Force fresh start if no timestamp
fi
if [ "$STATE_AGE" -gt 86400 ]; then
echo "Previous setup state is more than 24 hours old. Starting fresh."
rm -f "$STATE_FILE"
else
LAST_STEP=$(jq -r ".lastCompletedStep // 0" "$STATE_FILE" 2>/dev/null || echo "0")
TIMESTAMP=$(jq -r .timestamp "$STATE_FILE" 2>/dev/null || echo "unknown")
echo "Found previous setup session (Step $LAST_STEP completed at $TIMESTAMP)"
fi
fi
If state exists, use AskUserQuestion to prompt:
Question: "Found a previous setup session. Would you like to resume or start fresh?"
Options:
If user chooses "Start fresh":
rm -f ".omc/state/setup-state.json"
echo "Previous state cleared. Starting fresh setup."
After completing each major step, save progress:
# Save setup progress (call after each step)
# Usage: save_setup_progress STEP_NUMBER
save_setup_progress() {
mkdir -p .omc/state
cat > ".omc/state/setup-state.json" << EOF
{
"lastCompletedStep": $1,
"timestamp": "$(date -Iseconds)",
"configType": "${CONFIG_TYPE:-unknown}"
}
EOF
}
After successful setup completion (Step 7/8), remove the state file:
rm -f ".omc/state/setup-state.json"
echo "Setup completed successfully. State cleared."
This skill handles three scenarios:
--local): Configure project-specific settings (.gemini-cli/GEMINI.md)--global): Configure global settings (~/.gemini-cli/GEMINI.md)Check for flags in the user's invocation:
--local flag present → Skip to Local Configuration (Step 2A)--global flag present → Skip to Global Configuration (Step 2B)Note: If resuming and lastCompletedStep >= 1, skip to the appropriate step based on configType.
Use the AskUserQuestion tool to prompt the user:
Question: "Where should I configure oh-my-gemini?"
Options:
.gemini-cli/GEMINI.md in current project directory. Best for project-specific configurations.~/.gemini-cli/GEMINI.md for all Gemini CLI sessions. Best for consistent behavior everywhere.CRITICAL: This ALWAYS downloads fresh GEMINI.md from GitHub to the local project. DO NOT use the Write tool - use bash curl exclusively.
# Create .claude directory in current project
mkdir -p .claude && echo ".claude directory ready"
# Define target path
TARGET_PATH=".gemini-cli/GEMINI.md"
# Extract old version before download
OLD_VERSION=$(grep -m1 "^# oh-my-gemini" "$TARGET_PATH" 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' || echo "none")
# Backup existing
if [ -f "$TARGET_PATH" ]; then
BACKUP_DATE=$(date +%Y-%m-%d_%H%M%S)
BACKUP_PATH="${TARGET_PATH}.backup.${BACKUP_DATE}"
cp "$TARGET_PATH" "$BACKUP_PATH"
echo "Backed up existing GEMINI.md to $BACKUP_PATH"
fi
# Download fresh OMC content to temp file
TEMP_OMC=$(mktemp /tmp/omc-claude-XXXXXX.md)
trap 'rm -f "$TEMP_OMC"' EXIT
curl -fsSL "https://raw.githubusercontent.com/Yeachan-Heo/oh-my-gemini/main/docs/GEMINI.md" -o "$TEMP_OMC"
if [ ! -s "$TEMP_OMC" ]; then
echo "ERROR: Failed to download GEMINI.md. Aborting."
rm -f "$TEMP_OMC"
return 1
fi
# Strip existing markers from downloaded content (idempotency)
if grep -q '<!-- OMC:START -->' "$TEMP_OMC"; then
# Extract content between markers
sed -n '/<!-- OMC:START -->/,/<!-- OMC:END -->/{//!p}' "$TEMP_OMC" > "${TEMP_OMC}.clean"
mv "${TEMP_OMC}.clean" "$TEMP_OMC"
fi
if [ ! -f "$TARGET_PATH" ]; then
# Fresh install: wrap in markers
{
echo '<!-- OMC:START -->'
cat "$TEMP_OMC"
echo '<!-- OMC:END -->'
} > "$TARGET_PATH"
rm -f "$TEMP_OMC"
echo "Installed GEMINI.md (fresh)"
else
# Merge: preserve user content outside OMC markers
if grep -q '<!-- OMC:START -->' "$TARGET_PATH"; then
# Has markers: replace OMC section, keep user content
BEFORE_OMC=$(sed -n '1,/<!-- OMC:START -->/{ /<!-- OMC:START -->/!p }' "$TARGET_PATH")
AFTER_OMC=$(sed -n '/<!-- OMC:END -->/,${ /<!-- OMC:END -->/!p }' "$TARGET_PATH")
{
[ -n "$BEFORE_OMC" ] && printf '%s\n' "$BEFORE_OMC"
echo '<!-- OMC:START -->'
cat "$TEMP_OMC"
echo '<!-- OMC:END -->'
[ -n "$AFTER_OMC" ] && printf '%s\n' "$AFTER_OMC"
} > "${TARGET_PATH}.tmp"
mv "${TARGET_PATH}.tmp" "$TARGET_PATH"
echo "Updated OMC section (user customizations preserved)"
else
# No markers: wrap new content in markers, append old content as user section
OLD_CONTENT=$(cat "$TARGET_PATH")
{
echo '<!-- OMC:START -->'
cat "$TEMP_OMC"
echo '<!-- OMC:END -->'
echo ""
echo "<!-- User customizations (migrated from previous GEMINI.md) -->"
printf '%s\n' "$OLD_CONTENT"
} > "${TARGET_PATH}.tmp"
mv "${TARGET_PATH}.tmp" "$TARGET_PATH"
echo "Migrated existing GEMINI.md (added OMC markers, preserved old content)"
fi
rm -f "$TEMP_OMC"
fi
# Extract new version and report
NEW_VERSION=$(grep -m1 "^# oh-my-gemini" "$TARGET_PATH" 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' || echo "unknown")
if [ "$OLD_VERSION" = "none" ]; then
echo "Installed GEMINI.md: $NEW_VERSION"
elif [ "$OLD_VERSION" = "$NEW_VERSION" ]; then
echo "GEMINI.md unchanged: $NEW_VERSION"
else
echo "Updated GEMINI.md: $OLD_VERSION -> $NEW_VERSION"
fi
Note: The downloaded GEMINI.md includes Context Persistence instructions with <remember> tags for surviving conversation compaction.
Note: If an existing GEMINI.md is found, it will be backed up to .gemini-cli/GEMINI.md.backup.YYYY-MM-DD before downloading the new version.
MANDATORY: Always run this command. Do NOT skip. Do NOT use Write tool.
FALLBACK if curl fails: Tell user to manually download from: https://raw.githubusercontent.com/Yeachan-Heo/oh-my-gemini/main/docs/GEMINI.md
grep -q "oh-my-gemini" ~/.gemini-cli/settings.json && echo "Plugin verified" || echo "Plugin NOT found - run: claude /install-plugin oh-my-gemini"
After completing local configuration, save progress and report:
# Save progress - Step 2 complete (Local config)
mkdir -p .omc/state
cat > ".omc/state/setup-state.json" << EOF
{
"lastCompletedStep": 2,
"timestamp": "$(date -Iseconds)",
"configType": "local"
}
EOF
OMC Project Configuration Complete
.gemini-cli/GEMINI.md.backup.YYYY-MM-DD (if existed)Note: This configuration is project-specific and won't affect other projects or global settings.
If --local flag was used, clear state and STOP HERE:
rm -f ".omc/state/setup-state.json"
Do not continue to HUD setup or other steps.
CRITICAL: This ALWAYS downloads fresh GEMINI.md from GitHub to global config. DO NOT use the Write tool - use bash curl exclusively.
# Define target path
TARGET_PATH="$HOME/.gemini-cli/GEMINI.md"
# Extract old version before download
OLD_VERSION=$(grep -m1 "^# oh-my-gemini" "$TARGET_PATH" 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' || echo "none")
# Backup existing
if [ -f "$TARGET_PATH" ]; then
BACKUP_DATE=$(date +%Y-%m-%d_%H%M%S)
BACKUP_PATH="${TARGET_PATH}.backup.${BACKUP_DATE}"
cp "$TARGET_PATH" "$BACKUP_PATH"
echo "Backed up existing GEMINI.md to $BACKUP_PATH"
fi
# Download fresh OMC content to temp file
TEMP_OMC=$(mktemp /tmp/omc-claude-XXXXXX.md)
trap 'rm -f "$TEMP_OMC"' EXIT
curl -fsSL "https://raw.githubusercontent.com/Yeachan-Heo/oh-my-gemini/main/docs/GEMINI.md" -o "$TEMP_OMC"
if [ ! -s "$TEMP_OMC" ]; then
echo "ERROR: Failed to download GEMINI.md. Aborting."
rm -f "$TEMP_OMC"
return 1
fi
# Strip existing markers from downloaded content (idempotency)
if grep -q '<!-- OMC:START -->' "$TEMP_OMC"; then
# Extract content between markers
sed -n '/<!-- OMC:START -->/,/<!-- OMC:END -->/{//!p}' "$TEMP_OMC" > "${TEMP_OMC}.clean"
mv "${TEMP_OMC}.clean" "$TEMP_OMC"
fi
if [ ! -f "$TARGET_PATH" ]; then
# Fresh install: wrap in markers
{
echo '<!-- OMC:START -->'
cat "$TEMP_OMC"
echo '<!-- OMC:END -->'
} > "$TARGET_PATH"
rm -f "$TEMP_OMC"
echo "Installed GEMINI.md (fresh)"
else
# Merge: preserve user content outside OMC markers
if grep -q '<!-- OMC:START -->' "$TARGET_PATH"; then
# Has markers: replace OMC section, keep user content
BEFORE_OMC=$(sed -n '1,/<!-- OMC:START -->/{ /<!-- OMC:START -->/!p }' "$TARGET_PATH")
AFTER_OMC=$(sed -n '/<!-- OMC:END -->/,${ /<!-- OMC:END -->/!p }' "$TARGET_PATH")
{
[ -n "$BEFORE_OMC" ] && printf '%s\n' "$BEFORE_OMC"
echo '<!-- OMC:START -->'
cat "$TEMP_OMC"
echo '<!-- OMC:END -->'
[ -n "$AFTER_OMC" ] && printf '%s\n' "$AFTER_OMC"
} > "${TARGET_PATH}.tmp"
mv "${TARGET_PATH}.tmp" "$TARGET_PATH"
echo "Updated OMC section (user customizations preserved)"
else
# No markers: wrap new content in markers, append old content as user section
OLD_CONTENT=$(cat "$TARGET_PATH")
{
echo '<!-- OMC:START -->'
cat "$TEMP_OMC"
echo '<!-- OMC:END -->'
echo ""
echo "<!-- User customizations (migrated from previous GEMINI.md) -->"
printf '%s\n' "$OLD_CONTENT"
} > "${TARGET_PATH}.tmp"
mv "${TARGET_PATH}.tmp" "$TARGET_PATH"
echo "Migrated existing GEMINI.md (added OMC markers, preserved old content)"
fi
rm -f "$TEMP_OMC"
fi
# Extract new version and report
NEW_VERSION=$(grep -m1 "^# oh-my-gemini" "$TARGET_PATH" 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' || echo "unknown")
if [ "$OLD_VERSION" = "none" ]; then
echo "Installed GEMINI.md: $NEW_VERSION"
elif [ "$OLD_VERSION" = "$NEW_VERSION" ]; then
echo "GEMINI.md unchanged: $NEW_VERSION"
else
echo "Updated GEMINI.md: $OLD_VERSION -> $NEW_VERSION"
fi
Note: If an existing GEMINI.md is found, it will be backed up to ~/.gemini-cli/GEMINI.md.backup.YYYY-MM-DD before downloading the new version.
Check if old manual hooks exist and remove them to prevent duplicates:
# Remove legacy bash hook scripts (now handled by plugin system)
rm -f ~/.gemini-cli/hooks/keyword-detector.sh
rm -f ~/.gemini-cli/hooks/stop-continuation.sh
rm -f ~/.gemini-cli/hooks/persistent-mode.sh
rm -f ~/.gemini-cli/hooks/session-start.sh
echo "Legacy hooks cleaned"
Check ~/.gemini-cli/settings.json for manual hook entries. If the "hooks" key exists with UserPromptSubmit, Stop, or SessionStart entries pointing to bash scripts, inform the user:
Note: Found legacy hooks in settings.json. These should be removed since the plugin now provides hooks automatically. Remove the "hooks" section from ~/.gemini-cli/settings.json to prevent duplicate hook execution.
grep -q "oh-my-gemini" ~/.gemini-cli/settings.json && echo "Plugin verified" || echo "Plugin NOT found - run: claude /install-plugin oh-my-gemini"
After completing global configuration, save progress and report:
# Save progress - Step 2 complete (Global config)
mkdir -p .omc/state
cat > ".omc/state/setup-state.json" << EOF
{
"lastCompletedStep": 2,
"timestamp": "$(date -Iseconds)",
"configType": "global"
}
EOF
OMC Global Configuration Complete
~/.gemini-cli/GEMINI.md.backup.YYYY-MM-DD (if existed)Note: Hooks are now managed by the plugin system automatically. No manual hook installation required.
If --global flag was used, clear state and STOP HERE:
rm -f ".omc/state/setup-state.json"
Do not continue to HUD setup or other steps.
Note: If resuming and lastCompletedStep >= 3, skip to Step 3.5.
The HUD shows real-time status in Gemini CLI's status bar. Invoke the hud skill to set up and configure:
Use the Skill tool to invoke: hud with args: setup
This will:
~/.gemini-cli/hud/omc-hud.mjsstatusLine in ~/.gemini-cli/settings.jsonAfter HUD setup completes, save progress:
# Save progress - Step 3 complete (HUD setup)
mkdir -p .omc/state
CONFIG_TYPE=$(cat ".omc/state/setup-state.json" 2>/dev/null | grep -oE '"configType":\s*"[^"]+"' | cut -d'"' -f4 || echo "unknown")
cat > ".omc/state/setup-state.json" << EOF
{
"lastCompletedStep": 3,
"timestamp": "$(date -Iseconds)",
"configType": "$CONFIG_TYPE"
}
EOF
Clear old cached plugin versions to avoid conflicts:
# Clear stale plugin cache versions
CACHE_DIR="$HOME/.gemini-cli/plugins/cache/omc/oh-my-gemini"
if [ -d "$CACHE_DIR" ]; then
LATEST=$(ls -1 "$CACHE_DIR" | sort -V | tail -1)
CLEARED=0
for dir in "$CACHE_DIR"/*; do
if [ "$(basename "$dir")" != "$LATEST" ]; then
rm -rf "$dir"
CLEARED=$((CLEARED + 1))
fi
done
[ $CLEARED -gt 0 ] && echo "Cleared $CLEARED stale cache version(s)" || echo "Cache is clean"
else
echo "No cache directory found (normal for new installs)"
fi
Notify user if a newer version is available:
# Detect installed version
INSTALLED_VERSION=""
# Try cache directory first
if [ -d "$HOME/.gemini-cli/plugins/cache/omc/oh-my-gemini" ]; then
INSTALLED_VERSION=$(ls -1 "$HOME/.gemini-cli/plugins/cache/omc/oh-my-gemini" | sort -V | tail -1)
fi
# Try .omc-version.json second
if [ -z "$INSTALLED_VERSION" ] && [ -f ".omc-version.json" ]; then
INSTALLED_VERSION=$(grep -oE '"version":\s*"[^"]+' .omc-version.json | cut -d'"' -f4)
fi
# Try GEMINI.md header third (local first, then global)
if [ -z "$INSTALLED_VERSION" ]; then
if [ -f ".gemini-cli/GEMINI.md" ]; then
INSTALLED_VERSION=$(grep -m1 "^# oh-my-gemini" .gemini-cli/GEMINI.md 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | sed 's/^v//')
elif [ -f "$HOME/.gemini-cli/GEMINI.md" ]; then
INSTALLED_VERSION=$(grep -m1 "^# oh-my-gemini" "$HOME/.gemini-cli/GEMINI.md" 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | sed 's/^v//')
fi
fi
# Check npm for latest version
LATEST_VERSION=$(npm view oh-my-claude-sisyphus version 2>/dev/null)
if [ -n "$INSTALLED_VERSION" ] && [ -n "$LATEST_VERSION" ]; then
# Simple version comparison (assumes semantic versioning)
if [ "$INSTALLED_VERSION" != "$LATEST_VERSION" ]; then
echo ""
echo "UPDATE AVAILABLE:"
echo " Installed: v$INSTALLED_VERSION"
echo " Latest: v$LATEST_VERSION"
echo ""
echo "To update, run: claude /install-plugin oh-my-gemini"
else
echo "You're on the latest version: v$INSTALLED_VERSION"
fi
elif [ -n "$LATEST_VERSION" ]; then
echo "Latest version available: v$LATEST_VERSION"
fi
Use the AskUserQuestion tool to prompt the user:
Question: "Which parallel execution mode should be your default when you say 'fast' or 'parallel'?"
Options:
Store the preference in ~/.gemini-cli/.omc-config.json:
# Read existing config or create empty object
CONFIG_FILE="$HOME/.gemini-cli/.omc-config.json"
mkdir -p "$(dirname "$CONFIG_FILE")"
if [ -f "$CONFIG_FILE" ]; then
EXISTING=$(cat "$CONFIG_FILE")
else
EXISTING='{}'
fi
# Set defaultExecutionMode (replace USER_CHOICE with "ultrawork" or "ecomode")
echo "$EXISTING" | jq --arg mode "USER_CHOICE" '. + {defaultExecutionMode: $mode, configuredAt: (now | todate)}' > "$CONFIG_FILE"
echo "Default execution mode set to: USER_CHOICE"
Note: This preference ONLY affects generic keywords ("fast", "parallel"). Explicit keywords ("ulw", "eco") always override this preference.
If the user wants to disable ecomode completely (so ecomode keywords are ignored), add to the config:
echo "$EXISTING" | jq '. + {ecomode: {enabled: false}}' > "$CONFIG_FILE"
echo "Ecomode disabled completely"
The OMC CLI provides standalone token analytics commands (omc stats, omc agents, omc tui).
Ask user: "Would you like to install the OMC CLI for standalone analytics? (Recommended for tracking token usage and costs)"
Options:
omc stats, omc agents, etc.The CLI (omc command) is no longer supported via npm/bun global install.
All functionality is available through the plugin system:
/oh-my-gemini:help for guidance/oh-my-gemini:doctor for diagnosticsSkip this step - the plugin provides all features.
First, detect available task tools:
# Detect beads (bd)
BD_VERSION=""
if command -v bd &>/dev/null; then
BD_VERSION=$(bd --version 2>/dev/null | head -1 || echo "installed")
fi
# Detect beads-rust (br)
BR_VERSION=""
if command -v br &>/dev/null; then
BR_VERSION=$(br --version 2>/dev/null | head -1 || echo "installed")
fi
# Report findings
if [ -n "$BD_VERSION" ]; then
echo "Found beads (bd): $BD_VERSION"
fi
if [ -n "$BR_VERSION" ]; then
echo "Found beads-rust (br): $BR_VERSION"
fi
if [ -z "$BD_VERSION" ] && [ -z "$BR_VERSION" ]; then
echo "No external task tools found. Using built-in Tasks."
fi
If neither beads nor beads-rust is detected, skip this step (default to built-in).
If beads or beads-rust is detected, use AskUserQuestion:
Question: "Which task management tool should I use for tracking work?"
Options:
(Only show options 2/3 if the corresponding tool is detected)
Store the preference:
CONFIG_FILE="$HOME/.gemini-cli/.omc-config.json"
mkdir -p "$(dirname "$CONFIG_FILE")"
if [ -f "$CONFIG_FILE" ]; then
EXISTING=$(cat "$CONFIG_FILE")
else
EXISTING='{}'
fi
# USER_CHOICE is "builtin", "beads", or "beads-rust" based on user selection
echo "$EXISTING" | jq --arg tool "USER_CHOICE" '. + {taskTool: $tool, taskToolConfig: {injectInstructions: true, useMcp: false}}' > "$CONFIG_FILE"
echo "Task tool set to: USER_CHOICE"
Note: The beads context instructions will be injected automatically on the next session start. No restart is needed for config to take effect.
grep -q "oh-my-gemini" ~/.gemini-cli/settings.json && echo "Plugin verified" || echo "Plugin NOT found - run: claude /install-plugin oh-my-gemini"
MCP servers extend Gemini CLI with additional tools (web search, GitHub, etc.).
Ask user: "Would you like to configure MCP servers for enhanced capabilities? (Context7, Exa search, GitHub, etc.)"
If yes, invoke the mcp-setup skill:
/oh-my-gemini:mcp-setup
If no, skip to next step.
Check if user has existing configuration:
# Check for existing 2.x artifacts
ls ~/.gemini-cli/commands/ralph-loop.md 2>/dev/null || ls ~/.gemini-cli/commands/ultrawork.md 2>/dev/null
If found, this is an upgrade from 2.x.
OMC Setup Complete!
You don't need to learn any commands. I now have intelligent behaviors that activate automatically.
WHAT HAPPENS AUTOMATICALLY:
- Complex tasks -> I parallelize and delegate to specialists
- "plan this" -> I start a planning interview
- "don't stop until done" -> I persist until verified complete
- "stop" or "cancel" -> I intelligently stop current operation
MAGIC KEYWORDS (optional power-user shortcuts):
Just include these words naturally in your request:
| Keyword | Effect | Example |
|---------|--------|---------|
| ralph | Persistence mode | "ralph: fix the auth bug" |
| ralplan | Iterative planning | "ralplan this feature" |
| ulw | Max parallelism | "ulw refactor the API" |
| eco | Token-efficient mode | "eco refactor the API" |
| plan | Planning interview | "plan the new endpoints" |
**ralph includes ultrawork:** When you activate ralph mode, it automatically includes ultrawork's parallel execution. No need to combine keywords.
MCP SERVERS:
Run /oh-my-gemini:mcp-setup to add tools like web search, GitHub, etc.
HUD STATUSLINE:
The status bar now shows OMC state. Restart Gemini CLI to see it.
CLI ANALYTICS (if installed):
- omc - Full dashboard (stats + agents + cost)
- omc stats - View token usage and costs
- omc agents - See agent breakdown by cost
- omc tui - Launch interactive TUI dashboard
That's it! Just use Gemini CLI normally.
OMC Setup Complete! (Upgraded from 2.x)
GOOD NEWS: Your existing commands still work!
- /ralph, /ultrawork, /plan, etc. all still function
WHAT'S NEW in 3.0:
You no longer NEED those commands. Everything is automatic now:
- Just say "don't stop until done" instead of /ralph
- Just say "fast" or "parallel" instead of /ultrawork
- Just say "plan this" instead of /plan
- Just say "stop" instead of /cancel
MAGIC KEYWORDS (power-user shortcuts):
| Keyword | Same as old... | Example |
|---------|----------------|---------|
| ralph | /ralph | "ralph: fix the bug" |
| ralplan | /ralplan | "ralplan this feature" |
| ulw | /ultrawork | "ulw refactor API" |
| eco | (new!) | "eco fix all errors" |
| plan | /plan | "plan the endpoints" |
HUD STATUSLINE:
The status bar now shows OMC state. Restart Gemini CLI to see it.
CLI ANALYTICS (if installed):
- omc - Full dashboard (stats + agents + cost)
- omc stats - View token usage and costs
- omc agents - See agent breakdown by cost
- omc tui - Launch interactive TUI dashboard
Your workflow won't break - it just got easier!
First, check if gh CLI is available and authenticated:
gh auth status &>/dev/null
Use the AskUserQuestion tool to prompt the user:
Question: "If you're enjoying oh-my-gemini, would you like to support the project by starring it on GitHub?"
Options:
If user chooses "Yes, star it!":
gh api -X PUT /user/starred/Yeachan-Heo/oh-my-gemini 2>/dev/null && echo "Thanks for starring! ⭐" || true
Note: Fail silently if the API call doesn't work - never block setup completion.
echo ""
echo "If you enjoy oh-my-gemini, consider starring the repo:"
echo " https://github.com/Yeachan-Heo/oh-my-gemini"
echo ""
After Step 8 completes (regardless of star choice), clear the setup state:
# Setup complete - clear state file
rm -f ".omc/state/setup-state.json"
echo "Setup completed successfully!"
After installing oh-my-gemini updates (via npm or plugin update), run:
/oh-my-gemini:omc-setup --local to update project config/oh-my-gemini:omc-setup --global to update global configThis ensures you have the newest features and agent configurations.
When user runs /oh-my-gemini:omc-setup --help or just --help, display:
OMC Setup - Configure oh-my-gemini
USAGE:
/oh-my-gemini:omc-setup Run initial setup wizard
/oh-my-gemini:omc-setup --local Configure local project (.gemini-cli/GEMINI.md)
/oh-my-gemini:omc-setup --global Configure global settings (~/.gemini-cli/GEMINI.md)
/oh-my-gemini:omc-setup --help Show this help
MODES:
Initial Setup (no flags)
- Interactive wizard for first-time setup
- Configures GEMINI.md (local or global)
- Sets up HUD statusline
- Checks for updates
- Offers MCP server configuration
Local Configuration (--local)
- Downloads fresh GEMINI.md to ./.gemini-cli/
- Backs up existing GEMINI.md to .gemini-cli/GEMINI.md.backup.YYYY-MM-DD
- Project-specific settings
- Use this to update project config after OMC upgrades
Global Configuration (--global)
- Downloads fresh GEMINI.md to ~/.gemini-cli/
- Backs up existing GEMINI.md to ~/.gemini-cli/GEMINI.md.backup.YYYY-MM-DD
- Applies to all Gemini CLI sessions
- Cleans up legacy hooks
- Use this to update global config after OMC upgrades
EXAMPLES:
/oh-my-gemini:omc-setup # First time setup
/oh-my-gemini:omc-setup --local # Update this project
/oh-my-gemini:omc-setup --global # Update all projects
For more info: https://github.com/Yeachan-Heo/oh-my-gemini