Skip to content

Latest commit

 

History

History
49 lines (38 loc) · 1.63 KB

File metadata and controls

49 lines (38 loc) · 1.63 KB

Sandcaster

A runtime for AI agents in isolated E2B sandboxes. (inspired by https://github.com/tomascupr/sandstorm)

TDD

tdd: strict

Stack

  • Runtime: bun
  • Monorepo: Turborepo
  • Language: TypeScript (ESM-only)
  • LLM orchestration: Pi-mono (@mariozechner/pi-ai, @mariozechner/pi-agent-core)
  • API: Hono
  • Sandboxes: E2B
  • CLI/TUI: Ink + React
  • Testing: Vitest 4
  • Formatting/Linting: Biome (runs automatically via hook)

Commands

bun install              # Install all workspace dependencies
bunx turbo build         # Build all packages (tsc, topological order)
bunx turbo test          # Run all tests (Vitest)
bunx turbo lint          # Lint all packages (Biome)
bun run scripts/create-template.ts  # Create E2B sandbox template (needs E2B_API_KEY)

Package Structure

packages/core       — @sandcaster/core (data + execution layer)
packages/sdk        — @sandcaster/sdk (standalone client SDK)
packages/chat       — @sandcaster/chat (unified chat bot: Slack, Discord, Telegram)
packages/ts-config  — @sandcaster/ts-config (shared TypeScript configs)
apps/api            — @sandcaster/api (Hono server, depends on core)
apps/cli            — @sandcaster/cli (Ink TUI, depends on core + sdk + chat)

Conventions

  • Internal dependencies use workspace:*
  • Build output goes to dist/
  • Each package extends @sandcaster/ts-config/node.json (or react.json for CLI)
  • SDK and CLI are published to npm; all other packages are private
  • Versioning via Changesets (bunx changeset to add a changeset)
  • CLI is bundled with tsup (workspace deps inlined, npm deps external)