When Curiosity Meets Go: TinyEMU-Go and the Art of Porting an Emulator with AI
2 min read

When Curiosity Meets Go: TinyEMU-Go and the Art of Porting an Emulator with AI

349 words

A few days ago I came across an article that literally left me with my mouth open. It’s about TinyEMU-Go: a RISC-V emulator written entirely in Go, ported from C using Claude. And the best part: you can run a complete Linux with a single command.

The Command Line That Gave Me Envy

go run github.com/jtolio/tinyemu-go/temubox/example@2c8151233c2d

And boom, you have a complete Linux running. No special permissions, no containers, no weird dependencies. A pure static Go binary.

The Context: TinyEMU and Fabrice Bellard

TinyEMU is a RISC-V and x86 system emulator created by Fabrice Bellard - creator of FFmpeg, QEMU, and Google’s quantum computing project. TinyEMU is notable for being small and simple but complete - it even supports 128-bit RISC-V.

What JT Olio (the author of the Go port) did was ask Claude to port TinyEMU from C to Go. And Claude did. The entire CPU emulator, all VirtIO devices, including P9 filesystem support, and much of the SLIRP networking stack.

The AI Development Process

JT documents his experience working with Claude in multiple sessions, and he’s brutally honest:

The initial 80% was spectacular - Claude ported the CPU, wrote tests, got Linux to boot.

The final 20% was a nightmare - Linux was booting but not mounting initrd. The network stack was “incomplete.” The code looked like it was developed by “raccoons in a coat.”

Lessons Learned

JT shared reflections I find pure gold:

  • Clean the session and start with fresh context often
  • Explicitly repeat to create tickets for new problems
  • Occasionally take two steps back and rethink the approach
  • Any area with ambiguity will be exploited

And my favorite: “Don’t expect Claude to make cohesive APIs across sessions”.

JT ended up wrapping the Claude-generated code in a human-designed API because programming against a Claude-designed API felt “extremely uncanny-valley.”

Resources

A simple go run and you have Linux on your machine. Not bad for 2026.


This article arose from my curiosity about this project and JT Olio’s original article - a fascinating use case of AI in real development.

Comments

Latest Posts

4 min

782 words

Lately I’m seeing more and more AI models calling themselves “open source”. Llama, Mistral, Falcon… they all claim to be “open”. But are they really? How open are they actually?

I recently discovered the European Open Source AI Index (OSAI), a European initiative doing excellent work systematically evaluating how open generative AI models really are.

4 min

808 words

A few days ago I watched a video that has given me a lot to think about. Jeffrey Way, founder of Laracasts and one of the most influential people in the Laravel/PHP community, shared a brutally honest reflection on how artificial intelligence is transforming his business and his profession.

The video starts with a phrase that leaves you cold: “I’m done”. It’s not a goodbye to programming, but an acceptance of the reality to come.

5 min

952 words

Vercel has announced the general availability of Vercel Sandbox, an execution layer designed specifically for AI agents. But beyond the AI agent hype, there’s an interesting question: can it be useful for running code safely in different languages like PHP, Node, or Go?

What is Vercel Sandbox?

Vercel Sandbox provides on-demand Linux microVMs. Each sandbox is isolated, with its own filesystem, network, and process space. You get sudo access, package managers, and the ability to run the same commands you’d run on a Linux machine.

4 min

686 words

A few days ago I read news that left me thinking for a while. It’s not the first time I’ve heard about AI in space, but it is the first time I’ve read about Claude planning routes on Mars. And the best part: it worked.

NASA has been using Anthropic’s Claude to plan the Perseverance rover’s routes on Mars. Yes, you read that right: a generative language model generating navigation routes for a rover that’s 225 million kilometers away.

5 min

945 words

Creating long, well-founded articles has traditionally been a complex task requiring advanced research and writing skills. Recently, researchers from Stanford presented STORM (Synthesis of Topic Outlines through Retrieval and Multi-perspective Question Asking), a revolutionary system that automates the Wikipedia-style article writing process from scratch, and the results are truly impressive.

In this detailed analysis, we’ll explore how STORM is transforming the way we think about AI-assisted writing and why this approach could forever change the way we create informative content.

5 min

1020 words

I have been using Claude Code daily for months, and there is one configuration that has completely changed how it works with my code. It is not a new plugin, a more powerful model, or a magic prompt. It is something that has existed since 2016 and that most developers use without knowing it every time they open VS Code: the Language Server Protocol (LSP).

Karan Bansal published an excellent article explaining in detail how to enable LSP in Claude Code and why it matters. After trying it, I can confirm the difference is real and significant.