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

@adamkadaban/crucible

v1.3.1

Published

Build, snapshot, and control isolated Windows analysis VMs from Linux MCP agents.

Readme

Crucible provisions a Windows analysis VM on QEMU/KVM, installs debugger tooling and a small mTLS guest agent, then exposes VM control through a CLI and MCP server.

Use it for local malware-analysis and Windows debugging workflows where you control the host. Do not treat it as a hard containment boundary against VM escapes or host-kernel bugs.

Quick Start

Requirements:

  • Linux host with KVM access.
  • QEMU, OVMF, swtpm, socat, and xorriso.
  • Local Windows installer ISO, virtio-win ISO, and virtio guest tools installer.

Debian / Ubuntu baseline:

sudo apt install qemu-system-x86 qemu-utils ovmf swtpm socat xorriso

Install the CLI:

npm install -g @adamkadaban/crucible
crucible doctor

Create a config, edit the media paths, and provision:

crucible config init
crucible provision
crucible guest health
crucible snapshot list

The first provision usually takes 12-18 minutes and creates a clean-base snapshot. Restore that snapshot before each new analysis session.

MCP Server

Run the MCP server over stdio:

crucible mcp --stdio

Use the setup helpers instead of hand-editing client config:

crucible setup opencode
crucible setup claude
crucible setup codex --print
crucible setup copilot --print

Example opencode config:

{
  "mcp": {
    "crucible": {
      "enabled": true,
      "type": "local",
      "command": ["crucible", "mcp", "--stdio"]
    }
  }
}

Common Commands

crucible --help
crucible version
crucible update --dry-run
crucible vm status
crucible vm credentials
printf %s "$VM_PASSWORD" | crucible vm paste --stdin
crucible vm view --dry-run
crucible snapshot restore clean-base
crucible network status

crucible vm credentials prints generated Windows account credentials from host-only secret files. Treat that output as sensitive. Use crucible vm paste --stdin to paste passwords into the focused VM window without putting the secret itself in shell history.

Source Checkout

Use a source checkout only when developing Crucible itself:

git clone https://github.com/Adamkadaban/crucible.git
cd crucible
scripts/check-host.sh
nvm install
corepack enable pnpm
pnpm install --frozen-lockfile
pnpm build

From source, use pnpm crucible ... instead of the global binary.

Safety

  • Keep the default network mode isolated unless guest egress is intentional.
  • Never mount host home directories, SSH agents, browser profiles, cloud credentials, or repository roots into the guest.
  • Keep malware samples and generated artifacts outside Git and outside synced personal folders.
  • Treat generated secrets, autounattend files, dumps, pcaps, and snapshots as local-only artifacts.
  • Stop and restore clean-base after each sample unless you are intentionally continuing the same investigation.

See SECURITY.md for reporting and containment guidance.

Documentation

Development

pnpm check
pnpm e2e
pnpm e2e:live  # opt-in; requires local Windows media and live VM config

cd guest-agent
go test ./...
go build ./...

License

MIT