Skip to content
NLnpm-launcher
Zero dependencies

npm-launcher npx anything, anywhere.

Download, cache, verify, and run platform-specific binaries from GitHub Releases. One shared launcher for every CLI in your ecosystem.

End user

npx @mcptoolshop/sovereignty tutorial

Wrapper

process.env.MCPTOOLSHOP_LAUNCH_CONFIG = JSON.stringify({ toolName: "sovereignty", owner: "mcp-tool-shop-org", repo: "sovereignty", version: "1.4.0", }); require("@mcptoolshop/npm-launcher/bin/mcptoolshop-launch.js");

CI

pyinstaller --onefile --name sovereignty src/__main__.py sha256sum dist/* > checksums-1.4.0.txt

Features

Everything a binary launcher needs. Nothing it doesn't.

SHA256 verified

Every binary is checked against checksums from the same GitHub Release. Mismatches abort and clean up.

Atomic downloads

Writes to .tmp, verifies, then renames. Interrupted downloads never poison the cache.

Zero dependencies

Pure Node.js stdlib. No node-fetch, no got, nothing to audit. Ships at about 20 kB.

Cache-first

Downloads once per version, then runs from local cache. Second launch is instant.

Quiet mode

Set MCPTOOLSHOP_LAUNCHER_QUIET=1 for script-friendly silent operation. Errors always print.

Transparent to the tool

Every argument reaches the tool, --version and --help included, and the tool sees its own name as argv[0].

Concurrent-safe

File locking prevents race conditions when multiple npx invocations download the same binary.

Usage

1. Build binaries in CI

# PyInstaller matrix → GitHub Release assets
sovereignty-1.4.0-linux-x64
sovereignty-1.4.0-darwin-arm64
sovereignty-1.4.0-darwin-x64
sovereignty-1.4.0-win-x64.exe
checksums-1.4.0.txt

2. Write a tiny wrapper

#!/usr/bin/env node
process.env.MCPTOOLSHOP_LAUNCH_CONFIG = JSON.stringify({
  toolName: "sovereignty",
  owner: "mcp-tool-shop-org",
  repo: "sovereignty",
  version: "1.4.0",
});
require("@mcptoolshop/npm-launcher/bin/mcptoolshop-launch.js");

Supported Platforms

PlatformAsset suffixCache location
Linux x64<tool>-<ver>-linux-x64~/.cache/mcptoolshop/
macOS ARM64<tool>-<ver>-darwin-arm64~/.cache/mcptoolshop/
macOS x64<tool>-<ver>-darwin-x64~/.cache/mcptoolshop/
Windows x64<tool>-<ver>-win-x64.exe%LOCALAPPDATA%\mcptoolshop\