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

@pocketenv/cli

v0.2.5

Published

Open, interoperable sandbox platform for agents and humans πŸ“¦ ✨

Readme

Pocketenv CLI

npm version discord License: MPL-2.0

Made with VHS

The official CLI for Pocketenv β€” create, manage, and connect to isolated sandboxes from your terminal. Powered by AT Protocol for open, portable, and vendor-agnostic sandbox definitions.

[!NOTE] Still in development

This project is in early development. Expect breaking changes and rapid iteration.


πŸ’‘ Use Cases

  • Run AI agents (Codex, Claude, Gemini, OpenClaw, Copilot ...) safely in isolated environments
  • Spin up ephemeral dev sandboxes for quick prototyping
  • Share reproducible developer environments via AT Protocol
  • Test untrusted or third-party code securely
  • Provide sandbox infrastructure as a service

🚚 Installation

# Build and install locally
npm run build && npm install -g .

Or install globally

npm install -g @pocketenv/cli
pnpm add -g @pocketenv/cli
bun add -g @pocketenv/cli

Verify the installation:

pocketenv --version

⚑ Quick Start

# 1. Log in with your AT Proto account (e.g. Bluesky)
pocketenv login <handle>.bsky.social

# 2. Create a sandbox
pocketenv create

# 3. Start it
pocketenv start <sandbox-name>

# 4. Open an interactive shell inside it
pocketenv console <sandbox-name>

πŸ” Authentication

Pocketenv uses AT Protocol for authentication. You need an AT Proto account (e.g. a Bluesky account) to use the CLI.

πŸ”‘ Login

pocketenv login <handle>

Authenticates with your AT Proto handle. A browser window will open for you to authorize the app. Your session token is saved locally at ~/.pocketenv/token.json.

Example:

pocketenv login alice.bsky.social

πŸ‘€ Whoami

pocketenv whoami

Displays the currently logged-in user.

πŸšͺ Logout

pocketenv logout

Removes your local session token.


πŸ› οΈ Commands

πŸ“¦ Sandbox Management

pocketenv create [name]

Create a new sandbox. Aliases: new

| Option | Description | |-----------------------------|---------------------------------------------| | --provider, -p <provider> | The provider to use (default: cloudflare) |

pocketenv create my-sandbox
pocketenv create my-sandbox --provider cloudflare

Supported providers: cloudflare, daytona, deno, vercel, sprites.


pocketenv ls

List all your sandboxes with their status and creation time.

pocketenv ls

Output example:

NAME                    BASE          STATUS    CREATED AT
true-punter-0nan        openclaw      RUNNING   33 minutes ago
ruinous-straw-wz8n      nix           STOPPED   2 days ago
narrative-shift-j80dx   zeroclaw      STOPPED   11 days ago
mad-ambulance-k9eu      nullclaw      STOPPED   11 days ago
revered-amateur-n6rz    opencrust     STOPPED   11 days ago
high-priced-vac-ek73    picoclaw      STOPPED   11 days ago

pocketenv start <sandbox>

Start a stopped sandbox.

pocketenv start my-sandbox

pocketenv stop <sandbox>

Stop a running sandbox.

pocketenv stop my-sandbox

pocketenv rm <sandbox>

Delete a sandbox permanently. Aliases: delete, remove

pocketenv rm my-sandbox

πŸ–₯️ Interactive Shell

pocketenv console [sandbox]

Open an interactive shell inside a running sandbox. Aliases: shell, ssh, s

# Connect to a specific sandbox
pocketenv console my-sandbox

# Omit the name to auto-connect to the first running sandbox
pocketenv console

🌍 Environment Variables

Manage environment variables scoped to a sandbox.

pocketenv env put <sandbox> <key> <value>

Set an environment variable.

pocketenv env put my-sandbox DATABASE_URL postgres://localhost/mydb

pocketenv env list <sandbox>

List all environment variables for a sandbox. Aliases: ls

pocketenv env list my-sandbox
pocketenv env ls my-sandbox

pocketenv env delete <variable_id>

Remove an environment variable. Aliases: rm, remove

pocketenv env delete var_d6qt6q8d60de420001jf

🀫 Secrets

Manage encrypted secrets scoped to a sandbox.

pocketenv secret put <sandbox> <key>

Store a secret in a sandbox (value is prompted securely).

pocketenv secret put my-sandbox API_KEY

pocketenv secret list <sandbox>

List all secret keys stored in a sandbox. Aliases: ls

pocketenv secret list my-sandbox

pocketenv secret delete <secret_id>

Delete a secret from a sandbox. Aliases: rm, remove

pocketenv secret delete secret_d6qt6q8d60de420000jg

πŸ—οΈ SSH Keys

Manage SSH keys associated with a sandbox.

pocketenv sshkeys put <sandbox>

Upload an SSH key pair to a sandbox.

| Option | Description | |-----------------|-----------------------------| | --private-key | Path to the SSH private key | | --public-key | Path to the SSH public key | | --generate | Generate a new key pair |

pocketenv sshkeys put my-sandbox

pocketenv sshkeys get <sandbox>

Retrieve the public SSH key from a sandbox.

pocketenv sshkeys get my-sandbox

πŸ”’ Tailscale

Manage Tailscale integration for your sandboxes.

pocketenv tailscale put <sandbox>

Store a Tailscale auth key in a sandbox.

pocketenv tailscale put my-sandbox

pocketenv tailscale get <sandbox>

Retrieve the stored Tailscale auth key (redacted) from a sandbox.

pocketenv tailscale get my-sandbox

βš™οΈ Configuration

The CLI can be configured via the following environment variables:

| Variable | Default | Description | |---------------------|----------------------------|-----------------------------------------------| | POCKETENV_TOKEN | (none) | Override the session token (useful for CI/CD) | | POCKETENV_API_URL | https://api.pocketenv.io | Override the API base URL | | POCKETENV_CF_URL | https://sbx.pocketenv.io | Override the Cloudflare sandbox URL | | POCKETENV_TTY_URL | https://api.pocketenv.io | Override the TTY URL |

Example β€” using a token in CI:

POCKETENV_TOKEN=<your-token> pocketenv ls

πŸ“š Documentation

Full documentation is available at docs.pocketenv.io.


🀝 Contributing

Contributions are welcome! Please read the Contributing Guidelines before submitting a pull request.


πŸ“„ License

Mozilla Public License 2.0