MCPcopy Index your code
hub / github.com/Snapchat/dagger-browser

github.com/Snapchat/dagger-browser @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
171 symbols 368 edges 50 files 6 documented · 4% updated 11mo ago★ 3321 open issues

Browse by type

Functions 116 Types & classes 55
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Dagger Browser

Dagger Browser is a progressive web app for easily navigating a project's Dagger graph. The graph data is populated from a Dagger SPI plugin, and the browser is built using CRA (create-react-app) with Typescript.

Trying a sample

The plugin/sample directory contains a fork of a simple example from the Dagger repo.

You can run ./run.sh to generate the dagger components manifest for this example and display in the Dagger Browser.

Using Dagger Browser in your app

To build a Dagger Browser site for your project, you'll need to generate json files for your project's Dagger components.

To get started:

  1. Look up the latest version of the processor plugin in Maven Central:

  2. Add a dependency on com.snap.daggerbrowser:daggerbrowser-processor to any Gradle modules in your project that process Dagger components:

allprojects {
  repositories {
    mavenCentral()
  }
}
dependencies {
  kapt "com.snap.daggerbrowser:daggerbrowser-processor:LATEST_VERSION"
}  
  1. Build your project. The plugin will generate json files for each Dagger component.

  2. Use scripts/mkmanifest.sh to aggregate the component json files into a ComponentsManifest.json.

  3. Open a Dagger Browser instance, and drag-and-drop your ComponentsManifest.json file to load it.

  4. Alternatively, build a Dagger Browser instance from source. Checkout out the dagger-browser project

$: git clone git@github.com:Snapchat/dagger-browser.git
  1. Build Dagger Browser using your generated json files:
cd dagger-browser
./run.sh ../my_project/

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 74
Function 42
Class 39
Interface 16

Languages

TypeScript78%
Java17%
Kotlin5%

Modules by API surface

browser/src/models/GraphManager.tsx19 symbols
browser/src/App.tsx10 symbols
browser/src/service/GraphSizeService.tsx9 symbols
browser/src/service/BindingsService.tsx9 symbols
plugin/lib/src/main/java/com/snap/dagger/DaggerGraph.kt8 symbols
browser/src/components/NodeSummary.tsx7 symbols
browser/src/service/WeightServiceManager.tsx6 symbols
browser/src/models/ClassSize.tsx6 symbols
plugin/lib/src/main/java/com/snap/dagger/BindingGraphJsonGenerator.java5 symbols
browser/src/util/DisplayNameHelper.tsx5 symbols
browser/src/service/ClassSizeService.tsx5 symbols
browser/src/components/WeightSelector.tsx5 symbols

For agents

$ claude mcp add dagger-browser \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page