Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,11 @@ Alias skills are also provided for `code-review`, `plan-review`, `plan-reviwe`,
| Codex / GPT | OpenAI | `openai/gpt-5.4-codex` | `codex` | lead, not external |
| Gemini 3.1 Pro | Google | `google/gemini-3.1-pro-preview` | Antigravity CLI (`agy`) | Antigravity CLI (`agy`) |
| Kimi K2.6 | Moonshot | `moonshotai/kimi-k2.6` | Kilo | Kilo |
| Grok 4.20 | xAI | `x-ai/grok-4.20-beta` | Kilo | Kilo, disabled by default |
| Grok 4.3 | xAI | `x-ai/grok-4.3` | Kilo | Kilo, disabled by default |
| MiniMax M2.7 | MiniMax | `minimax/minimax-m2.7` | Kilo | Kilo |
| GLM-5.1 | Zhipu AI | `zai-coding-plan/glm-5.1` | Kilo | Kilo |
| GLM-5.2 | Zhipu AI | `zai-coding-plan/glm-5.2` | Kilo | Kilo |
| Qwen 3.6 Plus | Alibaba | `qwen/qwen3.6-plus` | `qwen` or Kilo | Kilo by default |
| MiMo V2 Pro | Xiaomi | `xiaomi/mimo-v2-pro` | Kilo | Kilo |
| MiMo V2.5 Pro | Xiaomi | `xiaomi/mimo-v2.5-pro` | Kilo | Kilo |
| DeepSeek V4 Pro | DeepSeek | `deepseek/deepseek-v4-pro` | Kilo | Kilo |

Codex intentionally excludes Codex/GPT from the external panel because Codex is already the lead reviewer.
Expand Down
2 changes: 1 addition & 1 deletion plugins/consensus/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Claude commands load model configuration from:
1. `~/.claude/consensus.json` - user config created by `/consensus-setup`
2. `plugins/consensus/consensus.config.json` - Claude plugin defaults

Claude is always the lead participant. Native CLIs (`codex`, Antigravity CLI via `agy`, `qwen`) are handled as special cases in the command templates. The `gemini` model id remains stable, but native Google/Gemini execution should use `agy`; bare `gemini` is legacy only.
Claude is always the lead participant. Native CLIs (`codex`, Antigravity CLI via `agy`, `qwen`) are handled as special cases in the command templates. The `gemini` model id remains stable, but native Google/Gemini execution should use `agy`.

## Codex Configuration

Expand Down
7 changes: 3 additions & 4 deletions plugins/consensus/commands/code-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ For each model in `MODELS`, verify CLI availability:
- Commands starting with `kilo` -> check: `command -v kilo` AND `[ -n "$OPENROUTER_API_KEY" ]`
- Commands starting with `codex` -> check: `command -v codex`
- Commands starting with `agy` -> check: `command -v agy`
- Commands starting with `gemini` -> legacy config; check `command -v agy`, run through the `agy` path below, and warn the user to rerun `/consensus-setup`
- Commands starting with `qwen` -> check: `command -v qwen`

Run all checks in parallel. Remove unavailable models from `MODELS` with a warning for each:
Expand Down Expand Up @@ -216,7 +215,7 @@ For each model, substitute `{MODEL_ID}`, `{MODEL_NAME}`, `{MODEL_COMMAND}`, `{MO

**Building `{EXTRA_DIRS_FLAGS}`** — if `EXTRA_DIRS` is non-empty, build per-CLI flags:
- For commands starting with `codex`: `--add-dir /path1 --add-dir /path2` (one `--add-dir` per directory)
- For commands starting with `agy` or legacy `gemini`: `--add-dir /path1 --add-dir /path2` (one `--add-dir` per directory)
- For commands starting with `agy`: `--add-dir /path1 --add-dir /path2` (one `--add-dir` per directory)
- For commands starting with `qwen`: `--include-directories /path1,/path2` (comma-separated)
- For commands starting with `kilo`: empty string (kilo has no flag — the paths are already in the prompt)

Expand All @@ -237,7 +236,7 @@ SESSION_DIR={SESSION_DIR}
**If `{MODEL_COMMAND}` starts with `codex`:**
codex exec -s read-only {EXTRA_DIRS_FLAGS} -o $SESSION_DIR/{MODEL_ID}.md - < $SESSION_DIR/prompt.md

**If `{MODEL_COMMAND}` starts with `agy` or legacy `gemini`:**
**If `{MODEL_COMMAND}` starts with `agy`:**
agy --sandbox {EXTRA_DIRS_FLAGS} -p "$(cat $SESSION_DIR/prompt.md)" > $SESSION_DIR/{MODEL_ID}.md 2>&1

**If `{MODEL_COMMAND}` starts with `qwen`:**
Expand All @@ -263,7 +262,7 @@ After sending the review, WAIT. The lead will send you a convergence prompt. Whe
**If `{MODEL_COMMAND}` starts with `codex`:**
codex exec resume --last - < $SESSION_DIR/convergence-prompt-{MODEL_ID}.md > $SESSION_DIR/{MODEL_ID}-convergence.md 2>&1

**If `{MODEL_COMMAND}` starts with `agy` or legacy `gemini`:**
**If `{MODEL_COMMAND}` starts with `agy`:**
agy --sandbox -p "$(cat $SESSION_DIR/convergence-prompt-{MODEL_ID}.md)" > $SESSION_DIR/{MODEL_ID}-convergence.md 2>&1

**If `{MODEL_COMMAND}` starts with `qwen`:**
Expand Down
18 changes: 9 additions & 9 deletions plugins/consensus/commands/consensus-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,14 @@ The 9 supported models and their CLI mappings:
| `gpt` | GPT 5.4 Codex | `kilo run -m openrouter/openai/gpt-5.4-codex --auto` | `codex` (if codex CLI installed — note: native codex uses whatever model your `~/.codex/config.toml` specifies, e.g. `gpt-5.5`) |
| `gemini` | Gemini via Antigravity | `kilo run -m openrouter/google/gemini-3.1-pro-preview --auto` | `agy` (if Antigravity CLI installed) |
| `kimi` | Kimi K2.6 | `kilo run -m openrouter/moonshotai/kimi-k2.6 --auto` | OpenRouter only |
| `grok` | Grok 4.20 | `kilo run -m openrouter/x-ai/grok-4.20-beta --auto` | OpenRouter only |
| `grok` | Grok 4.3 | `kilo run -m openrouter/x-ai/grok-4.3 --auto` | OpenRouter only |
| `minimax` | MiniMax M2.7 | `kilo run -m openrouter/minimax/minimax-m2.7 --auto` | OpenRouter only |
| `glm5` | GLM-5.1 | `kilo run -m zai-coding-plan/glm-5.1 --auto` | Z.ai direct only |
| `glm5` | GLM-5.2 | `kilo run -m zai-coding-plan/glm-5.2 --auto` | Z.ai direct only |
| `qwen` | Qwen 3.6 Plus | `kilo run -m openrouter/qwen/qwen3.6-plus --auto` | `qwen` (if qwen CLI installed) |
| `mimo` | MiMo V2 Pro | `kilo run -m openrouter/xiaomi/mimo-v2-pro --auto` | OpenRouter only |
| `mimo` | MiMo V2.5 Pro | `kilo run -m openrouter/xiaomi/mimo-v2.5-pro --auto` | OpenRouter only |
| `deepseek` | DeepSeek V4 Pro | `kilo run -m openrouter/deepseek/deepseek-v4-pro --auto` | OpenRouter only |

**Note on native CLIs**: For `codex`, `agy`, and `qwen`, set the config's `command` field to just `codex`, `agy`, or `qwen`. The teammate template in the review/plan commands detects these and uses the correct native invocation patterns automatically (e.g., `codex exec -s read-only` for reviews, `codex exec resume --last` for convergence, `agy --sandbox -p` for reviews and convergence prompts, `qwen --approval-mode plan -p` with `-o text` for reviews, `qwen -c -p` for convergence). The `resume_flag` field is ignored for native CLIs. If an existing config still contains `command: "gemini"`, treat it as legacy and migrate it to `agy` during reconfiguration.
**Note on native CLIs**: For `codex`, `agy`, and `qwen`, set the config's `command` field to just `codex`, `agy`, or `qwen`. The teammate template in the review/plan commands detects these and uses the correct native invocation patterns automatically (e.g., `codex exec -s read-only` for reviews, `codex exec resume --last` for convergence, `agy --sandbox -p` for reviews and convergence prompts, `qwen --approval-mode plan -p` with `-o text` for reviews, `qwen -c -p` for convergence). The `resume_flag` field is ignored for native CLIs.

Determine which models are available:
- **OpenRouter path**: All 9 available if `kilo` installed + API key set
Expand All @@ -150,15 +150,15 @@ AskUserQuestion:
description: "{available via OpenRouter / available via Antigravity CLI / not available}"
- label: "Kimi K2.6"
description: "{available via OpenRouter / not available}"
- label: "Grok 4.20"
- label: "Grok 4.3"
description: "{available via OpenRouter / not available}"
- label: "MiniMax M2.7"
description: "{available via OpenRouter / not available}"
- label: "GLM-5.1"
- label: "GLM-5.2"
description: "{available via Z.ai coding plan / not available}"
- label: "Qwen 3.6 Plus"
description: "{available via OpenRouter / available via qwen CLI / not available}"
- label: "MiMo V2 Pro"
- label: "MiMo V2.5 Pro"
description: "{available via OpenRouter / not available}"
- label: "DeepSeek V4 Pro"
description: "{available via OpenRouter / not available}"
Expand Down Expand Up @@ -242,7 +242,7 @@ For each enabled model, run a quick test:
Use the command pattern for the configured CLI:

- `codex`: `printf '%s\n' "Reply with exactly: PONG" | codex exec -s read-only - 2>&1 | head -20`
- `agy` or legacy `gemini`: `agy --sandbox -p "Reply with exactly: PONG" 2>&1 | head -20`
- `agy`: `agy --sandbox -p "Reply with exactly: PONG" 2>&1 | head -20`
- `qwen`: `qwen --approval-mode plan -p "Reply with exactly: PONG" -o text 2>&1 | head -20`
- Kilo/OpenRouter: `{model.command} "Reply with exactly: PONG" 2>&1 | head -20`

Expand Down Expand Up @@ -298,7 +298,7 @@ Print the final summary:

1. **9 fixed models only.** Do not offer custom model configuration. The wizard supports exactly the 9 models listed above.
2. **Idempotent .env updates.** When writing API keys, preserve all existing keys in the file. Only add/update the `OPENROUTER_API_KEY` line.
3. **Native CLI support for codex, agy, and qwen.** When a user selects native CLIs, set the config's `command` field to `codex`, `agy`, or `qwen`. The teammate template in the review/plan commands handles the full invocation patterns automatically. All other models use OpenRouter/Kilo only. Bare `gemini` is a legacy config value; migrate it to `agy` when rewriting the config.
3. **Native CLI support for codex, agy, and qwen.** When a user selects native CLIs, set the config's `command` field to `codex`, `agy`, or `qwen`. The teammate template in the review/plan commands handles the full invocation patterns automatically. All other models use OpenRouter/Kilo only.
4. **OpenRouter is the recommended path.** 1 key = 9 models. Emphasize this as the simplest setup.
5. **Enforce minimum 1 external model.** Claude alone is not a consensus.
6. **Hard-stop on quorum failure.** Never finalize a config that can't meet its own quorum.
Expand Down
7 changes: 3 additions & 4 deletions plugins/consensus/commands/plan-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ For each model in `MODELS`, verify CLI availability:
- Commands starting with `kilo` -> check: `command -v kilo` AND `[ -n "$OPENROUTER_API_KEY" ]`
- Commands starting with `codex` -> check: `command -v codex`
- Commands starting with `agy` -> check: `command -v agy`
- Commands starting with `gemini` -> legacy config; check `command -v agy`, run through the `agy` path below, and warn the user to rerun `/consensus-setup`
- Commands starting with `qwen` -> check: `command -v qwen`

Run all checks in parallel. Remove unavailable models from `MODELS` with a warning for each:
Expand Down Expand Up @@ -229,7 +228,7 @@ For each model, substitute `{MODEL_ID}`, `{MODEL_NAME}`, `{MODEL_COMMAND}`, `{MO

**Building `{EXTRA_DIRS_FLAGS}`** — if `EXTRA_DIRS` is non-empty, build per-CLI flags:
- For commands starting with `codex`: `--add-dir /path1 --add-dir /path2` (one `--add-dir` per directory)
- For commands starting with `agy` or legacy `gemini`: `--add-dir /path1 --add-dir /path2` (one `--add-dir` per directory)
- For commands starting with `agy`: `--add-dir /path1 --add-dir /path2` (one `--add-dir` per directory)
- For commands starting with `qwen`: `--include-directories /path1,/path2` (comma-separated)
- For commands starting with `kilo`: empty string (kilo has no flag — the paths are already in the prompt)

Expand All @@ -250,7 +249,7 @@ SESSION_DIR={SESSION_DIR}
**If `{MODEL_COMMAND}` starts with `codex`:**
codex exec -s read-only {EXTRA_DIRS_FLAGS} -o $SESSION_DIR/{MODEL_ID}.md - < $SESSION_DIR/prompt.md

**If `{MODEL_COMMAND}` starts with `agy` or legacy `gemini`:**
**If `{MODEL_COMMAND}` starts with `agy`:**
agy --sandbox {EXTRA_DIRS_FLAGS} -p "$(cat $SESSION_DIR/prompt.md)" > $SESSION_DIR/{MODEL_ID}.md 2>&1

**If `{MODEL_COMMAND}` starts with `qwen`:**
Expand All @@ -276,7 +275,7 @@ After sending the plan, WAIT. The lead will send you a convergence prompt. When
**If `{MODEL_COMMAND}` starts with `codex`:**
codex exec resume --last - < $SESSION_DIR/convergence-prompt-{MODEL_ID}.md > $SESSION_DIR/{MODEL_ID}-convergence.md 2>&1

**If `{MODEL_COMMAND}` starts with `agy` or legacy `gemini`:**
**If `{MODEL_COMMAND}` starts with `agy`:**
agy --sandbox -p "$(cat $SESSION_DIR/convergence-prompt-{MODEL_ID}.md)" > $SESSION_DIR/{MODEL_ID}-convergence.md 2>&1

**If `{MODEL_COMMAND}` starts with `qwen`:**
Expand Down
5 changes: 2 additions & 3 deletions plugins/consensus/commands/review.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ For each model in `MODELS`, verify CLI availability:
- Commands starting with `kilo` -> check: `command -v kilo` AND `[ -n "$OPENROUTER_API_KEY" ]`
- Commands starting with `codex` -> check: `command -v codex`
- Commands starting with `agy` -> check: `command -v agy`
- Commands starting with `gemini` -> legacy config; check `command -v agy`, run through the `agy` path below, and warn the user to rerun `/consensus-setup`
- Commands starting with `qwen` -> check: `command -v qwen`

Run all checks in parallel. Remove unavailable models from `MODELS` with a warning for each:
Expand Down Expand Up @@ -261,7 +260,7 @@ SESSION_DIR={SESSION_DIR}
**If `{MODEL_COMMAND}` starts with `codex`:**
codex exec -s read-only -o $SESSION_DIR/{MODEL_ID}.md - < $SESSION_DIR/prompt.md

**If `{MODEL_COMMAND}` starts with `agy` or legacy `gemini`:**
**If `{MODEL_COMMAND}` starts with `agy`:**
agy --sandbox -p "$(cat $SESSION_DIR/prompt.md)" > $SESSION_DIR/{MODEL_ID}.md 2>&1

**If `{MODEL_COMMAND}` starts with `qwen`:**
Expand All @@ -287,7 +286,7 @@ After sending the review, WAIT. The lead will send you a convergence prompt. Whe
**If `{MODEL_COMMAND}` starts with `codex`:**
codex exec resume --last - < $SESSION_DIR/convergence-prompt-{MODEL_ID}.md > $SESSION_DIR/{MODEL_ID}-convergence.md 2>&1

**If `{MODEL_COMMAND}` starts with `agy` or legacy `gemini`:**
**If `{MODEL_COMMAND}` starts with `agy`:**
agy --sandbox -p "$(cat $SESSION_DIR/convergence-prompt-{MODEL_ID}.md)" > $SESSION_DIR/{MODEL_ID}-convergence.md 2>&1

**If `{MODEL_COMMAND}` starts with `qwen`:**
Expand Down
12 changes: 6 additions & 6 deletions plugins/consensus/consensus.codex.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
},
{
"id": "grok",
"name": "Grok 4.20",
"command": "kilo run -m openrouter/x-ai/grok-4.20-beta --auto",
"name": "Grok 4.3",
"command": "kilo run -m openrouter/x-ai/grok-4.3 --auto",
"resume_flag": "-c",
"enabled": false
},
Expand All @@ -40,8 +40,8 @@
},
{
"id": "glm5",
"name": "GLM-5.1",
"command": "kilo run -m zai-coding-plan/glm-5.1 --auto",
"name": "GLM-5.2",
"command": "kilo run -m zai-coding-plan/glm-5.2 --auto",
"resume_flag": "-c",
"enabled": true
},
Expand All @@ -54,8 +54,8 @@
},
{
"id": "mimo",
"name": "MiMo V2 Pro",
"command": "kilo run -m openrouter/xiaomi/mimo-v2-pro --auto",
"name": "MiMo V2.5 Pro",
"command": "kilo run -m openrouter/xiaomi/mimo-v2.5-pro --auto",
"resume_flag": "-c",
"enabled": true
},
Expand Down
12 changes: 6 additions & 6 deletions plugins/consensus/consensus.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
},
{
"id": "grok",
"name": "Grok 4.20",
"command": "kilo run -m openrouter/x-ai/grok-4.20-beta --auto",
"name": "Grok 4.3",
"command": "kilo run -m openrouter/x-ai/grok-4.3 --auto",
"resume_flag": "-c",
"enabled": true
},
Expand All @@ -38,8 +38,8 @@
},
{
"id": "glm5",
"name": "GLM-5.1",
"command": "kilo run -m zai-coding-plan/glm-5.1 --auto",
"name": "GLM-5.2",
"command": "kilo run -m zai-coding-plan/glm-5.2 --auto",
"resume_flag": "-c",
"enabled": true
},
Expand All @@ -52,8 +52,8 @@
},
{
"id": "mimo",
"name": "MiMo V2 Pro",
"command": "kilo run -m openrouter/xiaomi/mimo-v2-pro --auto",
"name": "MiMo V2.5 Pro",
"command": "kilo run -m openrouter/xiaomi/mimo-v2.5-pro --auto",
"resume_flag": "-c",
"enabled": true
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ Preflight:

- commands starting with `kilo` require `command -v kilo` and a non-empty `OPENROUTER_API_KEY`
- commands starting with `agy` require `command -v agy`
- commands starting with `gemini` are legacy configs; require `command -v agy`, run through the `agy` path below, and recommend rerunning `consensus-setup`
- commands starting with `qwen` require `command -v qwen`
- commands starting with `codex` must be skipped
- never use `--yolo`
Expand All @@ -54,7 +53,7 @@ Support `--dirs /path/a,/path/b`:

Directory flags:

- Antigravity (`agy`) or legacy `gemini`: `--add-dir /path/a --add-dir /path/b`
- Antigravity (`agy`): `--add-dir /path/a --add-dir /path/b`
- native Qwen: `--include-directories /path/a,/path/b`
- Kilo/OpenRouter: no CLI flag; include paths in the prompt

Expand Down Expand Up @@ -115,7 +114,7 @@ Kilo/OpenRouter:
{MODEL_COMMAND} "$(cat "$SESSION_DIR/prompt.md")" > "$SESSION_DIR/{MODEL_ID}.md" 2>&1
```

Antigravity (`agy`) or legacy `gemini`:
Antigravity (`agy`):

```bash
agy --sandbox {EXTRA_DIRS_FLAGS} -p "$(cat "$SESSION_DIR/prompt.md")" > "$SESSION_DIR/{MODEL_ID}.md" 2>&1
Expand Down Expand Up @@ -201,7 +200,7 @@ Kilo/OpenRouter:
{MODEL_COMMAND} {MODEL_RESUME_FLAG} "$(cat "$SESSION_DIR/convergence-prompt.md")" > "$SESSION_DIR/{MODEL_ID}-convergence.md" 2>&1
```

Antigravity (`agy`) or legacy `gemini`:
Antigravity (`agy`):

```bash
agy --sandbox -p "$(cat "$SESSION_DIR/convergence-prompt.md")" > "$SESSION_DIR/{MODEL_ID}-convergence.md" 2>&1
Expand Down
14 changes: 7 additions & 7 deletions plugins/consensus/skills/consensus-setup/references/command.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Never write `~/.claude/consensus.json` from this setup command.
2. Do not include GPT/Codex as an external panelist.
3. For now, do not add Claude as an external panelist.
4. Use Kilo/OpenRouter for OpenRouter-hosted models and native non-Codex CLIs only.
5. Preserve user model preferences unless the user explicitly asks to replace them, but migrate legacy `command: "gemini"` entries to `command: "agy"` whenever rewriting the config.
5. Preserve user model preferences unless the user explicitly asks to replace them.
6. Do not smoke-test live model calls unless the user asks, because that consumes credits.

## Step 1: Inspect Current State
Expand Down Expand Up @@ -50,18 +50,18 @@ Use these model mappings:
|----|------|-----------------|--------------------|
| `gemini` | Gemini via Antigravity | `kilo run -m openrouter/google/gemini-3.1-pro-preview --auto` | `agy` |
| `kimi` | Kimi K2.6 | `kilo run -m openrouter/moonshotai/kimi-k2.6 --auto` | none |
| `grok` | Grok 4.20 | `kilo run -m openrouter/x-ai/grok-4.20-beta --auto` | none |
| `grok` | Grok 4.3 | `kilo run -m openrouter/x-ai/grok-4.3 --auto` | none |
| `minimax` | MiniMax M2.7 | `kilo run -m openrouter/minimax/minimax-m2.7 --auto` | none |
| `glm5` | GLM-5.1 | `kilo run -m zai-coding-plan/glm-5.1 --auto` | none |
| `glm5` | GLM-5.2 | `kilo run -m zai-coding-plan/glm-5.2 --auto` | none |
| `qwen` | Qwen 3.6 Plus | `kilo run -m openrouter/qwen/qwen3.6-plus --auto` | optional `qwen`, disabled by default unless user asks |
| `mimo` | MiMo V2 Pro | `kilo run -m openrouter/xiaomi/mimo-v2-pro --auto` | none |
| `mimo` | MiMo V2.5 Pro | `kilo run -m openrouter/xiaomi/mimo-v2.5-pro --auto` | none |
| `deepseek` | DeepSeek V4 Pro | `kilo run -m openrouter/deepseek/deepseek-v4-pro --auto` | none |

Codex setup intentionally omits the Claude plugin's `gpt` model because Codex/GPT is the lead in Codex sessions.

Recommended defaults:

- enable the current stable non-Codex panel: Gemini via Antigravity, Kimi, MiniMax, GLM-5.1, Qwen, MiMo, and DeepSeek
- enable the current stable non-Codex panel: Gemini via Antigravity, Kimi, MiniMax, GLM-5.2, Qwen, MiMo V2.5 Pro, and DeepSeek
- leave Grok disabled by default unless the user explicitly enables it
- use Antigravity CLI when `agy` is installed; review workflows call it with `--sandbox -p` for both initial and convergence prompts
- use Kilo/OpenRouter for the rest
Expand Down Expand Up @@ -121,7 +121,7 @@ Use the selected quorum. The default Codex panel uses `min_quorum: 8`.

For enabled Kilo models, use `resume_flag: "-c"`.

For native Google/Gemini execution, use `command: "agy"` and `resume_flag: ""`. If an existing user config has `command: "gemini"`, report it as legacy and migrate it to `agy` when the user refreshes the config.
For native Google/Gemini execution, use `command: "agy"` and `resume_flag: ""`.

For native Qwen, only use `command: "qwen"` if the user explicitly selects native Qwen; otherwise prefer Kilo/OpenRouter.

Expand All @@ -139,7 +139,7 @@ fi

For each enabled model, run a tiny prompt asking it to reply `PONG`, using the command pattern for that CLI:

- `agy` or legacy `gemini`: `agy --sandbox -p "Reply with exactly: PONG"`
- `agy`: `agy --sandbox -p "Reply with exactly: PONG"`
- `qwen`: `qwen --approval-mode plan -p "Reply with exactly: PONG" -o text`
- Kilo/OpenRouter: `{model.command} "Reply with exactly: PONG"`

Expand Down