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

@devorama/clip2devbox

v0.3.4

Published

Send a clipboard file or screenshot from Windows to a remote devbox over Tailscale + scp, then swap the clipboard for the remote path (prefixed with @) — ready to paste into Claude Code / ttyd.

Readme

@devorama/clip2devbox

npm version npm downloads license platform

Send a clipboard file or screenshot from Windows to a remote devbox over Tailscale + scp, then swap your clipboard for the remote path prefixed with @ — ready to paste straight into Claude Code / ttyd.

Flow: copy (Ctrl+C a file · Win+Shift+S a screenshot · "copy link") → press Ctrl+Alt+V → in Claude on the devbox run /clip (or paste the @/home/you/clips/... path with Ctrl+V and hit Enter).

It handles three clipboard sources, in priority order:

  1. Bitmap on the clipboard (screenshot, "copy image" from a browser, Paint/Photoshop) → uploaded as a .png
  2. File(s) copied in Explorer — any type (PDF, .csv, source code, .zip, …), uploaded as-is, multiple supported
  3. URL ("copy link/address") — downloaded and re-uploaded (filename inferred from Content-Disposition/URL)

Files larger than --max-file-mb (default 100 MB) are skipped with a warning.

Requirements

  • Windows (native clipboard + global hotkey)
  • Tailscale running, with the devbox reachable and Tailscale SSH enabled (passwordless auth)
  • ssh/scp on PATH (OpenSSH ships with Windows 10/11)
  • On the devbox: Linux with crontab (for cleanup) and Claude Code (for /clip)

Install

npm install -g @devorama/clip2devbox   # or: pnpm add -g @devorama/clip2devbox
clip2devbox install

install detects the devbox host via Tailscale (peer devbox), writes your ~/.ssh/config, validates the connection, provisions the remote side (~/clips, the /clip slash command, and a cron cleanup job), and registers the global hotkey.

Options

clip2devbox install \
  --host devbox.tailXXXX.ts.net \   # default: auto-detected via Tailscale
  --peer devbox \                   # Tailscale peer name to look for
  --alias devbox \                  # Host alias written to ~/.ssh/config
  --remote-user rafito \            # default: your local Windows username
  --remote-dir /home/rafito/clips \ # default: /home/<user>/clips
  --hotkey CTRL+ALT+V \             # global hotkey combination
  --retention-hours 24 \            # delete clips older than this
  --max-file-mb 100 \               # max size per file (0 = no limit)
  --progress-min-mb 5 \             # show a progress bar above this (0 = never)
  --no-auto-update                  # disable background auto-update

Commands

| Command | What it does | |---------|--------------| | clip2devbox install | Set everything up (idempotent) | | clip2devbox run | Run the action now (same as the hotkey) — handy for testing | | clip2devbox uninstall | Remove the hotkey and local script | | clip2devbox uninstall --remote | The above + remove /clip and the cron job on the devbox |

On the devbox, after any upload:

  • /clip → load the most recent file from ~/clips into context (image, PDF, text, …)
  • /clip 3 → load the 3 most recent files

Feedback

  • High beep + toast → uploaded
  • Low beep + toast → error (empty clipboard, invalid URL, file over the limit, devbox unreachable, …)
  • Large file (above --progress-min-mb, default 5 MB) → a progress bar during upload

Auto-update

After a successful upload the script checks once a day (in the background, without delaying anything) whether a newer version is on npm. If there is, it runs npm i -g (or pnpm add -g) followed by clip2devbox install on its own. Disable it with --no-auto-update at install time. Auto-update only kicks in after you've updated once to a version that ships it (≥ 0.3.0).

How it works

install renders a PowerShell script to %LOCALAPPDATA%\clip2devbox\clip2devbox.ps1 with the host, directory, size limits, and version baked in, then creates a .lnk shortcut in the Start Menu bound to the global hotkey. Authentication is inherited from Tailscale SSH, so scp never prompts for a password. Cleanup is a single crontab line on the devbox (tagged # clip2devbox-cleanup).

License

MIT © Rafael D'Arrigo