Gcscope — a terminal UI for visualizing Go GC behavior

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.

gcscope-launch

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

  • run mode: start your Go binary under observation without changing its code

  • attach mode: connect to an HTTP endpoint based on runtime/metrics

  • snapshots and diff for 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.

5 Likes

It’s at version 0.0.5 and already looks great. Can’t imagine what v1.0.0 will be.

1 Like

This looks great so far!

1 Like

I was actually working on v1.0.0 when I saw your comment :grin:
It’s out now. I’ve just released it, with a few fixes and UI polish along the way.

Thanks, I appreciate it. v1.0.0 is out now :slightly_smiling_face: . I spent some time polishing the tool, improving reliability, and cleaning up a few UI details before the release.

1 Like