MiniMax Code

September 21, 2026 · View on GitHub

captured with OrcaReplay

All four files here are OrcaReplay captures, taken 2026-09-20 from mcode 0.4.12.

MiniMax Code ships three system prompts and picks one per surface, so all three are here:

--prompt-modefilechars
tui (default)prompt14,675
codingprompt16,055
workprompt17,619

They are three documents, not one with a flag in it: coding swaps the Deliverable Files section for Media Output, and work adds an Artifact Completion Contract on top of that. All three declare the same 18 tools — the three captures came out byte-identical, so they share the one file.

The model is not the variable

Seven models across six labs — MiniMax, DeepSeek, OpenAI, Kimi, GLM, Hunyuan — on two different gateways produced 119 identical lines each. The only difference was one line, - Model: <id>, and the tool set never moved. The prompts are Handlebars templates shipped inside the package (assets/agents/_v2/*/SYSTEM.md.hbs), not fetched from a server, and none of their conditionals branches on a model or a provider. The model in these filenames is the one that answered, not a variant.

What is missing from these, and why

These are the BYOK shape. The code that answers a bring-your-own-key run forces disableMemory and disableMavis, which drops a 3,381-character # Memory section and a 210-character block that a signed-in run carries. Setting memory.enabled: true in the config does not bring it back — measured, byte-identical output. Capturing the fuller prompt needs a MiniMax credential, and this capture deliberately used none.

Regenerate

One line per prompt mode, against @minimax-ai/code 0.4.12:

node capture/capture.mjs mcode --model deepseek/deepseek-v4-flash-free --prompt-mode tui --allow-failed
node capture/capture.mjs mcode --model deepseek/deepseek-v4-flash-free --prompt-mode coding --allow-failed
node capture/capture.mjs mcode --model deepseek/deepseek-v4-flash-free --prompt-mode work --allow-failed

Two flags earn their place. --prompt-mode picks between three different prompts the one binary sends, and --allow-failed keeps the capture when the turn comes back 401 — which it will, because the key orca writes into the generated config is a placeholder and the prompt is captured regardless, travelling in the request.

Run it from a directory that is a git repository and has no MCP config. The first matters because the harness is told whether it is in one, and these captures say it is; the second because orca rewrites an MCP config it finds so that traffic is captured too, which adds those servers' tools to the harness's tool list. Capturing from orca's own repository put six mcp__orcareplay__* entries into the tool set — 24 instead of 18 — while leaving the prompt itself byte-identical, since MCode does not enumerate its tools there.

The route behind the one-liner, which is worth knowing before trying the obvious one:

  • Interception does not work here. MCode's HTTP client is Node's fetch, which consults neither HTTP_PROXY nor HTTPS_PROXY, so --tls-intercept records nothing and reports capture.empty.
  • The provider's base URL lives in ~/.minimax/config.yaml, not in an environment variable. The mcode adapter points MINIMAX_DATA_DIR at a directory inside the run and writes a redirected copy of that config there, rather than editing the operator's file and putting it back — MCode rewrites its own config on startup, and a run that is killed never restores anything.
  • provider add --use cannot activate a provider headlessly — that path throws TEST_REQUIRED unconditionally. defaultModel set to <providerId>/<modelId> activates it instead, where the provider id starts with custom_provider:.
  • No account and no key are needed, and only a custom provider can be captured at all: MCode restores the built-in providers' origins over whatever the config says.

Details in docs/CAPTURES.md.