RISC-V (linux/riscv64) support in Codex CLI (experimental Debian 13 build path, including rusty_v8)
What variant of Codex are you using?
Codex CLI
What feature would you like to see?
Official linux/riscv64 support for Codex CLI, including platform detection, a supported install/build path, and ideally release artifacts or documented source-build instructions.
Additional information
Related to #6150, which I had not seen earlier. That issue focused on Ubuntu 24.04 and Node 20 and reported the Unsupported platform: linux (riscv64) startup failure. This is a newer Debian 13 / riscv64 progress report with an experimental working source-build path, including rusty_v8.
Current baseline:
npm i -g @openai/codexon linux/riscv64 still fails at startup with:
Error: Unsupported platform: linux (riscv64)
Test environment:
- Debian 13
- riscv64
- container test:
docker run -it --rm --platform=linux/riscv64 debian:13 - Node.js v24.13.1 from:
https://github.com/gounthar/unofficial-builds/releases/download/v24.13.1/nodejs-unofficial_24.13.1-1_riscv64.deb
Repro for the unsupported-platform path:
npm i -g @openai/codex
npx codex --version
Observed error:
file:///opt/nodejs-unofficial/lib/node_modules/@openai/codex/bin/codex.js:70
throw new Error(`Unsupported platform: ${platform} (${arch})`);
^
Error: Unsupported platform: linux (riscv64)
at file:///opt/nodejs-unofficial/lib/node_modules/@openai/codex/bin/codex.js:70:9
at ModuleJob.run (node:internal/modules/esm/module_job:430:25)
at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:661:26)
at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:101:5)
Node.js v24.13.1
Experimental progress:
- Using Codex CLI itself to guide the process, I first obtained a riscv64 Codex build without rusty_v8 from x86_64 while targeting riscv64.
- Then, from inside a riscv64 Debian environment, that build was able to help produce a new riscv64 build with rusty_v8 included.
- I have not tested this thoroughly yet, so I am describing it as experimental rather than production-ready.
Example from my experimental build:
target/release/codex --enable collaboration_modes --enable code_mode --enable code_mode_only
Starts ok and can be tested as
````
╭────────────────────────────────────────────╮
│ >_ OpenAI Codex (v0.117.0) │
│ │
│ model: gpt-5.4 high /model to change │
│ directory: /opt/codex_rv64/codex/codex-rs │
╰────────────────────────────────────────────╯
Tip: New 2x rate limits until April 2nd.
› Use the code-mode exec tool only.
Do not use shell, bash, js_repl, exec_command, or any other tool.
Do not explain.
Do not wrap the code.
Do not use markdown fences.
Send exactly this raw JavaScript to exec:
````
text(JSON.stringify({
hasConsole: Object.hasOwn(globalThis, "console"),
hasText: Object.hasOwn(globalThis, "text"),
hasStore: Object.hasOwn(globalThis, "store"),
hasLoad: Object.hasOwn(globalThis, "load"),
hasYieldControl: Object.hasOwn(globalThis, "yield_control"),
hasAllTools: Object.hasOwn(globalThis, "ALL_TOOLS"),
allToolsIsArray: Array.isArray(ALL_TOOLS),
}));
exit();
• {"hasConsole":false,"hasText":true,"hasStore":true,"hasLoad":true,"hasYieldControl":true,"hasAllTools":true,"allToolsIsArray":true}
• You ran uname -m
└ riscv64
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
› Write tests for @filename
gpt-5.4 high · 99% left · /opt/codex_rv64/codex/codex-rs
````
If there is maintainer interest, I can:
- share exact build notes and environment details
- test more thoroughly
- help turn this into a cleaner proposal
- prepare a PR if that direction matches the intended upstream solution