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

mstro-app

v0.1.54

Published

No-code AI workspace - run Claude Code workflows from your laptop, cloud VM, or any machine

Readme

mstro

Luxurious remote workspace for Claude Code. Run AI-powered coding sessions from any browser while Claude executes locally on any of your machines.

mstro is the CLI client for mstro.app. It runs on your machine (laptop, cloud VM, CI server) and connects to the mstro.app web interface via a secure relay. You write prompts in the browser, Claude Code runs in your terminal.

Get started at mstro.app — create an account, then install this CLI to connect your machine.

How It Works

Browser (mstro.app)  <--WebSocket-->  Platform Server (relay)  <--WebSocket-->  mstro (your machine)
                                                                           |
                                                                      Claude Code CLI
  1. mstro starts a local server and connects to the mstro.app platform server
  2. You open mstro.app in any browser and see your connected machine
  3. Prompts you send in the browser are relayed to your machine
  4. Claude Code runs locally with full access to your project files
  5. Output streams back to the browser in real-time

Run Claude Code on a powerful remote machine and interact with it from your phone, tablet, or any device with a browser.

Installation

npm install -g mstro-app

Requires Claude Code installed and authenticated (claude CLI available in your PATH).

Quick Start

mstro login              # Authenticate this device with your mstro.app account
mstro                    # Start mstro in your project directory

On first run, mstro will offer to set up the Security Bouncer - a tool permission manager that protects against dangerous operations. Say yes.

Then open mstro.app in your browser. Your machine appears as a connected "orchestra." Start prompting.

Security Bouncer

The Bouncer replaces the default human-in-the-loop approval model with an agent-in-the-loop approach. An AI reviewer is better suited to evaluate tool calls than a human — it has full context on what should and shouldn't run, responds in milliseconds instead of interrupting your flow, and frees you up to focus on higher-level work while Claude Code executes autonomously. The result is faster, safer workflows without the constant approval prompts.

The bouncer hook is installed globally at ~/.claude/hooks/bouncer.sh and applies to all Claude Code sessions, but the level of protection depends on how Claude Code is running:

Mstro sessions (headless) get the full 2-layer system:

  1. Pattern matching (<5ms): Known-safe operations are allowed instantly. Known-dangerous patterns (destructive commands, fork bombs) are blocked instantly.
  2. AI analysis (~200-500ms): Ambiguous operations are reviewed by a fast AI model to determine if they look like legitimate development work or prompt injection.

Claude Code terminal REPL (claude) gets 1-layer protection:

  1. Pattern matching only: Blocks critical threats (fork bombs, rm -rf /, disk overwrites). Allows everything else. The AI analysis layer requires a running mstro server.

Configure

The bouncer is set up automatically on first run. To reconfigure or install manually:

mstro configure-hooks

This installs a hook at ~/.claude/hooks/bouncer.sh and registers it in ~/.claude/settings.json.

Set BOUNCER_USE_AI=false to disable the AI analysis layer (pattern matching only).

CLI Reference

Commands

mstro                       # Start the client server
mstro login                 # Authenticate this device with mstro.app
mstro logout                # Sign out
mstro whoami                # Show current user and device info
mstro status                # Show connection and auth status
mstro setup-terminal        # Enable web terminal (compiles native module)
mstro configure-hooks       # Install/reconfigure Security Bouncer

Options

| Option | Description | |--------|-------------| | -p, --port <port> | Start on a specific port (default: 4101, auto-increments if busy) | | -w, --working-dir <dir> | Set working directory | | -v, --verbose | Verbose output | | --dev | Connect to local platform at localhost:4102 | | --version | Show version | | --help | Show help |

Multiple Instances

Run multiple mstro instances for different projects. Each auto-selects an available port:

$ mstro                           # Project A → port 4101
$ mstro                           # Project B → port 4102

Each instance appears as a separate orchestra in the web interface.

Environment Variables

| Variable | Description | |----------|-------------| | PORT | Override server port | | BOUNCER_USE_AI | Set to false to disable AI analysis layer | | PLATFORM_URL | Platform server URL (default: https://api.mstro.app) |

Config Files

mstro stores config in ~/.mstro/:

| File | Purpose | |------|---------| | ~/.mstro/credentials.json | Device auth token (created by mstro login) | | ~/.claude/hooks/bouncer.sh | Security Bouncer hook | | ~/.claude/logs/bouncer.log | Bouncer audit log |

Requirements

Optional: Web Terminal

The web terminal feature requires a native module (node-pty). mstro works without it - you just won't have the terminal tab in the browser.

On first run, mstro will automatically attempt to compile node-pty. If your system has build tools installed, it just works. If not, mstro will let you know what to install:

  • macOS: xcode-select --install
  • Linux (Debian/Ubuntu): sudo apt install build-essential python3
  • Linux (Fedora/RHEL): sudo dnf install gcc-c++ make python3
  • Windows: npm install -g windows-build-tools

After installing build tools, run:

mstro setup-terminal

Optional: Persistent Terminals

Install tmux for terminal sessions that survive restarts:

# macOS
brew install tmux

# Debian/Ubuntu
sudo apt install tmux

Links

Telemetry

Mstro collects anonymous error reports and usage data to improve the software. No personal data or code is collected.

mstro telemetry off    # Disable telemetry
mstro telemetry on     # Enable telemetry

See PRIVACY.md for details.

License

MIT