AI News HubLIVE
In-site rewrite3 min read

Show HN: GoPOSIX – a Go-native POSIX userland, ~97% BusyBox-compatible

GoPOSIX is a Go-native, single-binary POSIX userland that achieves 96.6% test compatibility with BusyBox (591/612 tests). Developed in about 3 weeks using AI agentic development, it demonstrates the potential of Go for system utilities.

SourceHacker News AIAuthor: ramayac

Notifications You must be signed in to change notification settings

Fork 0

Star 3

BranchesTags

Open more actions menu

Folders and files

NameName

Last commit message

Last commit date

Latest commit

History

209 Commits

209 Commits

.github/workflows

.github/workflows

.wiki-instructions

.wiki-instructions

cmd/goposix

cmd/goposix

docker

docker

internal

internal

pkg

pkg

runtest-tempdir-links

runtest-tempdir-links

test

test

testdata

testdata

wiki

wiki

.gitignore

.gitignore

.goreleaser.yml

.goreleaser.yml

.wikirc

.wikirc

AGENTS.md

AGENTS.md

CLAUDE.md

CLAUDE.md

CONTRIBUTING.md

CONTRIBUTING.md

Makefile

Makefile

README.md

README.md

forwarder.go

forwarder.go

forwarder_test.go

forwarder_test.go

go.mod

go.mod

go.sum

go.sum

goposix.go

goposix.go

goposix_test.go

goposix_test.go

upgrade.go

upgrade.go

upgrade_test.go

upgrade_test.go

Repository files navigation

A Go-native, single-binary POSIX with 96.6% BusyBox test compatibility (591/612).

Why?

Well, I wanted to do an experiment on Harsness Engineering, and improve my "agentic development" skills, prompts, instructions and all that. I did LFS in my early 20's and I had this weird itch of "do your own thing" but left it alone for my own sanity. Still the POSIX concepts remained in the back of my head. Last year (2025) I started to learn Go-lang, and then LLMs got really good in December 2025. Good enough that I've been using it at work non stop since then.

During that time I got this notion that AI waste time formating output, so I started doing --json output in a lot of my work scripts and tools (to save some time for my robot friends). Eventually all of these random ideas boiled to the conclusion that I should make a complete implementation of POSIX utilities in Go, with a JSON output and a Go SDK, and then benchmark it against BusyBox. It's the "natural conclusion" ... right?

Also deepseek-v4-pro had an very agressive 75% discount until 2026/05/31 15:59 UTC, and I wanted to try pi.dev instead of Antigravity/ClaudeCode.

All things kind of aligned in the last month so here we are now.

I'm not the first to start something like this, there is cugo and go-posix, but sadly they seem to be abandoned, and no wonder! A project like this is a huge undertaking, its probably a year of solid work for 1 human, that being said, took about 3 weeks to do with AI, with the proper "harness" and "agentic development" approach, that's really something.

Anyway the project got into a point that I'm happy with the results, that's enough for me ☑️.

Honest and Obvious Recognitions

I want to be very clear about this:

The only reason this works is that there's a brutally thorough, existing corpus of tests to validate against. The AI iterated until it passed. Without BusyBox's tests, this project is just random hallucinated code. The test suite is the real hero.

So check and support BusyBox project and take a look at its amazing test suite, it's a masterpiece of thoroughness and coverage, and it made this project possible.

Also Mvdan Shell, it really saved my butt. Absolutely brilliant.

And goawk, which I used for the awk implementation, another big save!

Finally: let's not kid ourselves, this project is 90% wiring the AI to do the heavy lifting, 10% is steering it in the right direction, the fact that I was able to "solo dev" this with an LLM, reproducing close to 99% of BusyBox's behavior in a completely different language shows that POSIX utilities are, at their core, text transformers with very well-defined contracts (do one thing and do it well).

Quickstart!

See wiki/sdk.md for the full Go SDK guide and wiki/usage.md for CLI usage and Docker recipes.

CLI (secondary)

One-shot CLI invocation.

docker pull ghcr.io/ramayac/goposix:cli docker run --rm ghcr.io/ramayac/goposix:cli ls --json /

Build & Test

make all # vet + test + build make test # unit tests make testsuite # BusyBox integration tests (gates every commit) make ci # full pipeline (test + testsuite + coverage + docker)

Environment Variables

Variable Default Description

GOPOSIX_SHELL_TIMEOUT 30s Shell execution timeout (Go duration format, e.g. 60s, 5m)

I think there should be more... right?

Performance Highlights

Metric GoPOSIX BusyBox Ratio

Per-call latency (Go SDK, persistent) 60µs 680µs (fork+exec) 11× faster

grep on 100MB file 0.16s 0.86s 5.4× faster (RE2 vs POSIX ERE)

Binary size 10 MB 800 KB 12.5× larger

Cold start 7ms 97% BusyBox test compatibility.

Resources

Readme

Contributing

Contributing

Uh oh!

There was an error while loading. Please reload this page.

Activity

Stars

3 stars

Watchers

0 watching

Forks

0 forks

Report repository

Releases 8

v1.0.10

Latest

May 20, 2026

+ 7 releases

Contributors

Uh oh!

There was an error while loading. Please reload this page.

Languages

Go 77.6%

Shell 21.1%

Makefile 1.1%

Dockerfile 0.2%