See how a codebase thinks.
Paste a public GitHub repository and walk its real wiring: what depends on what, what breaks if you change it, and the path between any two pieces of code.
- No API key
- Deterministic analysis
- Public repos only
02 · Blast radius
What breaks if I change this?
Scroll, and watch a change to config.py travel outward through everything that calls it, imports it, or inherits from it, one hop at a time.
In the app, it's one click on any file or function. The rings are real dependency distance, not a guess.
03 · Find path
How does this file reach that function?
Pick any two things: files, functions, classes or routes, in any mix. gitplex finds the shortest chain of real imports, calls and definitions between them, and names every link. Copy the result as Markdown for a PR or your agent.
- 0sdk.gen.ts
- 1── IMPORTS ─▶client.gen.ts
- 2◀─ IMPORTS ──main.tsx
- 3── IMPORTS ─▶routeTree.gen.ts
- 4── IMPORTS ─▶reset-password.tsx
- 5── DEFINES ─▶ResetPassword()
- 6── CALLS ─▶useCustomToast()
# fastapi/full-stack-fastapi-template - repository map> Generated by gitplex from commit `cb740b656d7a` · scope: `backend/app/`> Source: https://github.com/fastapi/full-stack-fastapi-template25 files in scope · 64 functions · 22 classes · languages: python## How to read thisEvery relationship below was parsed from the syntax tree, not inferred - `Imports` and `Imported by` are resolved module references, so they can be trusted when deciding what a change will affect. Files are ordered by how central they are to the repository, not alphabetically.…## Files### `backend/app/models.py`133 lines · imported by 16 files · entry point**Defines**- `def get_datetime_utc` (L9–L10)- `class UserBase` (L14–L18)- `class UserCreate` (L22–L23)- `class UserRegister` (L26–L29)- `class UserUpdate` (L33–L38)- `class UserUpdateMe` (L41–L43)- `class UpdatePassword` (L46–L48)- `class User` (L52–L59)- `class UserPublic` (L63–L65)- `class UsersPublic` (L68–L70)- `class ItemBase` (L74–L76)- `class ItemCreate` (L80–L81)- `class ItemUpdate` (L85–L87)- `class Item` (L91–L100)- `class ItemPublic` (L104–L107)- `class ItemsPublic` (L110–L112)- `class Message` (L116–L117)- `class Token` (L121–L123)- `class TokenPayload` (L127–L128)- `class NewPassword` (L131–L133)**Imported by**- `backend/app/alembic/env.py`- `backend/app/api/deps.py`- `backend/app/api/routes/items.py`
04 · For your agent
Brief your agent in one file.
Export the whole repository, or one folder, as a single Markdown file: the file tree, what every file defines, and what depends on what. Your agent reads it once and starts with the architecture, instead of rediscovering it one file at a time.
Paste it into Claude, Cursor or Copilot, or commit it as CODEBASE.md so every session starts from the same map. Blast radius and path results copy out the same way.
- Scope it to one folder from the file tree
- Keep or drop functions, classes and imports
- Preview it, then copy or download
05 · The toolkit
And the rest of the kit.
Everything else the explorer does, one click from any node.
- Search⌘KReads inside the code, not just filenames. Ranked by relevance and the graph, with the scores shown.
- Four layoutsForce, Folders, Layers and Rings: the same graph, arranged to answer different questions.
- Entry pointsWhere a person would start reading, and the evidence for each pick.
- The lenshold ZSpreads a crowded cluster under your cursor without losing the whole picture.
- Guided tourA suggested reading order that flies the camera from stop to stop.
- Profile and triviaThe codebase's shape, test culture, hotspots and dependencies, then a quiz on what you learned.
- Deep linksCopy a link to any node and send someone straight to it.
- Yours to tuneDark or light, four accent colours, and a layout that works on a phone.
06 · Deterministic
Parsed, not guessed.
Every edge comes from a syntax tree: tree-sitter parses the code, extractors resolve what they can prove and drop what they can't. Each relationship carries its evidence and a confidence score.
Python, JavaScript, TypeScript, Go and Java get the whole picture: functions, classes, calls and inheritance. 27 more languages are mapped as files and the imports between them. No model in the loop, so the same commit always gives the same map.
- Python
- TypeScript
- JavaScript
- Go
- Java
- Rust
- Kotlin
- Swift
- C
- C++
- C#
- Ruby
- PHP
- Scala
- Dart
- Elixir
- Erlang
- Haskell
- OCaml
- Clojure
- Julia
- Lua
- Perl
- R
- Bash
- PowerShell
- Groovy
- Obj-C
- Fortran
- Solidity
- Zig
- Vim script
functions, classes and callsunmarked: files and imports
- languages with full symbol graphs
- 5
- languages with full symbol graphs
- more mapped as files and imports
- 27
- more mapped as files and imports
- language models involved
- 0
- language models involved
Your turn