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

@suin/opx

v0.1.4

Published

Simpler 1Password CLI. Auto-finds .env, injects secrets.

Readme

opx

opx

Thin wrapper around op run that auto-finds the nearest .env file.

Why

Running op run --env-file=.env -- <command> across multiple projects is tedious. opx reduces this to:

opx npm run dev
# equivalent to: op run --env-file=/path/to/.env -- npm run dev

Install

Bun

bun add -g @suin/opx

mise

mise use -g github:suin/opx

curl (standalone binary)

curl -fsSL https://raw.githubusercontent.com/suin/install/main/install.sh | bash -s -- opx

Requirements

Getting Started

If you're new to 1Password CLI, this section walks you through the entire setup from scratch.

1. Install 1Password CLI

Follow the official installation guide for your platform.

Verify the installation:

op --version

2. Connect the CLI to the 1Password App

The CLI authenticates through the 1Password desktop app (biometric unlock). Enable this in the desktop app:

1Password > Settings > Developer > "Connect with 1Password CLI" (check the box)

3. Store Your Secrets in 1Password

Open the 1Password desktop app and create a vault and items for your project's secrets. For example:

| Vault | Item | Field | Value | | ------------- | ---------- | --------------- | ------------------------------------------ | | Development | Database | url | postgres://user:pass@localhost:5432/mydb | | Development | Stripe | secret-key | sk_test_abc123 | | Development | AWS | access-key-id | AKIA... |

Each secret can then be referenced using the op:// URI format:

op://vault-name/item-name/field-name

For example, the database URL above becomes op://Development/Database/url.

Tip: You don't have to type op:// references by hand. In the 1Password desktop app, right-click on any field and select "Copy Secret Reference" to copy the op:// URI to your clipboard.

Tip: You can verify a reference works by running op read "op://Development/Database/url".

4. Create a .env File in Your Project

Instead of writing plaintext secrets, use op:// references:

# .env
DATABASE_URL=op://Development/Database/url
STRIPE_SECRET_KEY=op://Development/Stripe/secret-key
AWS_ACCESS_KEY_ID=op://Development/AWS/access-key-id

# Non-secret values can stay as plain text
PORT=3000
LOG_LEVEL=debug

Place this .env file in your project root (or any ancestor directory — opx walks up the directory tree to find the nearest one).

Since the file contains no actual secrets, it is safe to commit to version control:

# .gitignore
# No need to ignore .env — it only has op:// references, not real secrets

5. Run Your Command with opx

opx npm run dev

That's it. opx finds the .env file, and 1Password resolves all op:// references into real values, injecting them as environment variables only for the duration of that command. When the process exits, the secrets are gone from the environment.

How It Works

opx npm run dev
 ↓
Finds nearest .env file
 ↓
Runs: op run --env-file=.env -- npm run dev
 ↓
1Password CLI:
  1. Reads .env, finds op:// references
  2. Authenticates via desktop app (biometric/Touch ID)
  3. Fetches secrets from vault
  4. Injects them as env vars into the subprocess
  5. Masks secrets in stdout/stderr output
 ↓
npm run dev runs with secrets available as env vars
 ↓
Process exits → secrets destroyed

Usage

opx <command> [args...]

Examples

opx npm run dev
opx node server.js
opx docker compose up

Options

  • --help, -h — Show usage
  • --version — Show version

Troubleshooting

| Problem | Cause | Solution | | --------------------------------------------- | -------------------------------------------- | ------------------------------------------------------------------------ | | op: command not found | 1Password CLI not installed | Install the CLI | | unexpected response from 1Password app | Desktop app is locked | Unlock the 1Password app | | connecting to desktop app: connection reset | CLI can't connect to app | Enable "Connect with 1Password CLI" in 1Password > Settings > Developer | | secret reference not found | Vault, item, or field name mismatch | Check names with op item get <item> --vault <vault> | | .env file not found | No .env in current or ancestor directories | Create a .env file in your project root |