Debug GoLike Magic
miru.Init(miru.Config{Dashboard: true})
2026-05-20 14:02:11 [INFO] Miru starting on :8080
2026-05-20 14:02:12 [DEBUG] Mem: Alloc=1.2MB Sys=8.4MB
2026-05-20 14:02:13 [WALK] map[string]int{"speed": 100}
Effortless Integration
Designed to be imported and active in seconds. Miru provides a set of primitives that make debugging Go code as natural as writing it.
Zero Configuration
Reasonable defaults for every environment.
High Performance
Minimal allocation overhead for logging and traces.
package main import ( "github.com/denzeysenpai/miru" ) func main() { // Start debugging immediately defer miru.Catch() miru.Out("Welcome to the ethereal console") val := map[string]int{"speed": 100} miru.Walk(val) }
Everything You Need
A complete debugging toolkit in a single import. No bloat, no dependencies, just pure functionality.
Catch
Panic recovery with full stack context. Never lose the reason why your service crashed.
Walk
Pretty-print complex structs, deep slices, and massive maps with indentation and color.
Trace
Simple execution time measurement. Find bottlenecks in your logic with a single line.
Mem
Real-time memory statistics. Monitor allocations and GC pauses in the console or dashboard.
Remote Dashboard
Step out of the terminal and into a live, interactive environment. Miru's built-in dashboard provides a crystalline view of your running application.

TestGroup Architecture
Organize complex test suites with semantic grouping. Miru's TestGroup feature helps you maintain sanity in large scale Go testing environments.
Hierarchical Logging
Logs are nested within test groups for easier tracing of failures in parallel runs.
Automated Teardowns
Seamless integration with Go's testing package for resource cleanup.
Ready to debug in high fidelity?
Join the hundreds of Go developers building faster, more reliable applications with Miru.