Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@douglas-agent/sandbank-core

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@douglas-agent/sandbank-core

Unified sandbox SDK for AI agents — provider abstraction, capability system, and error types

latest
Source
npmnpm
Version
0.4.0
Version published
Weekly downloads
355
Maintainers
1
Weekly downloads
 
Created
Source

@douglas-agent/sandbank-core

Unified sandbox SDK for AI agents — provider abstraction, capability system, and error types.

Install

pnpm add @douglas-agent/sandbank-core

Usage

import { createProvider, withTerminal, connectTerminal } from '@douglas-agent/sandbank-core'
import { DaytonaAdapter } from '@douglas-agent/sandbank-daytona'

const provider = createProvider(
  new DaytonaAdapter({ apiKey: process.env.DAYTONA_API_KEY! })
)

// Create a sandbox with a non-root user
const sandbox = await provider.create({
  image: 'node:22',
  user: 'sandbank',            // creates non-root user with sudo
})
const { stdout } = await sandbox.exec('node --version')
await sandbox.writeFile('/app/index.js', 'console.log("hi")')

// Run privileged commands with asRoot
await sandbox.exec('apt-get update', { asRoot: true })

// Capability detection
const terminal = withTerminal(sandbox)
if (terminal) {
  const info = await terminal.startTerminal()
  const session = connectTerminal(info)
  await session.ready
  session.onData((data) => process.stdout.write(data))
  session.write('ls\n')
}

await provider.destroy(sandbox.id)

Capabilities

Use hasCapability(provider, name) to check provider support, and withTerminal(sandbox) / withStreaming(sandbox) / etc. for type-safe downcasting.

CapabilityDescription
exec.streamReal-time stdout/stderr streaming
terminalInteractive web terminal (ttyd)
sleepHibernate and wake sandboxes
volumesPersistent volume management
snapshotSnapshot and restore sandbox state
port.exposeExpose sandbox ports to the internet

Multi-Agent Sessions

import { createSession } from '@douglas-agent/sandbank-core'

const session = await createSession({ provider, relay: { type: 'memory' } })
const agent = await session.spawn('worker', { image: 'node:22' })
await session.waitForAll()
await session.close()

License

MIT

Keywords

sandbox

FAQs

Package last updated on 21 May 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts