Engines
An engine is the agent loop that runs a coding tab. Lucid Train ships its own, and can also spawn a coding CLI you already have installed, using the login that CLI already has.
The four CLI engines
Each is detected on PATH and spawned as a local child process. Lucid Train never sees the credential: whatever that binary is authenticated as is what runs. If a binary is missing the picker shows the install command; if it is present but not signed in, it shows the login command.
| Engine | Binary | Install | Sign in |
|---|---|---|---|
| Claude Code | claude | npm i -g @anthropic-ai/claude-code | claude auth login |
| Codex | codex | npm i -g @openai/codex | codex login |
| Cursor CLI | cursor-agent | curl https://cursor.com/install -fsS | bash | cursor-agent login |
| OpenCode | opencode | npm i -g opencode-ai | opencode auth login |
Transports
Three of the four speak a protocol over stdio; OpenCode runs a local HTTP server instead. This matters only when you are reading a process list and wondering what is listening.
| Engine | How it is driven |
|---|---|
| Claude Code | claude -p, stream-json in and out, long-lived |
| Codex | codex app-server, JSON-RPC over stdio |
| Cursor CLI | cursor-agent acp, ACP over stdio |
| OpenCode | opencode serve, local HTTP with SSE |
There is no Gemini CLI engine
Asked often enough to state plainly: the harness supports the four above and rejects anything else. Gemini models are reachable through the bundled engine via OpenRouter, which gives you the model inside Lucid Train's own agent loop rather than Google's agent.
The bundled engine
Lucid Train's own engine talks to providers directly: local Ollama with no key, OpenRouter with your key, or any OpenAI-compatible endpoint. It is the only engine that can route different roles to different models, and the only one that can connect a new Grafana instance or add connectors.
Running on a subscription
The bundled engine can also sign in with Claude or with ChatGPT, importing an existing Claude Code or Codex CLI login or running the OAuth flow, and then run on that subscription instead of a metered key.
This route talks to endpoints the vendors do not document for third-party clients. It is reverse-engineered interop, subject to Anthropic's and OpenAI's terms, and it is not officially supported by either. Driving the vendor's own CLI as an engine raises no such question and is the conservative choice.
What differs by engine
Design mode accepts Claude Code and Codex only. Connecting a new Grafana instance and adding connectors require the bundled engine, though querying an already-connected Grafana works on any of them. Everything else, including approval tiers, diff review and the diagram handoff, is the same whichever engine runs.