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

@vex-chat/cli

v0.3.0

Published

Terminal client for vex-chat.

Readme

@vex-chat/cli

Terminal chat client for Vex backed by @vex-chat/libvex.

pnpm vex

On first run, vex prompts for a username and registers a local device key. After that it opens straight into a live chat session.

By default the CLI connects to production at api.vex.wtf. For local Spire development, pass --local to use 127.0.0.1:16777 over http/ws. Custom targets can use --api-url <url> to set both the host and protocol, or --host <host:port> --http to set them separately.

When creating a new account, the CLI opens a browser passkey page to attach the account's first passkey before connecting. When adding this machine to an account that already exists, the same page can restore the pending device with a saved passkey. Use --passkey-url <url> or VEX_CHAT_PASSKEY_URL when the WebAuthn page is hosted somewhere other than the API origin; use --no-browser or VEX_CHAT_NO_BROWSER=1 to print the URL without launching a browser.

Inside the app:

  • /accounts lists local users on this machine
  • /nav opens a channel or DM
  • /join [server] chooses a server, then asks which channel to open
  • /servers browses your available servers, then opens a channel
  • /channels chooses a channel
  • /window lists open chats
  • /window <number> switches to an open chat
  • /user <username-or-user-id> opens a DM conversation
  • /inbox shows DMs, unread counts, and recent senders
  • /dm also opens the inbox
  • /dm <username-or-user-id> opens a DM conversation
  • /dm <username-or-user-id> <message> sends a DM and opens that conversation
  • /to <username-or-user-id> opens a DM conversation
  • /create asks for a server name and selects its #general
  • /invite asks for duration and creates a pasteable vex://invite/... link
  • /invite <username-or-user-id> sends an invite link by DM
  • Incoming vex://invite/... links show a server preview and ask whether to join
  • redeem <code-or-link> previews a server invite, asks you to confirm, then opens its first channel
  • Plain text sends to the selected DM/channel
  • /create server <name> creates a server and selects its #general
  • /invite [duration] creates a pasteable vex://invite/... link for the current server
  • /members lists people in the current channel
  • /whoami
  • /quit

Scriptable helpers still exist:

pnpm vex auth register alice
pnpm vex auth register bob
pnpm vex alice
pnpm vex bob
pnpm vex auth accounts
pnpm vex dm send bob "hello"
pnpm vex server create team
pnpm vex invite redeem <invite-id>

Incoming messages play a small sound by default. Use --sound off to disable it, --sound Glass for a macOS system sound name, or --sound /path/to/file.wav for a custom audio file. VEX_CHAT_SOUND works too.

For delivery debugging, run chat with --debug:

pnpm --silent vex --debug alice

Debug mode writes CLI send/receive/routing decisions to a log file under the CLI data directory. Use --debug-file ./alice-debug.log to choose a path. Use --debug-level trace only when you also need noisy libvex mail diagnostics.