Context
We added a pluggable LLM backend detector registry in src/agent/llm/detectors/. The first provider, Claude Code, reuses the local CLI's subscription OAuth login as the LLM backend (no API key) via LiteLLM. Adding another provider is intentionally cheap: implement the LlmDetector protocol in a new module and append it to ALL_DETECTORS — no other code changes.
Feature
Add detectors for other locally-installed AI CLIs whose login maps to an LLM endpoint LiteLLM understands.
Candidates (priority order):
- Gemini CLI — strongest next target. OAuth creds in
~/.gemini/oauth_creds.json, free tier, LiteLLM gemini/*. Same pattern as Claude Code.
- OpenAI Codex — ChatGPT OAuth in
~/.codex/auth.json, LiteLLM openai/*. Feasible but subscription-OAuth-as-API is grayer than Anthropic's.
- Others (Copilot, Cursor, Goose, Qwen, Kimi, CodeBuddy): mostly agent CLIs, not raw LLM endpoints — low value for our architecture (we have our own agent loop).
Acceptance criteria
For each provider:
Note
Do not build these blind. Each detector depends on the exact credential-file path, model-slot names, and OAuth token format of the target CLI — only verifiable with the CLI installed and logged in. Build each one only when its CLI is available to test.
Context
We added a pluggable LLM backend detector registry in
src/agent/llm/detectors/. The first provider, Claude Code, reuses the local CLI's subscription OAuth login as the LLM backend (no API key) via LiteLLM. Adding another provider is intentionally cheap: implement theLlmDetectorprotocol in a new module and append it toALL_DETECTORS— no other code changes.Feature
Add detectors for other locally-installed AI CLIs whose login maps to an LLM endpoint LiteLLM understands.
Candidates (priority order):
~/.gemini/oauth_creds.json, free tier, LiteLLMgemini/*. Same pattern as Claude Code.~/.codex/auth.json, LiteLLMopenai/*. Feasible but subscription-OAuth-as-API is grayer than Anthropic's.Acceptance criteria
For each provider:
LlmDetectorprotocol (name,label,provider,enabled,is_installed,resolve,status)ALL_DETECTORSNote
Do not build these blind. Each detector depends on the exact credential-file path, model-slot names, and OAuth token format of the target CLI — only verifiable with the CLI installed and logged in. Build each one only when its CLI is available to test.