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

@saikrishnaambeti/docker-sanbox

v1.0.0

Published

A Docker-based sandbox for running isolated code execution environments

Readme

docker-sandbox

A Docker-based sandbox for running isolated code execution environments. Start a server with one npx command and use the SDK to create and manage sandboxes.

Features

  • 🐳 Create isolated Docker containers for code execution
  • 🔄 Clone Git repositories into sandboxes
  • 🔌 Expose and map container ports
  • 📡 Stream command output in real-time
  • 🎯 Simple SDK for programmatic control

Quick Start

Start the Server

# Using npx (no installation required)
npx @saikrishnaambeti/docker-sandbox
# Or with a custom port
npx @saikrishnaambeti/docker-sandbox --port 8080

Install the SDK

bun add @saikrishnaambeti/docker-sandbox```

### Use the SDK

```typescript
import { Sandbox, createLogStream } from "@saikrishnaambeti/docker-sandbox";

async function main() {
  // Create a sandbox
  const sandbox = await Sandbox.create({
    runtime: "node22",
    ports: [3000],
    source: {
      url: "https://github.com/your/repo.git",
      type: "git",
    },
  });

  // Run commands
  await sandbox.runCommand({
    cmd: "npm",
    args: ["install"],
    stdout: createLogStream(process.stdout),
    stderr: createLogStream(process.stderr),
  });

  // Start a dev server (detached)
  await sandbox.runCommand({
    cmd: "npm",
    args: ["run", "dev"],
    detached: true,
  });

  // Get the URL for the exposed port
  const url = sandbox.domain(3000);
  console.log(`Server running at: ${url}`);

  // Clean up when done
  await sandbox.destroy();
}

main();

CLI Options

Usage:
  @saikrishnaambeti/docker-sandbox [options]

Options:
  -p, --port <port>   Port to run the server on (default: 4000)
  -h, --help          Show help message
  -v, --version       Show version

SDK API

Sandbox.create(options)

Create a new sandbox container.

Options:

  • serverUrl?: string - Server URL (default: http://localhost:4000)
  • source?: { url: string, type: "git" } - Git repository to clone
  • timeout?: number - Timeout in milliseconds
  • ports?: number[] - Ports to expose from the container
  • runtime?: string - Runtime environment (e.g., "node22")

Returns: Promise<Sandbox>

sandbox.runCommand(options)

Run a command in the sandbox.

Options:

  • cmd: string - Command to run
  • args: string[] - Arguments for the command
  • env?: Record<string, string> - Environment variables
  • stdout?: WritableStream<Uint8Array> - Stream for stdout
  • stderr?: WritableStream<Uint8Array> - Stream for stderr
  • detached?: boolean - Run in background

Returns: Promise<{ exitCode: number }>

sandbox.domain(port)

Get the URL for an exposed port.

Returns: string (e.g., http://localhost:32789)

sandbox.getInfo()

Get container information.

Returns: Promise<unknown>

sandbox.destroy()

Stop and remove the sandbox container.

Returns: Promise<void>

createLogStream(stream)

Helper to create a WritableStream from Node.js stdout/stderr.

import { createLogStream } from "@saikrishnaambeti/docker-sandbox";

await sandbox.runCommand({
  cmd: "echo",
  args: ["hello"],
  stdout: createLogStream(process.stdout),
});

Development

# Install dependencies
bun install

# Run the server in development mode
bun run dev

# Build the package
bun run build

# Run the example
bun run example

Requirements

  • Docker must be installed and running
  • Node.js 18+ or Bun

License

MIT