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

@silktree/core

v1.4.0

Published

Skill tree schema, resolution, radial layout, theme model and renderer contract for silktree journey maps.

Readme

@silktree/core

The pure core of silktree: game-style RPG skill-tree journey maps for software projects. No I/O, no rendering - it parses the artifact and derives everything else from it.

npm install @silktree/core

What it does

A silktree is one file, .silktree/silktree.json, holding the tree definition and the progress together. This package turns that file into everything a renderer needs:

  • parseSkillTree / safeParseSkillTree - the zod schema for the artifact.
  • resolveTree - statuses (locked / available / unlocked), edge states, XP totals, user level, and the validation issues a tree can carry.
  • layoutTree - places every node on the hex board: depth is the column, branches are horizontal lanes, and each tier occupies a different patch of mesh.
  • hex.ts - the one board geometry (a pointy-top mesh, flat-top node stages) that both the layout and the renderers measure against.
  • parseTheme / uiColors - the theme model: design tokens, palette, per-tier frames, label placement.
import { parseSkillTree, resolveTree, layoutTree, defaultTheme } from '@silktree/core'

const tree = parseSkillTree(JSON.parse(await readFile('.silktree/silktree.json', 'utf8')))
const resolved = resolveTree(tree)
const layout = layoutTree(resolved, defaultTheme)

console.log(resolved.totals.spent, 'points spent,', layout.nodes.length, 'nodes placed')

Related

  • silktree - the silktree binary: CLI, MCP server and REST API in one.
  • @silktree/actions - every operation as a portable silkweave action.
  • @silktree/frames - measuring raster frame art against the stage geometry.

MIT (c) Tobias Strebitzer