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.