the universal sandbox runtime for agents and humans. pocketenv.io
sandbox openclaw agent claude-code vercel-sandbox deno-sandbox cloudflare-sandbox atproto sprites daytona
7
fork

Configure Feed

Select the types of activity you want to include in your feed.

Bump CLI to 0.7.0 and update changelog

Add Modal and E2B sandbox providers with PTY/SSH and WebSocket
Use tigrisfs for Cloudflare R2 mounts and enable FUSE in Vercel
Rename E2B API key, load presets at runtime, minify prod builds,
and refactor PTY handling for reuse across providers

+36 -3
+33
CHANGELOG.md
··· 2 2 3 3 All notable changes to this project will be documented in this file. 4 4 5 + ## [0.7.0] - 2026-04-12 6 + 7 + ### Added 8 + 9 + - **Modal sandbox provider**: Full support for [Modal](https://modal.com) as a sandbox provider. 10 + - Modal sandbox creation, management, and PTY/SSH sessions. 11 + - Pre-built Modal Docker images with `pty-tunnel-server` and npm/bun toolchains. 12 + - CI integration: `modal-sandbox` tests run in GitHub Actions with Bun. 13 + - **E2B sandbox provider**: Full support for [E2B](https://e2b.dev) as a sandbox provider. 14 + - E2B authentication via `E2B_API_KEY` environment variable (replaces former `e2bAccessToken`). 15 + - `pocketenv sandbox create --provider e2b` with configurable default CPU/memory resources. 16 + - PTY and SSH sessions for E2B sandboxes. 17 + - **WebSocket support for SSH/TTY/PTY sessions**: Terminal sessions now upgrade to WebSocket connections, centralizing upgrade handling across all providers. 18 + - **Cloudflare R2 mounts via tigrisfs**: Sandbox mounts now use [tigrisfs](https://github.com/tigrisdata/tigrisfs) (pinned to v1.2.1) for Cloudflare R2-backed storage, replacing direct FUSE mounting. 19 + - **FUSE support in Vercel sandbox**: Vercel sandboxes now install and load the FUSE kernel module to support tigrisfs mounts. 20 + 21 + ### Changed 22 + 23 + - **E2B API key renamed**: `e2bAccessToken` / `e2bAccessTokenRedacted` fields renamed to `e2bApiKey` / `e2bApiKeyRedacted` throughout schema and helpers. 24 + - **Preset YAMLs loaded at runtime**: Preset YAML files are now loaded dynamically at runtime instead of being bundled as static imports, reducing build size. 25 + - **Production builds minified with source maps**: Build output is now minified with source maps enabled for production. 26 + - **PTY session handling refactored**: PTY/SSH logic extracted into the Vercel module for reuse across Modal and E2B providers. 27 + - **Parallelized output reads and background mounts**: Sandbox output reads and mount operations now run concurrently for faster startup. 28 + - **Use bash for sandbox PTY**: Sandbox PTY sessions now use `bash` instead of `sh` for a better interactive experience. 29 + - **sandboxId handling for Modal/E2B**: Modal and E2B sandboxes follow the same `sandboxId` lifecycle as Deno Deploy — cleared on stop, always set from `sandbox.id`. 30 + 31 + ### Fixed 32 + 33 + - **Sandbox recovery on ID fetch failure**: If fetching an existing sandbox by ID fails, a new sandbox is created automatically as a fallback. 34 + - **PUBLIC_KEY / PRIVATE_KEY validation**: Decrypt helpers now validate that both keys are present before attempting decryption. 35 + 36 + --- 37 + 5 38 ## [0.6.9] - 2026-04-07 6 39 7 40 ### Added
+2 -2
apps/cli/flake.nix
··· 1 1 { 2 - description = "A Nix Flake for @rocksky/cli"; 2 + description = "A Nix Flake for @pocketenv/cli"; 3 3 4 4 inputs = { 5 5 nixpkgs.url = "github:nixos/nixpkgs/release-25.05"; ··· 13 13 14 14 pocketenv-cli = pkgs.buildNpmPackage { 15 15 pname = "pocketenv-cli"; 16 - version = "0.6.10"; 16 + version = "0.7.0"; 17 17 18 18 src = ./.; 19 19
+1 -1
apps/cli/package.json
··· 4 4 "bin": { 5 5 "pocketenv": "dist/index.js" 6 6 }, 7 - "version": "0.6.10", 7 + "version": "0.7.0", 8 8 "type": "module", 9 9 "keywords": [ 10 10 "sandbox",