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

@gorlitzer-labs/seldon

v0.1.19

Published

Install the Seldon stack — pick your tools from a checklist; each installs via its native method.

Readme

@gorlitzer-labs/seldon

 ███████╗███████╗██╗     ██████╗  ██████╗ ███╗   ██╗
 ██╔════╝██╔════╝██║     ██╔══██╗██╔═══██╗████╗  ██║
 ███████╗█████╗  ██║     ██║  ██║██║   ██║██╔██╗ ██║
 ╚════██║██╔══╝  ██║     ██║  ██║██║   ██║██║╚██╗██║
 ███████║███████╗███████╗██████╔╝╚██████╔╝██║ ╚████║
 ╚══════╝╚══════╝╚══════╝╚═════╝  ╚═════╝ ╚═╝  ╚═══╝

The installer for the Seldon stack — a software factory of AI agents. Pick the tools you want from a checklist; each installs via its native method (npm for the Node tools, a shell installer for bifrost, a venv for demerzel).

Install

pnpm add -g @gorlitzer-labs/seldon     # or: bun add -g …  ·  npm i -g …
seldon                 # open the checklist — ↑↓ move · space pick · a all · enter install

Or name the modules directly:

seldon install foundation comb   # install just these
seldon doctor                    # check external deps (tmux, sops, age, tailscale, python)
seldon list                      # everything available

Start the stack

One command brings up the always-on services and prints where to go:

seldon up            # starts the voice (demerzel) + the supervisor (factory watch),
                     # then prints: Voice → http://localhost:8770, how to put agents
                     # to work, rooms, phone access
seldon up --tailnet  # also expose the voice on your tailnet → reach it from your phone
seldon status        # what's running (pids)
seldon down          # stop everything

Voice brain (Qwen or Bonsai): the first seldon up after installing the voice asks once — q for Qwen 3.6-35B (in-process, sharpest, ~20 GB) or b for Bonsai 2-27B (a local llama-server, lighter ~7 GB, tool-capable) — and remembers the choice. Switch anytime with seldon up --brain=qwen|bonsai. When you pick Bonsai, seldon fetches its runtime + model (~7 GB, macOS/Apple-silicon) and runs the server as a managed daemon; seldon status shows the active brain, seldon down stops it.

Phone access: seldon up --tailnet serves the voice over HTTPS on your tailnet (via tailscale serve) and prints a https://<machine>.<tailnet>.ts.net URL — open it on your phone and the mic works (browsers require HTTPS for the microphone; plain http can't). The default seldon up stays loopback-only, and the Mac's own http://localhost:8770 already works (localhost is a secure context).

Needs HTTPS Certificates enabled for your tailnet — one toggle at login.tailscale.com/admin/dnsHTTPS Certificates; --tailnet tells you if it isn't. The serve config persists across reboots. Since Demerzel can act on the host, anyone on your tailnet can talk to it — use DEMERZEL_READONLY=1 when sharing.

seldon up only starts what's installed. demerzel serves the voice UI on http://localhost:8770. Its model set (~25 GB) is a one-time download — seldon install demerzel offers to fetch it right there ([y/N]), and seldon up offers again if it's still missing. Nothing that big is ever pulled silently. Logs live in ~/.seldon/run/.

Swap the in-process Qwen model: set DEMERZEL_LLM to any MLX-compatible HF repo before install/up — the fetch and the runtime both follow it (this only changes the Qwen brain; for Bonsai use --brain=bonsai above, which is a separate llama-server, not an MLX repo).

DEMERZEL_LLM=mlx-community/<some-mlx-repo> seldon up

Uninstall

seldon uninstall comb demerzel   # remove specific modules (asks to confirm)
seldon uninstall --all           # remove the whole stack (also drops ~/.seldon)
seldon uninstall <ids> --yes     # skip the confirm prompt

Node tools are removed from the global store; demerzel's isolated venv and bifrost's binary + config are deleted. Your system Python, tmux, tailscale, sops/age are never touched.

The stack

| module | what it is | ships via | |---|---|---| | foundation | the seam — a deterministic plan agents follow | npm | | apiary | the conversation — shared rooms where agents coordinate | npm | | comb | the vault — keys by name, never by value | npm | | factory | the floor — 24/7 supervisor + sandboxed agents | npm | | bifrost | the bridge — many machines, one workspace | shell | | demerzel | the voice — a fully-local voice assistant | python (macOS / Apple silicon) |

Ticking factory auto-includes apiary + foundation (it needs them on PATH).

Pick the combo for the job

It's a stack, not a bundle — install only what you use:

  • Solo, one agentseldon install foundation comb — a plan + secured keys. Add factory for the sandbox, demerzel for voice.
  • A team of agents → add apiary (shared rooms) + factory (the supervisor).
  • Across machines / from your phone → add bifrost.

Package managers

Node tools install with pnpm when it can global-install (much faster than npm), else npm. bun is supported but opt-in — seldon install --pm=bun (also --pm=pnpm|npm to force any of them).

demerzel (Python) always installs into its own isolated venv — never your system or active Python. It pins CPython 3.12 (its kokoro pin caps Python at <3.13) and uses uv to provision a standalone 3.12: if uv isn't present, seldon bootstraps it into ~/.seldon/bin with no shell/PATH changes. If uv can't be installed, it falls back to a matching python3.12 on PATH.

From a checkout

seldon --dev           # link Node modules from a monorepo checkout instead of npm

Part of the seldon monorepo.