MANDATORY RULES — VIOLATION IS FORBIDDEN
- Response language follows
languagesetting in.agents/config/user-preferences.yamlif configured. - NEVER skip steps. Execute from Step 1 in order.
- Read configuration files BEFORE making changes.
Vendor note: This workflow executes inline (no subagent spawning). All vendors use their native shell and file tools for CLI detection and configuration.
Step 1: Language Settings
- Check if
.agents/config/user-preferences.yamlexists - If not:
- Ask user for preferred language (ko, en, ja, zh, ...)
- Create default configuration file
- If exists:
- Display current language setting
- Ask if user wants to change
Step 2: CLI Installation Status
Check each CLI installation:
which gemini && gemini --version
which claude && claude --version
which codex && codex --version
Display results:
🔍 CLI Installation Status
┌─────────┬───────────┬─────────────┐
│ CLI │ Status │ Version │
├─────────┼───────────┼─────────────┤
│ gemini │ ✅ Installed │ v2.1.0 │
│ claude │ ✅ Installed │ v1.0.30 │
│ codex │ ❌ Not Found │ - │
└─────────┴───────────┴─────────────┘
Provide installation guide for missing CLIs:
- gemini:
npm install -g @google/gemini-cli - claude:
npm install -g @anthropic-ai/claude-code - codex:
npm install -g @openai/codex-cli
Step 3: MCP Connection Status
- Check
.agents/mcp.jsonexistence and configuration - Check MCP settings for each CLI:
- Gemini CLI:
~/.gemini/settings.json - Claude CLI:
~/.claude.jsonor--mcp-config - Codex CLI:
~/.codex/config.toml - Antigravity IDE:
~/.gemini/antigravity/mcp_config.json
- Gemini CLI:
- Test Serena MCP connection
Display results:
🔗 MCP Connection Status
┌─────────────────┬────────────┬─────────────────────┐
│ Environment │ MCP Config │ Server │
├─────────────────┼────────────┼─────────────────────┤
│ gemini CLI │ ✅ Set │ serena │
│ claude CLI │ ✅ Set │ serena │
│ Antigravity IDE │ ⚠️ Check │ see Step 3.1 │
│ codex CLI │ ❌ Not Set │ - │
└─────────────────┴────────────┴─────────────────────┘
For missing MCP settings:
- Display configuration instructions
- Offer automatic setup option
Step 3.1: Serena MCP Configuration (Optional)
Ask the user: "Do you use Serena MCP server? (y/n)" Skip this step if user answers "no".
Option A: Command Mode (Simple)
Serena runs as a subprocess for each session. No separate server needed.
Gemini CLI (~/.gemini/settings.json):
{
"mcpServers": {
"serena": {
"command": "uv",
"args": ["run", "serena", "--project", "/path/to/your/project"]
}
}
}
Antigravity IDE (~/.gemini/antigravity/mcp_config.json):
{
"mcpServers": {
"serena": {
"command": "uv",
"args": ["run", "serena", "--project", "/path/to/your/project"],
"disabled": false
}
}
}
Option B: SSE Mode (Shared Server)
Serena runs as a shared SSE server. Multiple sessions can share one server instance.
1. Start Serena server:
serena-mcp-server --port 12341
2. Gemini CLI (~/.gemini/settings.json):
{
"mcpServers": {
"serena": {
"url": "http://localhost:12341/sse"
}
}
}
3. Antigravity IDE — requires bridge:
Important: Antigravity IDE doesn't support SSE directly. You need the
bridgecommand to connect.
Configure (~/.gemini/antigravity/mcp_config.json):
{
"mcpServers": {
"serena": {
"command": "npx",
"args": ["-y", "oh-my-agent@latest", "bridge", "http://localhost:12341/sse"],
"disabled": false
}
}
}
Bridge Architecture:
┌─────────────────┐ stdio ┌──────────────────┐ HTTP/SSE ┌─────────────────┐
│ Antigravity IDE │ ◄────────────► │ oh-my-ag bridge │ ◄──────────────► │ Serena SSE │
└─────────────────┘ └──────────────────┘ └─────────────────┘
(localhost:12341)
Comparison
| Mode | Memory Usage | Setup Complexity | Multiple Sessions | |---------|--------------|------------------|-------------------| | Command | Higher | Simple | Each has own process | | SSE | Lower | Requires server | Share one server |
Step 4: Agent-CLI Mapping
-
Display current mapping
-
Ask if user wants to change:
Current Agent-CLI Mapping: ┌──────────┬─────────┐ │ Agent │ CLI │ ├──────────┼─────────┤ │ frontend │ gemini │ │ backend │ gemini │ │ mobile │ gemini │ │ pm │ gemini │ │ qa │ gemini │ │ debug │ gemini │ └──────────┴─────────┘ Do you want to change? (e.g., "backend to codex", "pm to claude") -
Update
.agents/config/user-preferences.yamlif changes requested
Step 5: Setup Complete Summary
✅ Setup Complete!
📝 Configuration Summary:
- Response Language: English (en)
- Timezone: UTC
- Installed CLIs: gemini ✅, claude ✅, codex ❌
- MCP Status: Configured
📋 Agent-CLI Mapping:
- frontend → gemini
- backend → gemini
- mobile → gemini
- pm → gemini
- qa → gemini
- debug → gemini
🚀 Get Started:
- /plan: Create project plan
- /orchestrate: Automated multi-agent execution
- /coordinate: Interactive multi-agent coordination
If Antigravity IDE with SSE mode:
💡 For Antigravity IDE (SSE mode):
- Start Serena server: serena-mcp-server --port 12341
- Restart IDE to apply changes
Step 6: Ask About Starring Repository
First, check if gh CLI is available and authenticated:
gh auth status &>/dev/null
If gh is available and authenticated
Before prompting, check if the repository is already starred:
gh api user/starred/first-fluke/oh-my-ag &>/dev/null
If already starred (exit code 0):
- Skip the prompt entirely
If NOT starred (exit code non-zero):
Ask the user: "If you're enjoying oh-my-agent, would you like to support the project by starring it on GitHub?"
Options:
- Yes, star it!
- Maybe later
If user chooses "Yes, star it!":
gh api -X PUT /user/starred/first-fluke/oh-my-ag 2>/dev/null && echo "Thanks for starring! ⭐" || true
Note: Fail silently if the API call doesn't work - never block setup completion.
If gh is NOT available or not authenticated
echo ""
echo "If you enjoy oh-my-agent, consider starring the repo:"
echo " https://github.com/first-fluke/oh-my-ag"
echo ""