by Snapchat

Snapchat / dagger-browser

Simple tool for browsing Dagger graphs generated via an SPI plugin

241 Stars 6 Forks Last release: Not found BSD 3-Clause "New" or "Revised" License 50 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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

Check out the demo site built from the open source Plaid app.

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

You can run

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

    to any Gradle modules in your project that process Dagger components:
    allprojects {
    repositories {
    dependencies {
    kapt "com.snap.daggerbrowser:daggerbrowser-processor:LATEST_VERSION"
  3. Build your project. The plugin will generate json files for each Dagger component.

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

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

  6. Alternatively, build a Dagger Browser instance from source. Checkout out the

    $: git clone [email protected]:Snapchat/dagger-browser.git
  7. Build Dagger Browser using your generated json files:

    cd dagger-browser
    ./run.sh ../my_project/

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.