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
GetFriendsHandlerfriends_controller.go:34
SendFriendRequestHandlerfriends_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 2SERVICE 1HANDLERS 2DATA 1
FRONTEND ROUTES SERVICE HANDLERS DATA Groupscomponent /groupsroute /friendsroute controllerservice sortMsgshandler loadGrouphandler MongoDBdata
one line, any AI client
uvx mcp-repo-graph
mcp-repo-graph  ·  repo-graph.com