npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

repo-visualizer

v0.0.3

Published

A GitHub Action that creates an SVG diagram of your repo. Read more [in the writeup](https://octo.github.com/projects/repo-visualization).

Readme

Repo Visualizer

A GitHub Action that creates an SVG diagram of your repo. Read more in the writeup.

Please note that this is an experiment. If you have feature requests, please submit a PR or fork and use the code any way you need.

For a full demo, check out the githubocto/repo-visualizer-demo repository.

Inputs

output_file

A path (relative to the root of your repo) to where you would like the diagram to live.

For example: images/diagram.svg

Default: diagram.svg

excluded_paths

A list of paths to folders to exclude from the diagram, separated by commas.

For example: dist,node_modules

Default: node_modules,bower_components,dist,out,build,eject,.next,.netlify,.yarn,.vscode,package-lock.json,yarn.lock

excluded_globs

A semicolon-delimited array of file globs to exclude from the diagram, using micromatch syntax. Provided as an array.

For example:

excluded_globs: "frontend/*.spec.js;**/*.{png,jpg};**/!(*.module).ts"
# Guide:
# - 'frontend/*.spec.js' # exclude frontend tests
# - '**/*.{png,ico,md}'  # all png, ico, md files in any directory
# - '**/!(*.module).ts'  # all TS files except module files

root_path

The directory (and its children) that you want to visualize in the diagram, relative to the repository root.

For example: src/

Default: '' (current directory)

max_depth

The maximum number of nested folders to show files within. A higher number will take longer to render.

Default: 9

should_push

Whether to make a new commit with the diagram and push it to the original repository.

Should be a boolean value, i.e. true or false. See commit_message and branch for how to customise the commit.

Default: true

commit_message

The commit message to use when updating the diagram. Useful for skipping CI. For example: Updating diagram [skip ci]

Default: Repo visualizer: updated diagram

branch

The branch name to push the diagram to (branch will be created if it does not yet exist).

For example: diagram

artifact_name

The name of an artifact to create containing the diagram.

If unspecified, no artifact will be created.

Default: '' (no artifact)

Outputs

svg

The contents of the diagram as text. This can be used if you don't want to handle new files.

Example usage

You'll need to run the actions/checkout Action beforehand, to check out the code.

- name: Checkout code
  uses: actions/checkout@master
- name: Update diagram
  uses: githubocto/[email protected]
  with:
    output_file: "images/diagram.svg"
    excluded_paths: "dist,node_modules"

Accessing the diagram

By default, this action will create a new commit with the diagram on the specified branch.

If you want to avoid new commits, you can create an artifact to accompany the workflow run, by specifying an artifact_name. You can then download the diagram using the actions/download-artifact action from a later step in your workflow, or by using the GitHub API.

Example:

- name: Update diagram
  id: make_diagram
  uses: githubocto/[email protected]
  with:
    output_file: "output-diagram.svg"
    artifact_name: "my-diagram"
- name: Get artifact
  uses: actions/download-artifact@v2
  with:
    name: "my-diagram"
    path: "downloads"

In this example, the diagram will be available at downloads/my-diagram.svg Note that this will still also create a commit, unless you specify should_push: false!

Alternatively, the SVG description of the diagram is available in the svg output, which you can refer to in your workflow as e.g. ${{ steps.make_diagram.outputs.svg }}.