go-callvis is a static analysis tool that visualizes the call graph of a Go program using interactive Graphviz rendering.
The tool addresses the challenge of understanding code structure and function relationships in Go programs, particularly in larger or unfamiliar codebases. It works by running pointer analysis on the target program to construct a call graph, then generates output in Graphviz dot format for rendering. The visualization groups functions by package and methods by receiver type, with color coding to distinguish focused packages, standard library calls, and other code. An interactive web viewer allows developers to click on packages to focus the view on specific areas of the program.
Developers should choose this tool when they need to understand the architecture and call patterns of Go programs. It suits projects of any size but becomes especially valuable in larger codebases where manual code tracing becomes impractical. The tool offers filtering options to ignore standard library calls and omit specific types of function calls, helping reduce visual noise. Output can be generated as an interactive web view or as static files in multiple formats including SVG, PNG, and JPG.
The project maintains active continuous integration and accepts contributions through its development workflow. The tool requires Go 1.19 or later and Graphviz for rendering, though Graphviz is optional if using the interactive viewer mode. A Slack channel exists for community discussion and support around the tool.