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.

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.

9 min

1747 words

If you’re using tools like Claude Code, GitHub Copilot Workspace, or similar, you’ve probably noticed there’s technical jargon that goes beyond simply “chatting with AI”. I’m talking about terms like rules, commands, skills, MCP, and hooks.

These concepts are the architecture that makes AI agents truly useful for software development. They’re not just fancy marketing words — each one serves a specific function in how the agent works.

Let’s break them down one by one in a clear way.

3 min

609 words

Recently, Addy Osmani published an article that gave me much to think about: “Self-Improving Coding Agents”. The idea is simple but powerful: agents that not only execute tasks, but improve their own performance over time.

This isn’t science fiction. It’s happening now, in 2026. And it has profound implications for the future of software development and, by extension, for all professions.

What is a Self-Improving Agent?

A self-improving agent is an AI system with the capacity to: