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

@wyattjoh/wayfinder

v0.1.0

Published

Local browser viewer for Wayfinder planning maps

Readme

Wayfinder

Wayfinder is a Bun CLI that turns local Markdown planning maps into a live browser constellation. It shows ticket state, blockers, dependents, progress, and the current frontier while files change underneath it.

Requirements

  • Bun 1.3 or newer

Run the CLI

Run without installing:

bunx @wyattjoh/wayfinder [path]

Or install the wayfinder binary globally:

bun add --global @wyattjoh/wayfinder
wayfinder [path]
Usage: wayfinder [path] [--port <port>] [--layout <layout>] [--no-open]

path may be a Markdown map, its directory, or a tree to search. It defaults to the current directory. Wayfinder opens the browser by default and binds only to 127.0.0.1.

Options:

  • --port <port> requires a specific available port.
  • --layout <layout> selects star (the default constellation) or elk (a top-to-bottom ELK layered dependency graph).
  • --no-open prints the URL without opening a browser.

Use the Layout selector in the browser's Settings modal to change layouts. It reloads the current map from the server, preserves the map and ticket-directory selection, and writes the chosen layout into the local URL. A ?layout= URL value overrides the CLI default.

  • --help prints usage.
  • --version prints the package version.

Unknown flags, invalid ports or layouts, and extra operands fail with usage text. If the default port 7788 is occupied, Wayfinder selects a free port. An occupied explicit port fails.

Find maps and child files

Wayfinder automatically discovers files named map.md to a depth of six while skipping dependencies, build output, and nested repositories.

The browser's Settings modal includes a file tree bounded by the invocation path. Use it to:

  • choose any Markdown file when automatic discovery finds no map;
  • choose one child-file directory manually;
  • resolve a map that has both tickets/ and issues/;
  • render a map without child files.

Selections are encoded in the local URL and do not write configuration files. Symlinks and traversal cannot escape the invocation root.

Install the Agent Skill

The repository includes a portable wayfinder-map skill for Claude Code, Codex, and Pi. Install it globally with the external Agent Skills installer:

bunx skills@latest add wyattjoh/wayfinder \
  --skill wayfinder-map \
  --agent claude-code codex pi \
  --global --yes

To inspect discovery before installing:

bunx skills@latest add wyattjoh/wayfinder --list

The skill remains repository-owned under skills/wayfinder-map/. It is intentionally excluded from the npm tarball because the skills installer fetches it from the repository.

Map format

A conventional effort looks like this:

plan/
├── map.md
└── issues/
    ├── 01-establish-constraints.md
    └── 02-implement-it.md

tickets/ is also supported. Ticket files use <digits>-<slug>.md names and may express title, type, status, assignee, blockers, and identity through frontmatter or body metadata. See skills/wayfinder-map/references/map-format.md for the complete tolerant format.

Development

bun install
bun run hooks:install
bun run format
bun run format:check
bun run lint
bun run check
bun test
bun run precommit
bun pm pack --dry-run

Lefthook runs read-only formatting and lint checks against staged files. Type checking and tests remain in CI.

Releases

Run the local release gate before publishing:

bun run build
npm login
npm publish

npm publish runs the same local release gate through prepublishOnly. A local publish is public because publishConfig.access is set to public; never commit npm credentials. Local publishes do not include provenance attestations.

Release Please uses Conventional Commits to maintain versions, CHANGELOG.md, tags, and GitHub releases. Its release workflow runs the same checks and publishes @wyattjoh/wayfinder with OIDC provenance. Before enabling that publication path, configure npm trusted publishing for the wyattjoh/wayfinder GitHub repository and the .github/workflows/release-please.yml workflow.

License

MIT