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

@nodesify/astria

v1.2.0

Published

Turn any folder into a queryable knowledge graph

Readme

@nodesify/astria

Turn any folder into a queryable knowledge graph.

Install

npm install -g @nodesify/astria

Requires Node.js >= 22. No Rust toolchain needed — ships prebuilt native binaries for macOS, Linux, and Windows.

Usage

astria run <path>                            # Full pipeline: detect → extract → build → cluster → analyze → report
astria update <path>                         # Reuse cached extraction; reconcile current corpus
astria watch <path> [--debounce 3000]        # Watch for file changes, auto-rebuild
astria explain <node> [--graph .]            # Explain a node and its connections
astria query <question> [--dfs] [--depth 2] [--budget 2000] [--graph .]  # BFS/DFS traversal
astria path <A> <B> [--graph .]              # Shortest path between two concepts
astria stats [--graph .]                     # Node/edge/community counts
astria export [--graph .] [--out graph.json] [--format json|html|graphml] [--mode standard|large] # Export graph; HTML defaults to standard
astria merge <pathA> <pathB> <outPath>       # Merge two graphs
astria diff <pathA> <pathB>                  # Compare two graphs
astria history [--limit 20] [--graph .]      # Show recent query history
astria install [--platform claude]           # Install skill files for AI coding assistants
astria hook install                          # Install git post-commit/post-checkout hooks

Running astria run . creates .astria/ with:

  • db.sqlite — the graph database
  • graph.json — full graph export
  • graph_report.md — report with hub nodes, communities, surprising connections

Retrieval and upgrades

Scoped code definitions survive semantic deduplication. JS/TS assigned functions retain binding names and bodies; Python implementations take precedence over overload declarations. Queries favor complete identifiers while honoring explicit requests for tests or documentation. Static receiver matching does not infer runtime types or aliases.

query --budget N caps the full query text using o200k_base, including metadata. CLI and MCP share that text budget; MCP transport JSON is excluded. Budgets must fit metadata and the next complete record or the query returns an error. Use the returned --cursor N for the next page of node and edge records.

After upgrading, run astria update . to refresh extraction and restore definitions removed by older deduplication. Discard old pagination cursors after an upgrade or graph rebuild.

HTML visualization modes

HTML export defaults to --mode standard, matching the original Graphify viewer's 5,000-node safety limit. Graphs above that limit require an explicit large-graph export:

astria export --graph . --format html --mode large --out graph-view.html

Large mode uses precomputed positions and disabled physics, starts with key nodes visible, and provides debounced search plus a “Show all nodes” toggle. The --mode option only affects HTML export; JSON and GraphML remain unchanged.

Supported languages

Python, JavaScript, TypeScript, Rust, Go, Java, C, C++, Ruby, Swift, Kotlin, Scala, PHP, C#, Lua, Haskell, Elixir, Bash, Dart, Zig, CSS, Terraform/HCL, PowerShell, Verilog/SystemVerilog, and Metal. See the generated language table for extensions and extraction details.

AI platform integration

astria install --platform claude   # or: codex, gemini, cursor, copilot, aider, opencode, kiro, trae, zcode

.astriaignore

Place a .astriaignore file in your project root (gitignore syntax) to exclude files from the graph.

License

MIT

Installation defaults to project scope: astria install --platform codex --scope project. Use --scope user explicitly for user-wide integrations. Run astria doctor after setup or upgrades. See the installation lifecycle guide for supported platforms, upgrade, backup/restore and complete removal.