Models for other harnesses
Example models.json profiles for Pi and OpenCode with free and cheap models, and which model ids were checked.
The built-in profiles in models.json all run on Claude Code. This page gives example profiles that run the same three kinds of work on Pi or OpenCode instead, with a free model for scouts and a cheap paid one for a big mission. They are examples, not defaults: vexillum does not ship them, and the profiles built into the binary do not change.
A free model keeps what the provider's terms say, and gives no guarantees as a commander
A soldier sends the provider your prompts, the files it opens and the output of the commands it runs. What Zen's free models do with your data is in OpenCode's own docs, read on 2026-10-19 in the Privacy section of opencode.ai/docs/zen (the page prints no version; OpenCode 2.0.32 was installed). It says the providers follow a zero-retention policy and do not train on your data, with exceptions, and names four free models as zero-retention: glm-5.3-flash-free, deepseek-v4.1-flash-free, minimax-m3.1-flash-free and longcat-2.5-preview-free. The same page says the free ones are free for a limited time. Several other free models are listed as collecting data to improve the model (Big Pickle, Exo Free, MiMo, the Nemotron models) or as retaining it for 30 days (LL Alpha Free, Beam Free). A free model the page does not mention, such as space-bunny-free or cat-jam-free, is not documented as zero-retention: treat it as logging everything. Terms change, so read the page again before you use one, and do not use a free model on private or proprietary code, or on a machine whose files or environment hold secrets.
A free model as the commander is worse than as a soldier: the commander reads your requests and the project's rules, runs vx with its own judgment and decides what to land. Free models can be unreliable at calling tools and at following long rules, and nothing was checked here about how any of them behaves in that role. Use one as a commander only on work you can afford to redo.
OpenCode
Write this to .vexillum/models.json (or to the global ~/.vexillum/models.json). It is also in the repository as docs/examples/models.opencode.json.
{
"profiles": {
"scout-facts": {
"harness": "opencode",
"model": "opencode/glm-5.3-flash-free",
"effort": "low"
},
"scout-judgment": {
"harness": "opencode",
"model": "opencode/deepseek-v4.1-flash-free",
"effort": "medium"
},
"mission-big": {
"harness": "opencode",
"model": "opencode/deepseek-v4-pro",
"effort": "high"
}
}
}The three profiles have the names of built-in ones, so each overrides only the three fields it sets and keeps the built-in when line the commander reads. That also replaces the Claude Code setting of that profile: after this file, scout-facts runs on OpenCode. To keep the Claude profiles and add these beside them, give them new names and write a when for each (a new profile must set model, effort and when).
effort is only a label on OpenCode: it is recorded on the task and never passed to the model. A variant comes only from the model string (opencode/deepseek-v4-pro#high), and the variant names depend on the model, so none is set here. See Using OpenCode.
| Profile | Why this model |
|---|---|
scout-facts | opencode/glm-5.3-flash-free: free, and named zero-retention on the Zen page. Retrieval needs no judgment. |
scout-judgment | opencode/deepseek-v4.1-flash-free: free and zero-retention too, a different model family, so a judgment scout gets a second opinion from another model. Whether it is good enough at judgment is unconfirmed. |
mission-big | opencode/deepseek-v4-pro: not free. On the Zen page it costs $1.74 input and $3.48 output per million tokens (read 2026-10-19), against $0.30 and $1.20 for the cheaper opencode/deepseek-v4.1-flash, which you can swap in. Whether either one carries a big, ambiguous mission is unconfirmed. |
Pi
Pi picks a model as provider/id, and effort is a thinking level passed as --thinking. Pi 1.3.0 has a built-in opencode provider for Zen, read with the OPENCODE_API_KEY environment variable, so the paid Zen models are reachable from Pi. It is in the repository as docs/examples/models.pi.json:
{
"profiles": {
"scout-facts": {
"harness": "pi",
"model": "opencode/deepseek-v4.1-flash",
"effort": "low"
},
"scout-judgment": {
"harness": "pi",
"model": "opencode/deepseek-v4.1-flash",
"effort": "medium"
},
"mission-big": {
"harness": "pi",
"model": "opencode/deepseek-v4-pro",
"effort": "high"
}
}
}Free Zen models work only inside the OpenCode client: a request from anywhere else, Pi included, is refused with 403 OpenCode's free tier can only be used from within OpenCode. So on Pi the scouts use opencode/deepseek-v4.1-flash, the paid sibling of the free DeepSeek model ($0.30 input and $1.20 output per million tokens on the Zen page, read 2026-10-19), and opencode/glm-5.3-flash-free is not in Pi's catalog anyway. Pi clamps a thinking level the model does not support, so high on a model that stops lower runs at the nearest level it has. See Using Pi.
What was checked, and when
Both lists were read on 2026-10-19 under a throwaway HOME and XDG_* directories, never the real ones, because any opencode command starts the background service of its HOME.
| Model id | opencode models, OpenCode 2.0.32 | pi --list-models, Pi 1.3.0 |
|---|---|---|
opencode/glm-5.3-flash-free | listed | not listed |
opencode/deepseek-v4.1-flash-free | listed | listed |
opencode/deepseek-v4.1-flash | listed once OPENCODE_API_KEY is set | listed once OPENCODE_API_KEY is set |
opencode/deepseek-v4-pro | listed once OPENCODE_API_KEY is set | listed once OPENCODE_API_KEY is set |
OpenCode lists the free ones with no key at all. For Pi, pi --list-models shows nothing until a provider has credentials, so the Pi list was read with a dummy OPENCODE_API_KEY: it proves the catalog has the id, not that a request would be accepted. minimax-m3.1-flash-free appeared in OpenCode's list only with a Zen key set. Run the same two commands yourself, with your own credentials, before you copy an id: models are added and retired often, and the free ones are free for a limited time.
Nothing about speed, tool-calling reliability or quality was measured. A problem with DeepSeek V4 tool calls on Zen was reported upstream (anomalyco/opencode#36354, closed) and was not rechecked against 2.0.32 here.