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

beanstalk-gateway

v1.0.6

Published

Gateway client connecting local Clawdbot to beans.talk relay server

Readme

Beanstalk Gateway

Connect your local Clawdbot to beans.talk for remote monitoring and control.

Installation

npm install -g beanstalk-gateway

Or via ClawdHub:

clawdhub install beanstalk-gateway

Quick Start

  1. Get credentials from beans.talk

    • Sign up at https://beans.talk
    • Click "Add Gateway"
    • Copy your setup command
  2. Configure and run

    beanstalk-gateway configure \
      --url wss://beanstalk.fly.dev/ws/gw_YOUR_ID \
      --token gt_YOUR_TOKEN
       
    beanstalk-gateway start
  3. Check beans.talk - your Clawdbot should now show as "Connected"

Usage

CLI

# Start the gateway (reads from config file)
beanstalk-gateway start

# Start with explicit options
beanstalk-gateway start --url wss://... --token gt_...

# Save configuration
beanstalk-gateway configure --url wss://... --token gt_...

# Check local Clawdbot status
beanstalk-gateway status

Environment Variables

export GATEWAY_URL="wss://beanstalk.fly.dev/ws/gw_xxx"
export GATEWAY_TOKEN="gt_xxx"
export CLAWDBOT_URL="http://localhost:18789"

beanstalk-gateway start

Config File

Create ~/.clawdbot/.beanstalk/gateway.json:

{
  "url": "wss://beanstalk.fly.dev/ws/gw_xxx",
  "token": "gt_xxx",
  "clawdbotUrl": "http://localhost:18789"
}

Library Usage

import { BeanstalkGateway } from 'beanstalk-gateway';

const gateway = new BeanstalkGateway({
  url: 'wss://beanstalk.fly.dev/ws/gw_xxx',
  token: 'gt_xxx',
});

gateway.on('authenticated', () => {
  console.log('Connected to beans.talk!');
});

gateway.on('command', (commandId, action, payload) => {
  console.log('Received command:', action);
});

gateway.connect();

How It Works

┌─────────────────┐      ┌─────────────────┐      ┌─────────────────┐
│   Your Machine  │      │  Beanstalk      │      │   beans.talk    │
│                 │      │  Relay (Fly.io) │      │   UI (Vercel)   │
│  ┌───────────┐  │      │                 │      │                 │
│  │ Clawdbot  │◀─┼──────┼─────────────────┼──────┼─ Commands       │
│  │  Daemon   │  │      │                 │      │                 │
│  └─────┬─────┘  │      │                 │      │                 │
│        │        │      │                 │      │                 │
│  ┌─────▼─────┐  │      │                 │      │                 │
│  │ Gateway   │──┼─────▶│  WebSocket Hub  │─────▶│  Status         │
│  │  Client   │  │      │                 │      │                 │
│  └───────────┘  │      │                 │      │                 │
└─────────────────┘      └─────────────────┘      └─────────────────┘

The gateway client:

  1. Connects outbound to the relay (no port forwarding needed)
  2. Reports your Clawdbot's status every 10 seconds
  3. Receives and executes commands from beans.talk
  4. Automatically reconnects if connection drops

Running as a Service

macOS (launchd)

# Create plist
cat > ~/Library/LaunchAgents/com.beanstalk.gateway.plist << EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.beanstalk.gateway</string>
    <key>ProgramArguments</key>
    <array>
        <string>$(which beanstalk-gateway)</string>
        <string>start</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>
EOF

launchctl load ~/Library/LaunchAgents/com.beanstalk.gateway.plist

Linux (systemd)

sudo cat > /etc/systemd/system/beanstalk-gateway.service << EOF
[Unit]
Description=Beanstalk Gateway Client
After=network.target

[Service]
Type=simple
ExecStart=$(which beanstalk-gateway) start
Restart=always

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable beanstalk-gateway
sudo systemctl start beanstalk-gateway

License

MIT