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

@computesdk/avm

v0.1.19

Published

AVM provider for ComputeSDK - isolated code execution environments

Readme

@computesdk/avm

AVM provider for ComputeSDK that enables creating and managing containerized sandboxes on AVM's infrastructure.

Installation

npm install @computesdk/avm

Configuration

The AVM provider requires the following environment variable:

AVM_API_KEY=your_avm_api_key

You can get your API key from AVM Sandbox Platform.

Usage

Gateway Mode (Recommended)

Use the gateway for zero-config auto-detection:

import { compute } from 'computesdk';

// Auto-detects AVM from AVM_API_KEY environment variable
const sandbox = await compute.sandbox.create();
console.log(`Created sandbox: ${sandbox.id}`);

// List all sandboxes
const sandboxes = await compute.sandbox.list();
console.log(`Found ${sandboxes.length} sandboxes`);

// Destroy the sandbox
await sandbox.destroy();

Direct Mode

For direct SDK usage without the gateway:

import { avm } from '@computesdk/avm';

const compute = avm({
  apiKey: 'your_api_key'
});

// Create a sandbox
const sandbox = await compute.sandbox.create({
  name: 'my-sandbox',
  image: 'node:alpine',
  resources: {
    cpus: 0.25,
    memory: 512
  }
});
console.log(`Created sandbox: ${sandbox.id}`);

// List all sandboxes
const sandboxes = await compute.sandbox.list();
console.log(`Found ${sandboxes.length} sandboxes`);

// Destroy the sandbox
await sandbox.destroy();

API Reference

Sandbox Operations

create(options?)

Creates a new AVM sandbox with the specified configuration.

Options:

  • name (string, optional) - Sandbox name (defaults to computesdk-{timestamp})
  • image (string, optional) - Docker image to use (defaults to node:alpine)
  • resources (object, optional) - Resource allocation
    • cpus (number) - CPU allocation (default: 0.25)
    • memory (number) - Memory in MB (default: 512)
  • volumes (array, optional) - Volume configurations
    • volume_name (string) - Name of the volume
    • mount_path (string) - Mount path in the container

Returns: Promise<{ sandbox: AVMSandbox, sandboxId: string }>

getById(sandboxId)

Retrieves logs for a specific sandbox.

Parameters:

  • sandboxId (string) - The ID of the sandbox

Returns: Promise<{ sandbox: any, sandboxId: string } | null>

Returns null if the sandbox is not found.

list()

Lists all sandboxes in your AVM account.

Returns: Promise<Array<{ sandbox: AVMSandbox, sandboxId: string }>>

destroy(sandboxId)

Deletes a sandbox.

Parameters:

  • sandboxId (string) - The ID of the sandbox to destroy

Returns: Promise<void>

Configuration Options

The AVM provider accepts the following configuration:

interface AVMConfig {
  apiKey?: string;  // AVM API key (falls back to AVM_API_KEY env var)
}

Sandbox Structure

interface AVMSandbox {
  id: string;
  name: string;
  created_at: string;
  cpu: number;
  memory: number;
  status: string;
  volumes?: Array<{
    volume_id: string;
    mount_path: string;
    volume_name: string;
  }>;
}

Currently Implemented

Sandbox Operations

  • create() - Creates a new AVM sandbox with Docker container deployment
  • getById() - Retrieves logs for a specific sandbox
  • list() - Lists all sandboxes in the account
  • destroy() - Deletes a sandbox

Configuration Options

  • apiKey - AVM API authentication token
  • name - Custom sandbox name
  • image - Custom Docker image
  • resources - CPU and memory allocation
  • volumes - Volume mount configurations

Not Yet Implemented

The following methods are planned for future releases:

  • runCode() - Execute code in the sandbox
  • runCommand() - Run shell commands
  • getInfo() - Get sandbox metadata
  • getUrl() - Get sandbox URL for web access

Notes

  • Sandboxes are created with the specified resource allocation
  • Default image is node:alpine
  • Default resources: 0.25 CPUs, 512 MB memory
  • Sandbox names are auto-generated with timestamp if not provided
  • All operations use AVM's REST API v1
  • Environment variables take precedence over config options
  • The getById() method returns sandbox logs, not metadata
  • Sandboxes are immediately deleted when destroyed

API Documentation

For more information about the AVM Sandbox Platform API, visit:

  • API Docs: https://api.avm.codes/
  • Website: https://avm.codes/

License

MIT