Hello everyone,
I would like to share a project I have been working on called gcscope.
gcscope is a terminal UI and CLI tool for visualizing Go garbage collector behavior in real time. It reads data from gctrace, gcpacertrace, and runtime/metrics, then shows GC cycles, Stop-The-World pauses, heap live/goal dynamics, GC frequency, and selected pacer-related signals in one terminal interface.

The goal is not to replace pprof, go tool trace, Prometheus, or Grafana. I see it more as a quick first step when investigating a Go service that slows down under load: a way to quickly ask, “What was the garbage collector doing while this program was running?”
GitHub:
https://github.com/timur-developer/gcscope
Quick start:
go install github.com/timur-developer/gcscope/cmd/gcscope@latest
gcscope lab churn
The lab mode runs a built-in synthetic workload, so you can try the UI without preparing your own service first.
Main features:
-
real-time terminal charts for Go GC behavior
-
STW p50 / p99 / max over a recent observation window
-
heap live / heap goal visualization
-
GC frequency and per-cycle details
-
runmode: start your Go binary under observation without changing its code -
attachmode: connect to an HTTP endpoint based onruntime/metrics -
snapshots and
difffor comparing two runs before and after a change
Example usage with your own binary:
go build -o ./myapp ./cmd/myapp
gcscope run ./myapp
If the program needs arguments, they can be passed after --:
gcscope run ./myapp -- --config ./config.yaml --port 8080
I would be especially interested in hearing from Go developers who build, run, or debug Go services in practice.
If this looks useful, please give it a try. Feedback and issues on GitHub are very welcome — and a star would also mean a lot.