Announcing Gorai! A Modern Robotics Framework Jordan Herlein announced Gorai, an open-source robotics framework written in Go that treats robots as distributed systems with sensors as resources and actuators as tools, using NATS for messaging. The framework compiles to a single static binary, supports composite robots, and is designed to natively integrate with AI agents. A working reference robot, the PiCar-X, is available as an example. I’ve been teasing this for a while. Time to stop teasing. Meet Gorai — a modern, open-source robotics framework written in Go. If you read my Why Go for Robotics? https://blog.herlein.com/post/why-go-for-robotics/ post, or my rant on Agentic Python https://blog.herlein.com/post/agentic-python-considered-harmful/ , you already know where my head’s been at. I kept asking the same question: why not do foundational robotics work in Go? Well, I’ve been building. Gorai is the answer. What Is Gorai? Here’s the one-liner: a robot is a distributed system — so build it like one. Even a single robot is really a pile of microcontrollers, single-board computers, sensors, and motors all talking to each other. Most frameworks consider that to be one monolithic blob. Gorai doesn’t. It treats every sensor as a resource you read and every actuator as a tool you call — discoverable services on a message mesh, addressed by name, not by hardwired cables. If “resources and tools” sounds like how AI agents already think about the world — yes . That’s the whole point. Gorai speaks capability-model semantics natively over NATS https://nats.io/ , so the same interface a human uses to drive the robot is the interface an AI agent uses to drive it tomorrow. No rewrite. No firmware surgery. Same mesh. And because it’s Go, the whole thing compiles to one static binary with NATS embedded inside it. No containers. No K8s. No pip, no venv, no wheel lottery. You scp a single file to a Raspberry Pi or an Orange Pi and run it. That’s the deploy story. That’s it. - Sensors as resources, actuators as tools — an AI-agent-ready capability mesh - Single static binary, embedded NATS, zero external services - Composite robots — one logical robot can span a rover, a drone, a sensor mast, all joined at runtime - Action logs and replay as first-class primitives, because autonomy without replay is folklore - Safety enforced at the capability node, not trusted to the agent Now, before you start yelling: yes, you can extend beyond the one binary using NATS, of course . And yes, you can move real-time/latency critical components onto a microcontroller and join that to the mesh using gorai-gsp https://github.com/emergingrobotics/gorai-gsp to do the serialization. There’s even an example https://github.com/emergingrobotics/gsp-pico-fw firmware for the RP2040. But that’s a subject for another post To be clear about scope: I’m not trying to replace ROS 2. Different tool, different crowd. Gorai is for software-first folks who want to build robots the way we build modern distributed systems — and who want AI to be a first-class citizen, not a bolt-on. See It Drive: the PiCar-X Example Talk is cheap. So there’s a working reference robot you can build today: gorai-gopicar-example https://github.com/emergingrobotics/gorai-gopicar-example . The PiCar-X is a little four-wheeled robot car kit from SunFounder — steering servo, drive motor, an ultrasonic distance sensor, a line/cliff sensor, and a camera on a pan/tilt mount. It’s a genuinely great little “better an a plastic toy” robot, and the best part is you can just buy one: it’s about $90 on Amazon https://www.amazon.com/SunFounder-Raspberry-Rechargeable-Batteries-Engineers/dp/B0CGLPF29H — minus the Raspberry Pi, which you supply yourself. No custom PCBs, no soldering iron, no waiting on a fab. Order it, assemble it with a Pi, and you’ve got real hardware to run Gorai on. Take a SunFounder PiCar-X, cross-compile the binary, scp it over, and run: ./picarx run robot.json One command spins up the robot. I has an embedded NATS server, opens the hardware, and serves a web control UI at http://