Engines

Use OpenCode as the engine.

The open-source option, and the only engine that talks HTTP rather than stdio.

Download for macOS
v0.1.33 · .dmg · Apple Silicon & Intel
Signed & notarized by Apple · opens without a Gatekeeper warning
sha256 698955a0187bc039f4c74f5d05a9f10fbb27376a45788a0a241d1326b73873c7
Download for Windows instead
$curl -fsSL https://lucidtrain.com/install.sh | sh

Selecting OpenCode makes Lucid Train run `opencode serve` and connect to it over local HTTP with server-sent events for streaming, which is the one engine here that is not stdio. OpenCode is open source and provider-agnostic, so it is the natural choice if you want the harness on top of a model you have chosen yourself. It drives coding tabs; Design mode has no OpenCode provider.

A local server rather than a pipe

`opencode serve` binds a local HTTP endpoint and streams events back over SSE. The practical difference from the stdio engines is small at this level, since the process still starts and stops with your session and still runs on your machine, but it is worth knowing when you are reading a process list and wondering what is listening.

Whose credential is used

On this route Lucid Train never sees the credential. It looks for the binary on PATH, spawns it as a child process, and speaks its protocol. Authentication is whatever that CLI already did when you signed into it, so the entitlement stays between you and the vendor and nothing is proxied, replayed or re-signed.

Provider-agnostic underneath

OpenCode does not tie you to one model vendor, which makes this pairing the closest thing here to running the harness over a model you fully control while still using someone else's agent loop. If you would rather not run a third-party agent loop either, the bundled Lucid engine against local Ollama removes that layer too.

The two engine lists

One thing worth separating, because the two lists genuinely differ: the engine that runs a coding tab and the provider that powers Design mode are chosen independently. Coding tabs accept Claude Code, Codex, Cursor CLI and OpenCode. Design mode accepts Claude Code and Codex only. Picking Cursor for your coding tab does not move Design onto Cursor, because there is no Cursor provider behind that canvas.

What the harness still owns

Approval tiers, the diff review gate and the diagram handoff are Lucid Train's regardless of engine, because they sit between you and whatever the agent proposes rather than inside the agent. That is the part that does not change when you switch the engine underneath.

What the engine picker needs

Value
Binary on PATHopencode
Installnpm i -g opencode-ai
Sign inopencode auth login
Transportopencode serve, local HTTP and SSE
Drives Design modeNo
API key needed by Lucid TrainNone
FAQ

Questions

Why is this one HTTP and the others stdio?

Because that is the interface each program offers. OpenCode ships a local server; Claude Code, Codex and Cursor CLI all speak a stdio protocol. The harness meets each one where it is rather than imposing a single transport.

Does anything leave the machine?

The HTTP server is local. Whether model calls leave depends entirely on which provider you configured inside OpenCode, which is a decision you make there rather than here.

Can Design use it?

No. Design mode accepts Claude Code and Codex only.

Related

Last updated