Chiprun · siliconless firmware simulation

Give your coding agent real hardware. Virtually.

An agent can write firmware. It can't run it on a chip, see what the chip did, or fix what it can't observe. Chiprun closes that loop over a single MCP endpoint — no board on a desk, no flashing, no waiting.

Free tier, no credit card. 11 boards across 3 chips, and the board is simulated too — not just the CPU.

agent session
# your agent, connected to https://urdb.io/mcp
chiprun_list_boards()
→ uno · atmega328p · avr-none
chiprun_create_firmware_upload()
→ upload_url, firmware_id (PUT your ELF)
chiprun_run_firmware({ board: "uno" })
→ Hello world!

The loop, closed at the hardware.

01

Connect the endpoint

Point your coding agent at https://urdb.io/mcp with an API key. Standard MCP — Claude Code, Cursor, and anything else that speaks the protocol.

02

Upload a compiled ELF

Cross-compile on your side and PUT the binary to a presigned upload slot. We run it as-is; nothing about your toolchain has to change.

03

Read the UART back

The run returns inline with whatever the chip printed. Bounded by virtual CPU time, so a runaway loop returns at the cap instead of hanging.

What we're building

Two products, one endpoint, one API key.

Firmware simulation, over MCP

Your agent uploads a compiled ELF, runs it on a virtual instance of a real microcontroller, and reads the UART output back. No board on a desk, no flashing, no waiting.

Runs are bounded by virtual CPU time, so firmware that loops forever returns at the cap with whatever it printed — it never hangs your agent.

Read the quickstart

Arduino Uno R3

uno · avr-none

16 MHz

Arduino Nano (ATmega328P)

nano · avr-none

16 MHz

Arduino Pro Mini 5V/16MHz

pro-mini-16 · avr-none

16 MHz

Arduino Pro Mini 3.3V/8MHz

pro-mini-8 · avr-none

8 MHz

Arduino Duemilanove (ATmega328)

duemilanove · avr-none

16 MHz

Arduino Mini

mini · avr-none

16 MHz

LilyPad Arduino

lilypad · avr-none

8 MHz

Arduino Mega 2560

mega2560 · avr-none

16 MHz

Arduino Mega ADK

mega-adk · avr-none

16 MHz

Arduino Diecimila (ATmega168)

diecimila · avr-none

16 MHz

Arduino Nano (ATmega168)

nano-168 · avr-none

16 MHz

More boards and architectures are landing continuously — each ships only with a passing smoke test on its own chip.

The bridge between AI agents and the hardware they run on.

Create a key, point your agent at the endpoint, and run your first firmware in about a minute.

Start free