repo-graph · how you use it
1

# Hit an error?

paste the stack trace — don't go grep-hunting
1

# locate the trace

frames → the exact nodes, ranked
1

# then read it

the real source — no grep, no scrolling
2

# Changing something?

check the blast radius first
2

# impact, cross-stack

everything the change touches — frontend included
$ paste error → repo-graph locate
panic: nil pointer dereference …/Controllers.SendFriendRequestHandler friends_controller.go:112 …/Controllers.GetFriendsHandler friends_controller.go:40
GetFriendsHandler friends_controller.go:34
SendFriendRequestHandler friends_controller.go:95
$ repo-graph read GetFriendsHandler · friends_controller.go:34

    func GetFriendsHandler(c *gin.Context) {
        claims, ok := middleware.RequireClaims(c)
        if !ok { return }
        userRepo := Services.UserRepository()
        doc, err := userRepo.FindByPublicID(ctx, claims.ID)
        // ← the nil the trace pointed at

$ repo-graph impact GroupsComponent --upstream
ENTRY 2 SERVICE 1 HANDLERS 2 DATA 1
one line, any AI client
uvx mcp-repo-graph
mcp-repo-graph · repo-graph.com