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

@pro-vi/iching

v0.2.0

Published

A contemplative I Ching TUI for the terminal.

Readme

iching

English · 简体中文

A contemplative I Ching TUI for the terminal.

Set an intention. Cast a hexagram. Sit with what shows up.

What it does

  • Cast with an optional intention. The casting ritual unfolds as an animation — three coins, six lines, then the hexagram rendered as a large braille glyph.
  • Browse all 64 hexagrams with classical Chinese commentary (大象傳, 彖傳), English image and judgment, and Wilhelm-inspired notes.
  • Journal every cast (with timestamp and intention) in append-only JSONL — your own divination history.
  • Hook into LLMs the assistant can read your cast for further interpretation.

Raw ANSI, five hand-tuned themes (ink, bone, cinnabar, jade, river), four glyph-reveal animations, three Chinese fonts. No web technologies, no frameworks.

Install

Requires Bun >= 1.0.

bunx @pro-vi/iching                    # launch the TUI
bunx @pro-vi/iching cast "ship it?"    # one-shot cast

Or clone and build:

git clone https://github.com/pro-vi/iching.git
cd iching
bun install
bun run build                # builds dist/iching for your platform

Usage

iching                          # interactive TUI
iching cast                     # one-shot cast (plain text)
iching cast "should I ship?"    # with a question
iching cast --json              # structured output
iching journal list             # recent readings
iching journal show today       # today's reading
iching hexagram 1               # look up hexagram by number
iching dict                     # browse all 64 in TUI
iching config theme cinnabar    # set theme

Press c to cast, j for journal, d for dictionary, s for settings, q to quit.

Storage

Files follow the XDG Base Directory spec:

| File | Path | Purpose | |------|------|---------| | Cache | ~/.cache/iching/daily-cache.json | Most recent cast | | Journal | ~/.local/state/iching/history.jsonl | All casts | | Config | ~/.config/iching/config.json | Theme, motion, glyph settings |

Override with ICHING_HOME env var or --data-dir flag.

Architecture

Bun workspace monorepo. Four packages:

| Package | Responsibility | |---------|----------------| | @iching/core | Pure domain — casting, derivation, hexagram data | | @iching/storage | File persistence (JSON, JSONL, XDG paths) | | @iching/terminal | TUI rendering — scenes, animation, themes (raw ANSI) | | @iching/cli | Commander-based entry point, hook adapter |

Development

bun test          # run tests (382 tests, ~100ms)
bun run typecheck # tsc --noEmit
bun run smoke     # end-to-end smoke test

Vision notes and the current scope spec are mapped in docs/README.md.

Why

The cast is true. If true, the hexagram is already everywhere in the day — the project, the conversation, the code, the decisions. It isn't a message to decode. It's a lens already present.

Observe. Don't interpret.

License

MIT