No annotations required. ComposeAtlas reads your existing NavHost builders and renders an interactive node-link diagram right inside your IDE tool window.
ComposeAtlas parses your NavHost, your navigate() calls, and your @Preview functions, then lays it out as a diagram you can click through. The code below is what produces the graph next to it — click either side to see the connection.
NavHost(navController, startDestination = "home") {
composable("home") { HomeScreen() }
composable("details") { DetailsScreen() }
composable("settings") { SettingsScreen() }
}
navController.navigate("details")
navController.navigate("settings")
navController.navigate("payment") // never registered
Illustrative sample — not this project's actual source.
Detected automatically as the NavHost start destination — no annotation needed.
ComposeAtlas walks your Kotlin PSI tree, finding every NavHost {} block including nested and modularized graphs.
Follows val/const val route constants, sealed/enum classes, and matches @Preview annotations to their destination composables.
Builds an interactive node-link diagram with color-coded nodes you can click straight through.
Select a node to highlight it and its edges. Double-click to jump directly to that destination's source in the editor.
Built for real Compose projects — handles the patterns that teams actually use in production.
Reads your existing NavHost directly — no new annotations, no config files, no duplication of your routing structure.
Resolves destinations at any nesting depth, including nav graphs split across per-feature functions in separate modules.
Follows val, const val, sealed class properties, enum entries, and looped dynamic routes like bottom-nav Tab.entries iterations.
Links @Preview and multipreview annotations to their screens automatically — including the stateless view behind a stateful screen, which is where the preview actually lives in most apps. Light-blue nodes confirm at a glance which destinations have one.
Each flow is drawn as its own tree — every screen directly under the one that navigates to it — so a step-by-step flow runs straight down instead of sprawling. Pick one NavHost at a time from the toolbar, and select a screen to fade everything unrelated to it.
Zoom and pan the diagram, drag nodes to rearrange, and export the whole graph as a PNG for docs and PRs.
Double-click any node to open the screen composable it's named after — or its matching @Preview — straight in the editor.
Select a node to visually highlight it together with all incoming edges — instantly see what leads to any given destination.
Available for Android Studio and IntelliJ IDEA.