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

dsh-pipboy-theme

v1.0.0

Published

Fallout 4 Pip-Boy CRT theme with retro sound effects for DeepSeek Harness.

Readme

dsh-pipboy-theme

A Fallout 4 Pip-Boy CRT theme for the DeepSeek Harness: digital-green phosphor palette, pixelated monospace text, CRT scanlines/vignette, and synthesized retro sound effects (two-tone select, hover tick, typewriter key clacks).

A DeepSeek Harness bundle: a dual-face client UI plugin — a Node half that registers the plugin, and a browser half that applies the theme.

Install

dsh web (and npx @deepseek-ai/dsh web) is a hardcoded alias for --profile web — there's no separate "default profile" flag to pass. So the clean one-time install is to add the plugin straight into the profile literally named web (it auto-initializes from the shipped web-app template the first time something targets it):

# from npm (prebuilt) — recommended, no build step on install
npx @deepseek-ai/dsh plugin --profile web add dsh-pipboy-theme

# from GitHub (builds on install — see "GitHub note" below)
npx @deepseek-ai/dsh plugin --profile web add github:you/dsh-pipboy-theme

# from a tarball
pnpm pack
npx @deepseek-ai/dsh plugin --profile web add ./dsh-pipboy-theme-1.0.0.tgz

That's the one-time step. From then on, every plain boot picks it up automatically — no --profile, no --patch, no flags of any kind:

npx @deepseek-ai/dsh web

(Installing into any other profile name works too, but then you have to boot with dsh --profile <name> every time — targeting web is what makes the zero-flag dsh web launch pick it up for free.)

Structure

├── package.json        # declares dsh.bundle (patch) + dsh.client (browser)
├── cordis.patch.yml    # inserts the plugin row into the composition
├── tsdown.config.ts    # two build configs: lib/index.js (ESM/node) + lib/client.js (CJS/browser)
├── tsconfig.json
└── src/
    ├── index.ts        # Node half: export name + apply()
    └── client/
        └── index.ts    # Browser half: inline theme CSS + sound effects

The client bundle has two non-obvious requirements the harness enforces silently (no error, the plugin just never appears client-side if you miss either):

  • package.json#exports must include "./package.json": "./package.json". The host resolves dsh.client metadata via require.resolve('<pkg>/package.json'); an exports map that omits that subpath makes Node throw ERR_PACKAGE_PATH_NOT_EXPORTED, which the loader catches and silently treats as "not a client package".
  • lib/client.js must be a classic script that self-registers via window.__ModuleLoader__.load({ id, factory }) — not plain ESM. The client-loader script-injects the bundle outside any module graph, so a bare export statement throws SyntaxError: Unexpected token 'export' in the browser console. tsdown.config.ts reproduces this with format: 'cjs', platform: 'browser', and an outputOptions.banner/footer/intro that wraps the CJS output in the loader's factory contract (mirrors the first-party client packages' shared tsdown.client.ts preset, which isn't published for out-of-tree plugins to import directly).

Build

pnpm install
pnpm build        # tsdown -> lib/index.js + lib/client.js

Publish

pnpm build
pnpm publish

GitHub note

Installing from a git URL fetches source, not built artifacts, so nothing runs tsdown for you. The prepare script in package.json builds on install, and the user must allowlist it once, in the web profile's pnpm-workspace.yaml ($DSH_HOME/profiles/web/pnpm-workspace.yaml):

allowBuilds:
  dsh-pipboy-theme: true

For a zero-config install, publish to npm (prebuilt) or ship a pnpm pack tarball.

License

MIT