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

shioricode

v0.5.3

Published

Run ShioriCode locally or publish it securely through ShioriCode Link.

Readme

ShioriCode CLI

Open the current directory in ShioriCode Desktop, falling back to the local web UI:

shioricode open
shioricode open /path/to/project

The command exits with a clear error instead of trying to launch a browser when no graphical session is available. Headless machines should be connected through ShioriCode Link from a desktop or mobile client.

Run ShioriCode on a workstation or headless server and use the desktop or iPhone app as the UI.

npm install -g shioricode
sudo shioricode service install
sudo shioricode doctor
sudo shioricode link connect --name "Build server"

service install defaults to a dedicated operating-system account and installs the native background mechanism for the host: systemd on Linux, launchd on macOS, or a startup task on Windows. ShioriCode listens on loopback and keeps a local recovery login.

Account selection and service paths are explicit CLI options. Reuse the invoking user when you want the service to inherit that user's provider homes and credentials:

shioricode service install --account current --no-recovery-login

# Or customize a dedicated account and service layout.
sudo shioricode service install \
  --account dedicated \
  --user shioricode \
  --home-dir /var/lib/shioricode \
  --state-dir /var/lib/shioricode \
  --workspace-dir /srv/shioricode/workspaces \
  --log-file /var/log/shioricode/server.log \
  --service-path /usr/local/bin:/usr/bin:/bin \
  --port 3773 \
  --recovery-username owner \
  --recovery-password-file /root/shioricode-recovery-password

--account current installs a per-user systemd service, macOS LaunchAgent, or Windows scheduled task without administrator access. --account dedicated installs the system-level service and still requires sudo/Administrator. --no-recovery-login keeps hosted access GitHub-only; omit it when you also want a direct/Tailscale recovery login. --recovery-password-file avoids exposing that password through shell history or the process list. Without either flag, installation generates a recovery password and prints it once. The selected account, paths, and port are persisted so subsequent service, doctor, remote, and link commands target the same installation.

The command also stages a private, read-only copy of Node and ShioriCode beneath the service data directory. The daemon therefore keeps working even when the npm installation came from NVM, a macOS user directory, or Windows AppData. After upgrading the global npm package, run service install again to atomically switch the background service to the new runtime.

Run service commands with sudo on Linux/macOS or from an Administrator terminal on Windows.

link connect prints a shiori.codes URL and short code. Open it on any computer, sign in with GitHub, and leave the command running until it prints the new https://…link.shiori.codes endpoint.

Useful commands:

sudo shioricode service status
sudo shioricode service logs
sudo shioricode service restart
sudo shioricode link status
sudo shioricode link list
sudo shioricode link disconnect
sudo shioricode doctor

Tailscale remote access

ShioriCode can use an existing Tailscale installation instead of ShioriCode Link. Install Tailscale and connect the machine to your tailnet first, then choose private tailnet access or a public Funnel URL:

sudo tailscale up

# Private: only devices signed into the same tailnet can connect.
sudo shioricode remote tailscale serve

# Or public: reachable from any browser, behind ShioriCode sign-in.
sudo shioricode remote tailscale funnel

sudo shioricode remote status
sudo shioricode remote off

On Linux, the enable command grants the dedicated shioricode service account Tailscale operator access so the daemon can restore the chosen exposure after a restart. Tailscale itself remains a separate install and ShioriCode never joins a tailnet on the user's behalf.

Service removal preserves the service account and all ShioriCode data. Provider CLIs such as Codex, Claude Code, and Kimi Code are detected and explained by shioricode doctor; they are never installed or authenticated automatically.