Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
b6ba8e2
feat: [US-001] - Add browser_install.rs CLI command
NathanFlurry Mar 17, 2026
f8a220c
feat: [US-002] - Register install browser subcommand in CLI
NathanFlurry Mar 17, 2026
7d294a7
feat: [US-003] - Add browser type definitions (DTOs and errors)
NathanFlurry Mar 17, 2026
0bd34f6
feat: [US-004] - Add CdpClient for communicating with Chromium
NathanFlurry Mar 17, 2026
1d2c43a
feat: [US-005] - Add BrowserRuntime state machine
NathanFlurry Mar 17, 2026
f8b4df9
feat: [US-006] - Add browser lifecycle HTTP endpoints (start/stop/sta…
NathanFlurry Mar 17, 2026
b328d6b
feat: [US-007] - Add CDP WebSocket proxy endpoint
NathanFlurry Mar 17, 2026
6042394
feat: [US-008] - Add browser navigation endpoints
NathanFlurry Mar 17, 2026
58d7aca
feat: [US-009] - Add browser tab management endpoints
NathanFlurry Mar 17, 2026
45258c3
feat: [US-010] - Add browser screenshot and PDF endpoints
NathanFlurry Mar 17, 2026
1ae732d
feat: [US-011] - Add browser content extraction endpoints (HTML, mark…
NathanFlurry Mar 17, 2026
a77b768
feat: [US-012] - Add browser scrape and execute endpoints
NathanFlurry Mar 17, 2026
4cf3dab
feat: [US-013] - Add browser interaction endpoints (click, type, sele…
NathanFlurry Mar 17, 2026
5d52010
feat: [US-014] - Add browser upload and dialog endpoints
NathanFlurry Mar 17, 2026
47312b2
feat: [US-015] - Add browser console and network monitoring endpoints
NathanFlurry Mar 17, 2026
2687df1
feat: [US-016] - Add browser context (persistent profile) management
NathanFlurry Mar 17, 2026
8223383
feat: [US-017] - Add browser cookie management endpoints
NathanFlurry Mar 17, 2026
806acdf
feat: [US-018] - Add browser crawl endpoint
NathanFlurry Mar 17, 2026
45cc8a8
feat: [US-019] - Add TypeScript SDK browser types
NathanFlurry Mar 17, 2026
8ade8bb
feat: [US-020] - Add TypeScript SDK browser lifecycle and CDP methods
NathanFlurry Mar 17, 2026
9776e0f
feat: [US-021] - Add TypeScript SDK browser navigation and tab methods
NathanFlurry Mar 17, 2026
f4c43a5
feat: [US-022] - Add TypeScript SDK browser content extraction methods
NathanFlurry Mar 17, 2026
264ec25
feat: [US-023] - Add TypeScript SDK browser interaction methods
NathanFlurry Mar 17, 2026
11efecf
feat: [US-024] - Add TypeScript SDK browser monitoring, crawl, contex…
NathanFlurry Mar 17, 2026
189dfc0
feat: [US-025] - Add BrowserViewer React component
NathanFlurry Mar 17, 2026
4c00d71
feat: [US-026] - Add Browser tab to Inspector UI - runtime control an…
NathanFlurry Mar 17, 2026
589362f
feat: [US-027] - Add Browser tab - screenshot, tabs, and console sect…
NathanFlurry Mar 17, 2026
65df273
feat: [US-028] - Add Browser tab - network, content tools, recording,…
NathanFlurry Mar 17, 2026
b582555
feat: [US-029] - Add browser API integration tests
NathanFlurry Mar 17, 2026
117b9c2
feat: [US-030] - Fix crawl page load: replace sleep with readyState p…
NathanFlurry Mar 17, 2026
a2168ce
feat: [US-031] - Fix crawl navigation status: use real HTTP status in…
NathanFlurry Mar 17, 2026
c4eb48c
feat: [US-032] - Remove dead cdp_client() method from BrowserRuntime
NathanFlurry Mar 17, 2026
a6ba0ec
feat: [US-033] - Fix default display dimensions to match spec (1280x720)
NathanFlurry Mar 17, 2026
e9a55e5
feat: [US-034] - Add reverse mutual exclusivity check in DesktopRuntime
NathanFlurry Mar 17, 2026
97b5e71
docs: update PRD and progress for US-034
NathanFlurry Mar 17, 2026
66ca652
feat: [US-035] - Fix BrowserProblem misuse: use correct error variant…
NathanFlurry Mar 17, 2026
fe09904
docs: update PRD and progress for US-035
NathanFlurry Mar 17, 2026
9fc6093
feat: [US-036] - Add integration tests for console and network monito…
NathanFlurry Mar 17, 2026
8ace9cd
docs: update PRD and progress for US-036
NathanFlurry Mar 17, 2026
adca442
feat: [US-037] - Add integration tests for crawling
NathanFlurry Mar 17, 2026
ca05ec9
docs: update PRD and progress for US-037
NathanFlurry Mar 17, 2026
f55cb03
feat: [US-038] - Fix path traversal vulnerability in browser context_id
NathanFlurry Mar 17, 2026
ffe6951
docs: update PRD and progress for US-038
NathanFlurry Mar 17, 2026
f3b90cc
feat: [US-039] - Fix leaked background tasks on browser stop
NathanFlurry Mar 17, 2026
c8d0679
docs: update PRD and progress for US-039
NathanFlurry Mar 17, 2026
cd9d71f
feat: [US-040] - Remove with_cdp method from BrowserRuntime
NathanFlurry Mar 17, 2026
1bd7ef9
docs: update PRD and progress for US-040
NathanFlurry Mar 17, 2026
a9629c9
feat: [US-041] - Restrict crawl endpoint to http/https schemes only
NathanFlurry Mar 18, 2026
c96558e
feat: [US-042] - Handle CDP connection death on Chromium crash
NathanFlurry Mar 18, 2026
321493a
feat: [US-043] - Strengthen network monitoring integration test
NathanFlurry Mar 18, 2026
218ee0c
wip
NathanFlurry Mar 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ Cargo.lock
.agents/
.claude/
.opencode/
.ralph/

# Example temp files
.tmp-upload/
Expand Down
11 changes: 11 additions & 0 deletions docker/test-agent/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,17 @@ RUN apt-get update -qq && \
xauth \
fonts-dejavu-core \
xterm \
chromium \
libnss3 \
libatk-bridge2.0-0 \
libdrm2 \
libxcomposite1 \
libxdamage1 \
libxrandr2 \
libgbm1 \
libasound2 \
libpangocairo-1.0-0 \
libgtk-3-0 \
> /dev/null 2>&1 && \
rm -rf /var/lib/apt/lists/*

Expand Down
148 changes: 148 additions & 0 deletions docs/browser-feature-matrix.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
---
title: "Feature Matrix"
description: "Compare Sandbox Agent's capabilities against other sandbox and browser automation providers."
sidebarTitle: "Feature Matrix"
icon: "table-columns"
---

A comparison of Sandbox Agent's features against Daytona, E2B, Cloudflare (Browser Rendering), Browserbase, and common agent-browser tools (Steel, Stagehand, Browser Use).

## Sandbox Lifecycle

| Feature | Sandbox Agent | Daytona | E2B | Cloudflare | Browserbase |
|---------|:---:|:---:|:---:|:---:|:---:|
| Create sandbox | ✓ | ✓ | ✓ | ✓ | ✓ |
| Destroy/delete | ✓ | ✓ | ✓ | ✓ | ✓ |
| List sandboxes | ✓ | ✓ | ✓ | - | ✓ |
| Start/stop | ✓ | ✓ | ✓ | ✓ | - |
| Pause/resume | - | - | ✓ | - | - |
| Snapshots/templates | - | ✓ | ✓ | - | ✓ |
| Auto-stop timeout | - | ✓ | ✓ | ✓ | ✓ |
| Region selection | - | - | - | ✓ | ✓ |

## Filesystem

| Feature | Sandbox Agent | Daytona | E2B | Cloudflare | Browserbase |
|---------|:---:|:---:|:---:|:---:|:---:|
| Read file | ✓ | ✓ | ✓ | - | - |
| Write file | ✓ | ✓ | ✓ | - | - |
| List directory (recursive) | ✓ | ✓ | ✓ | - | - |
| Delete file/dir | ✓ | - | ✓ | - | - |
| Move/rename | ✓ | - | ✓ | - | - |
| Mkdir | ✓ | - | ✓ | - | - |
| File stat/metadata | ✓ | - | - | - | - |
| Batch upload (tar) | ✓ | - | - | - | - |
| File watch/events | - | - | ✓ | - | - |

## Process Management

| Feature | Sandbox Agent | Daytona | E2B | Cloudflare | Browserbase |
|---------|:---:|:---:|:---:|:---:|:---:|
| One-shot exec | ✓ | ✓ | ✓ | - | - |
| Background processes | ✓ | - | ✓ | - | - |
| Stream stdout/stderr | ✓ | - | ✓ | - | - |
| Interactive PTY (WebSocket) | ✓ | ✓ | ✓ | - | - |
| Terminal resize | ✓ | ✓ | ✓ | - | - |
| Send stdin | ✓ | - | ✓ | - | - |
| Kill/stop process | ✓ | - | ✓ | - | - |
| List processes | ✓ | - | ✓ | - | - |
| Process config (limits) | ✓ | - | - | - | - |

## Desktop / Computer-Use

| Feature | Sandbox Agent | Daytona | E2B | Cloudflare | Browserbase |
|---------|:---:|:---:|:---:|:---:|:---:|
| Virtual desktop | ✓ | - | ✓ | - | - |
| Screenshot (full) | ✓ | - | ✓ | ✓ | - |
| Screenshot (region) | ✓ | - | - | - | - |
| Mouse (move/click/drag/scroll) | ✓ | - | ✓ | - | - |
| Keyboard (type/press) | ✓ | - | ✓ | - | - |
| Window management | ✓ | - | - | - | - |
| Clipboard read/write | ✓ | - | - | - | - |
| Launch application | ✓ | - | - | - | - |
| Display info / DPI config | ✓ | - | - | - | - |
| Desktop recording | ✓ | - | - | - | ✓ |

## Live Streaming

| Feature | Sandbox Agent | Daytona | E2B | Cloudflare | Browserbase |
|---------|:---:|:---:|:---:|:---:|:---:|
| Live desktop stream | ✓ | - | ✓ | - | - |
| Protocol | WebRTC (Neko) | - | VNC | - | CDP screencast |
| Video codecs | VP8, VP9, H.264 | - | - | - | JPEG |
| Audio streaming | ✓ (Opus, G.722) | - | - | - | - |
| Interactive input via stream | ✓ | - | ✓ | - | Limited |
| Configurable FPS (1-60) | ✓ | - | - | - | - |
| Multi-viewer | ✓ | - | - | - | ✓ |
| Typical latency | 50-150ms | - | 100-500ms | - | 200-1000ms |

## Browser Automation

| Feature | Sandbox Agent | Cloudflare | Browserbase | Steel | Stagehand |
|---------|:---:|:---:|:---:|:---:|:---:|
| Start/stop browser | ✓ | ✓ | ✓ | ✓ | ✓ |
| CDP WebSocket access | ✓ | ✓ | ✓ | ✓ | - |
| Navigate / back / forward | ✓ | ✓ | ✓ | ✓ | ✓ |
| Tab management | ✓ | - | ✓ | - | - |
| Click / type / scroll (selector) | ✓ | ✓ | ✓ | ✓ | ✓ |
| Screenshot (browser-level) | ✓ | ✓ | ✓ | ✓ | ✓ |
| PDF generation | ✓ | ✓ | ✓ | ✓ | - |
| Get page HTML | ✓ | ✓ | ✓ | - | - |
| Get page as Markdown | ✓ | ✓ | - | - | - |
| Scrape elements (selectors) | ✓ | ✓ | ✓ | - | - |
| Extract all links | ✓ | ✓ | - | - | - |
| Accessibility tree snapshot | ✓ | - | - | - | ✓ |
| Execute JavaScript | ✓ | - | ✓ | ✓ | - |
| Console log capture | ✓ | - | ✓ | - | - |
| Network request capture | ✓ | - | ✓ | - | - |
| Web crawling | ✓ | ✓ | - | - | - |
| Persistent browser profiles | ✓ | - | ✓ | ✓ | - |
| Cookie management | ✓ | - | ✓ | ✓ | - |
| File upload to input | ✓ | - | ✓ | ✓ | - |
| Dialog handling | ✓ | - | ✓ | - | - |
| Live browser streaming | ✓ (WebRTC) | - | ✓ (CDP) | ✓ | - |
| Anti-detection/stealth | - | - | ✓ | ✓ | - |
| Proxy support | - | - | ✓ | ✓ | - |
| CAPTCHA solving | - | - | ✓ | - | - |
| Browser extensions | - | - | ✓ | - | - |

## Agent Integration

| Feature | Sandbox Agent | Daytona | E2B | Cloudflare | Browserbase |
|---------|:---:|:---:|:---:|:---:|:---:|
| Agent Client Protocol (ACP) | ✓ | - | - | - | - |
| MCP server config | ✓ | - | - | - | - |
| Skills config | ✓ | - | - | - | - |
| Agent install/management | ✓ | - | - | - | - |
| Session persistence | ✓ | - | - | - | - |
| Permission system | ✓ | - | - | - | - |
| Code interpreter | - | - | ✓ | - | - |

## SDKs and Tooling

| Feature | Sandbox Agent | Daytona | E2B | Cloudflare | Browserbase |
|---------|:---:|:---:|:---:|:---:|:---:|
| TypeScript SDK | ✓ | ✓ | ✓ | ✓ | ✓ |
| Python SDK | - | ✓ | ✓ | - | ✓ |
| React components | ✓ | - | - | - | - |
| Inspector UI | ✓ | - | - | - | - |
| Provider abstraction (7+) | ✓ | - | - | - | - |
| WebRTC client library | ✓ | - | - | - | - |
| CLI | ✓ | ✓ | ✓ | ✓ | - |

## Streaming Technology Comparison

For platforms that support live desktop/browser streaming, here is how the underlying technologies compare:

| Dimension | WebRTC (Neko) | VNC (noVNC) | CDP Screencast | WebSocket + JPEG |
|-----------|:---:|:---:|:---:|:---:|
| Typical latency | 50-150ms | 100-500ms | 200-1000ms | 150-400ms |
| Frame rate | 30-60 fps | 10-30 fps | 1-15 fps | 5-20 fps |
| Video quality | High | Medium | Low-Medium | Medium |
| Audio support | Yes | No | No | No |
| Interactive input | Full | Full | Limited | Limited |
| Bandwidth (adaptive) | Yes | No | No | No |
| Used by | Sandbox Agent | E2B, Gitpod | Browserbase | Various |

Sandbox Agent uses [Neko](https://github.com/m1k1o/neko) (WebRTC) for streaming, which provides the lowest latency and best interactivity of any approach. The same stream serves both the full desktop and browser automation modes.

1 change: 1 addition & 0 deletions docs/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@
{
"group": "More",
"pages": [
"browser-feature-matrix",
"daemon",
"cors",
"session-restoration",
Expand Down
Loading
Loading