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

json-render-pi

v0.1.0

Published

A Pi TUI adapter for json-render Ink specs.

Readme

json-render for Pi

A Pi extension that renders a constrained json-render Ink spec with Pi's native @earendil-works/pi-tui component system.

Pi and Ink both control the terminal screen, so mounting @json-render/ink inside Pi would conflict with Pi's TUI. This adapter pins the upstream Ink catalog as its declarative contract, narrows it to reliable read-only components, and translates the result into Pi TUI lines.

Start locally

Load the complete package—extension and skill—from this repository:

pi -e .

Or install it persistently:

pi install .
pi

Inline UI generation

The model-invocable json-ui skill teaches Pi when and how to call render_json_ui: compact dashboards, status cards, progress, trends, comparisons, tables, and checklists when visual structure is more scannable than prose.

There is no /json-ui command and no dialog or overlay. Tool results render inline in Pi's conversation transcript.

Render examples

Each screenshot is generated by the standalone harness from the linked JSON spec and inspected at its target terminal width.

Deployment status · 80 columns

Source spec

Compact agent plan · 80 columns

Source spec

Detailed agent plan · 120 columns

Includes concrete file paths, an information-flow diagram, proposed database schemas, verification steps, and a stop condition.

Source spec

Reliability constraints

The tool exposes its exact component schema to the model and validates it again at runtime. It rejects unknown components and props, invalid child placement, missing or unreachable elements, cycles, excessive nesting, and oversized specs. Current limits include 30 elements, six nesting levels, two cards, and bounded table/list/chart data.

Only Box and Card may contain children. Supported leaves are Text, Heading, Divider, Badge, KeyValue, StatusLine, Metric, ProgressBar, Sparkline, BarChart, Table, List, and Callout. Interactive controls and action bindings are rejected rather than pretending to work in a static transcript.

Rendering is parent-width-aware. Long text wraps with ANSI styling preserved, table cells wrap within their columns, and row boxes retain multi-line child alignment. The tool uses Pi's self-rendering shell so the UI stays on the normal terminal background instead of inheriting the green toolSuccessBg surface.

Standalone visual development loop

Validate and render without invoking a model or starting Pi:

npm run ui:dev -- examples/deployment-status.json \
  --width 80 \
  --ascii .artifacts/deployment-status.txt \
  --png .artifacts/deployment-status.png \
  --report .artifacts/deployment-status.report.json \
  --strict

The harness uses the same validator and renderer as the extension, prints an ANSI terminal preview, runs design heuristics, and can write ASCII, SVG, PNG, and JSON reports. PNG screenshots open automatically in macOS Preview. Pass --no-open only for CI or automated tests.

Use watch mode for a short edit–inspect–iterate loop:

npm run ui:dev -- examples/agent-plan.json \
  --watch \
  --width 80 \
  --png .artifacts/agent-plan.png \
  --strict

Run npm run ui:dev -- --help for every option. Curated examples include a production deployment dashboard, a compact coding-task plan, and a detailed 120-column plan with file paths, information flow, and proposed database schemas.

Develop

npm test
npm run typecheck

The tests include regressions for malformed generated specs, schema exposure, complexity budgets, nested wrapping, row layout, snapshot generation, design auditing, the complete CLI workflow, and package skill discovery.

License

MIT © 2026 Sharan Yalburgi