GOSCII: A Sci-Fi Terminal Game to Learn Go

It’s the AI era, when the models with their harness systems write the code now. So why grind through learning a language by hand if you don’t really need to type the code yourself yet? What’s emerging today is a higher-level skill — being an operator of machines, the punch-card operator of the future, not the “coding of the past” 🙃.

I thought it’d be nice to add some fun and motivation back into it — to fire up short coding sessions just for practice. That’s the idea behind GOSCII: keep leveling up as a coder, but with a terminal and an AI that’s on your side instead of replacing you — it only adds a sci-fi narrative on top.

The narrative: you’re a stranded astronaut on a crashed orbital station, and the only way home is through the code — every broken system is a Go exercise. You’re not alone: the onboard AI, also called GOSCII, hands you missions, checks your output, and slowly pieces its own corrupted memory back together as you progress.

And I also just wanted to build something myself on the Charm stack — Bubble Tea, Bubbles, and Lip Gloss — which I completely fell for. The terminal is living a second life now that AI agents have arrived — and they’ve given it a fresh new look, too.

GOSCII screencast

Why gamification, and why the terminal

I love rustlings. I wanted to push the same terminal-first idea further — with no external editor needed. You write Go right there in the “Cockpit,” and you can learn two ways:

The hard part: making AI missions actually solvable

“AI generates exercises” sounds easy until you try it. Models happily produce tasks that don’t compile, or claim an output that’s just wrong. So GOSCII never shows you a mission on faith. When the model generates one, its own reference answer is compiled and run through the exact same checker that grades your code. You only ever see missions that are provably solvable.

That’s why I call them deterministic AI missions, not just AI slop.

Running code without torching your laptop

GOSCII compiles and runs Go on your machine — your code, and AI-generated code too. So it guards what it can: dangerous imports (os/exec, syscall, unsafe, …) are blocked, and every program runs in a throwaway directory that’s wiped afterward. But in case of a coming AI uprising — or if you just don’t trust your AI provider’s output — a blocklist isn’t a real sandbox.

That’s why the project takes a Docker-first release approach — one command, execution fully isolated from your filesystem:

docker run -it --rm ghcr.io/ashbuk/goscii

# or the same with volume for progress to keep
docker run -it --rm -v ~/.local/share/goscii:/home/goscii/.local/share/goscii ghcr.io/ashbuk/goscii

If you have Go and trust the inputs, there’s a native Go binary too: go install github.com/AshBuk/goscii@latest.

Repo: github.com/AshBuk/goscii — open source under Apache-2.0.

If it makes you smile, or teaches you one Go thing you didn’t know, drop a ⭐ so others can find it.

Thanks for the attention, Asher.