Orpheus is a high-performance Go CLI framework with zero external dependencies (uses internal AGILira libs: flash-flags, go-errors).
~30× faster than popular alternatives, in our benchmarks; tests are fully reproducible.
Git-style nested subcommands, shell completion, optional observability (logging/tracing/metrics/audit).
Reproduce: cd benchmarks && go test -bench=. -benchmem · Demo:
https://asciinema.org/a/JiLb3gf6KzYU3VldOYjD4q1Zv
agilira•2h ago
I built this because I needed a Go CLI framework for our internal tools at AGILira that didn't force me to make compromises.
Existing solutions like Cobra or Urfave are amazing and powerful, but I often found myself wrestling with dependency bloat, unpredictable performance, and the sheer amount of boilerplate needed for complex commands. I wanted something that was fast, minimal, and completely deterministic—no external dependencies, a zero-allocation parsing design, and reproducible performance every time.
So, I built Orpheus.
It's a security-hardened framework that aims to be both powerful and simple. My core principles were:
Performance is non-negotiable. It’s built on a zero-allocation flag parser, making it incredibly fast.
Security is built-in, not bolted on. Every input is sanitized by default to prevent common vulnerabilities.
A great developer experience is essential. I focused on a fluent API that lets you build complex, Git-like command structures without getting in your way.
Here’s a quick look at what it feels like to use:
Go
app := orpheus.NewApp("fm", "1.0.0"). WithDescription("A simple file manager"). WithCommand("create", "Create a new file", createFileAction, orpheus.WithStringFlag("file", "f", "", "File to create", orpheus.Required), ) Everything you need—benchmarks, intensive fuzz tests, and all security checks—is included in the repo. The project is licensed under MPL-2.0.
https://github.com/agilira/orpheus
I’d be grateful for your feedback, especially from those who have built large CLI applications in Go or maintain internal developer tooling. What are your biggest pain points with existing frameworks?
Thanks for taking a look.