Skip to content

GetMystAdmin/chiprun

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chiprun

Siliconless firmware simulation for AI coding agents.

Your agent can already write firmware. What it can't do is watch that firmware run on the chip and react to what happened — it has no board on the desk, no debugger, no serial console. Chiprun hands it all three, virtually: a real microcontroller reached over MCP. The agent builds an ELF, gives it to Chiprun, and gets back exactly what the chip printed over UART. The write–run–observe loop agents already have for software, now for firmware.

Part of URDB. Endpoint: https://urdb.io/mcp.

This repo is the front door: a machine-readable AGENTS.md an agent reads to drive the whole loop, a ready-to-use .mcp.json, and a runnable examples/ folder — one hello-world per board.

What makes it different

  • Two engines, two architectures, one endpoint. Chiprun runs each board on whichever open simulator models it best — Renode for the STM32 and Nordic parts, QEMU for ARM reference boards and RISC-V. You get ARM and RV32 from the same connection without picking or configuring an engine yourself.
  • Timing you can trust, because we tell you how far to trust it. Every run is bounded by virtual CPU time. Renode-backed boards report exact — the cap is enforced in emulated time and reproduces across machines. QEMU-backed boards report approximate — deterministic instruction counting, but the cutoff is a wall-clock kill, so it can shift under host load. If you're testing timing-sensitive code you know which guarantee you have, instead of finding out the hard way.
  • Nothing to run locally. No emulator install, no board bring-up, no flashing. The simulation lives on the server; you cross-compile and connect.

Quickstart

  1. Create a free account at urdb.io and mint an API key (looks like urdb_live_…).

  2. Point your agent at Chiprun. Claude Code:

    claude mcp add --transport http chiprun https://urdb.io/mcp \
      --header "Authorization: Bearer urdb_live_YOUR_KEY"

    Opening this repo in Claude Code also works — the checked-in .mcp.json wires it up once you set CHIPRUN_API_KEY in your environment.

  3. Clone the repo and tell your agent:

    Set up Chiprun and run the lm3s6965evb example.

    It reads AGENTS.md, builds the ELF, uploads it, runs it, and reports Hello world! from the virtual board's UART.

Tools

Your MCP client discovers these on connect. Call chiprun_help first each session — it carries live board info and per-chip gotchas that this repo can lag behind.

Tool What it does
chiprun_help Overview, board list, per-chip gotchas, limits, and your quota. Call first.
chiprun_list_boards Boards with Rust target triples and each board's timing guarantee.
chiprun_create_firmware_upload Hands back a presigned upload_url + firmware_id.
chiprun_run_firmware Runs an uploaded ELF on a board; returns the captured UART.

Boards

Full matrix in supported-boards.md — STM32, Nordic nRF, ARM MPS2, Stellaris, and SiFive (RISC-V) today, with chiprun_list_boards as the always-current source.

Building the examples

Bare-metal C, no vendor HAL, one cross-compiler:

cd examples/lm3s6965evb
make            # -> hello-lm3s6965evb.elf  (needs gcc-arm-none-eabi)

RISC-V boards use gcc-riscv64-unknown-elf. CI builds every example on each push.

Missing a chip?

Coverage follows demand. Open an issue with your target MCU and what you're building.

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors