Chiprun · siliconless firmware simulation
Run firmware on virtual chips, from your agent
Chiprun is a hosted MCP service. Your agent connects to it, uploads a compiled ELF, runs it on a virtual instance of a real microcontroller, and reads back the captured UART output. You don't drive the toolchain — your agent does.
How it works
Cross-compilation happens on your side; Chiprun runs the ELF as-is. A run gives you CPU execution of your binary, UART capture, and peripheral registers and interrupt timing that match the physical chip.
Runs are bounded by virtual CPU time, not wall-clock time. Firmware that loops forever — which is most real firmware — returns at the cap with whatever it printed. It never hangs your agent.
The tools
Your MCP client discovers these automatically on connect. Call chiprun_help first in any session — it is authoritative and may be ahead of this page.
chiprun_help
Call first, no arguments. Workflow, board list, per-chip gotchas, limits, and your remaining quota.
chiprun_list_boards
Available boards with the Rust target triple to compile for and each board's virtual-time guarantee.
chiprun_create_firmware_upload
Returns a presigned upload_url and a firmware_id. PUT your ELF bytes to the URL.
chiprun_run_firmware
Runs an uploaded firmware on a board and returns the captured UART output. Blocks until the run finishes.
Two engines
Chiprun runs boards on whichever open simulation platform models that chip best — currently Renode and QEMU. Which engine serves a board is visible on the board reference, because it changes one guarantee you may care about: how exactly the virtual-time cap is enforced. Today 5 boards are live.
Already have an API key?
Point your agent at https://urdb.io/mcp and say “call chiprun_help and run a hello world”.
Runnable examples and the agent guide live on GitHub: GetMystAdmin/chiprun.