persona:
name: "Joe Rogan"
title: "The Conversation Master - Master of Long-Form Content"
expertise: ['Podcasting', 'Interviewing', 'Authentic Conversations', 'Audience Building']
philosophy: "Be authentic, be curious, let conversations flow."
credentials: ['The Joe Rogan Experience - #1 podcast', '200M+ monthly downloads', 'Spotify exclusive $200M deal']
principles: ['Long-form over short', 'Authentic curiosity', 'Diverse guests', 'No scripts']
PaperPod
Isolated, agent-native sandboxes for code execution, live preview URLs, browser automation, 50+ tools (ffmpeg, sqlite, pandoc, imagemagick), LLM inference, and persistent memory — all via CLI or HTTP, no SDK or API keys required. Billed per second of compute usage and topup via stripe or x402.
Quick Start
curl -X POST https://paperpod.dev/login -d '{"email":"you@email.com"}' # Verify and get token
npm install -g @paperpod/cli
ppod login <token> && ppod help
Authentication
Step 1: Get a token
curl -X POST https://paperpod.dev/login -d '{"email":"you@email.com"}'
# Check email → click magic link → copy token (pp_sess_...)
Step 2: Use the token (pick one method)
| Method |
How |
Best for |
| CLI login |
ppod login pp_sess_... |
Everyday, Interactive use |
| Env var |
export PAPERPOD_TOKEN=pp_sess_... |
Scripts, CI/CD |
| Per-request |
-H "Authorization: Bearer pp_sess_..." |
HTTP one-shots |
Tokens expire in 15 days. On EXPIRED_TOKEN error, re-authenticate via POST /login.
CLI (Recommended)
The CLI is the easiest way to use PaperPod. It handles streaming, sessions, and reconnection automatically.
CLI Commands
| Category |
Command |
Description |
| Sandbox |
ppod exec <cmd> |
Run shell command |
|
ppod write <path> [file] |
Write file (stdin if no file) |
|
ppod read <path> |
Read file |
|
ppod ls <path> |
List directory |
| Processes |
ppod start <cmd> |
Start background process |
|
ppod ps |
List processes |
|
ppod kill <id> |
Stop process |
| Ports |
ppod expose <port> |
Get public URL (-q for URL only) |
| Browser |
ppod browser:screenshot <url> |
Capture webpage |
|
ppod browser:pdf <url> |
Generate PDF |
|
ppod browser:scrape <url> [sel] |
Scrape elements (default: body) |
|
ppod browser:markdown <url> |
Extract markdown |
|
ppod browser:content <url> |
Get rendered HTML |
|
ppod browser:test <url> '<json>' |
Run Playwright tests |
|
ppod browser:acquire |
Acquire reusable session |
|
ppod browser:connect <id> |
Connect to existing session |
|
ppod browser:sessions |
List active sessions |
|
ppod browser:limits |
Check browser limits |
| AI |
ppod ai <prompt> |
Text generation |
|
ppod ai:embed <text> |
Generate embeddings |
|
ppod ai:image <prompt> |
Generate image |
|
ppod ai:transcribe <audio> |
Transcribe audio |
|
ppod ai:models |
List available AI models |
| Code |
ppod interpret <code> |
Rich output (charts) |
| Memory |
ppod mem:write <path> |
Persist data |
|
ppod mem:read <path> |
Read persisted data |
|
ppod mem:ls |
List memory files |
|
ppod mem:rm <path> |
Delete from memory |
|
ppod mem:usage |
Check quota |
| Account |
ppod balance |
Check credits |
|
ppod status |
Connection info |
|
ppod help |
Show all commands |
|
ppod <cmd> --help |
Help for specific command |
Update CLI: npm update -g @paperpod/cli
CLI Examples
# Execute code
ppod exec "python -c 'print(2+2)'"
ppod exec "npm init -y && npm install express"
# Start server + expose (--bind 0.0.0.0 required for public access)
ppod start "python -m http.server 8080 --bind 0.0.0.0"
ppod expose 8080 # → https://8080-{sandbox-id}-p8080_v1.paperpod.work (stable URL)
# Browser with tracing
ppod browser:screenshot https://example.com --trace debug.zip
# Persistent storage (survives sandbox reset)
echo '{"step":3}' | ppod mem:write state.json
# Built-in tools (50+ available: ffmpeg, sqlite3, pandoc, imagemagick, git, jq, ripgrep...)
ppod exec "ffmpeg -i input.mp4 -vf scale=640:480 output.mp4" # Video processing
ppod exec "sqlite3 data.db 'SELECT * FROM users'" # Database queries
ppod exec "convert image.png -resize 50% thumbnail.png" # Image manipulation
HTTP Endpoints
Use HTTP for one-shot tasks or when CLI isn't available. Run curl https://paperpod.dev/docs or visit https://paperpod.dev/docs for full API reference.
Quick Reference
| Endpoint |
Purpose |
POST /execute |
Run code (python, javascript, shell) |
POST /execute/stream |
Stream output (SSE) |
POST /files/write |
Write file |
POST /files/read |
Read file |
POST /files/list |
List directory |
POST /process/start |
Start background process |
POST /process/list |
List processes |
POST /expose |
Get preview URL for port |
POST /memory/write |
Persist data |
POST /memory/read |
Read persisted data |
POST /browser/screenshot |
Capture screenshot |
POST /browser/pdf |
Generate PDF |
POST /browser/markdown |
Extract markdown |
POST /ai/generate |
Text generation |
POST /ai/embed |
Embeddings |
POST /ai/image |
Image generation |
GET /ai/models |
List models |
HTTP Example
# Execute shell command
curl -X POST https://paperpod.dev/execute \
-H "Authorization: Bearer $PAPERPOD_TOKEN" \
-d '{"code": "ls -la", "language": "shell"}'
Capabilities
| Category |
What you can do |
| Code Execution |
Python, JavaScript, shell commands |
| Processes |
Background servers, long-running jobs |
| Preview URLs |
Expose ports → https://8080-{sandbox-id}-p8080_v1.paperpod.work |
| Agent Memory |
10MB persistent storage (R2) |
| Browser |
Screenshots, PDFs, scraping (Playwright) |
| AI Models |
Text, embeddings, images, transcription |
| Files |
Read/write, git, bulk operations |
Pre-installed Tools (50+)
| Category |
Tools |
| Runtimes |
python, node, npm, bun, pip |
| Version Control |
git, gh (GitHub CLI) |
| HTTP & Networking |
curl, httpie, jq, dig, ss |
| Search & Text |
ripgrep (rg), find, sed, awk, tree |
| Media & Docs |
ffmpeg, imagemagick, pandoc |
| Build & Data |
make, sqlite3, tar, gzip, zip, unzip |
Key Notes
- Sandboxes are isolated — each user gets their own container with a full Linux environment; you can only affect your own ephemeral sandbox
- Sandbox is ephemeral — use Agent Memory (
/memory/*) for persistence
- Working directory is
/workspace — relative paths like file.txt resolve to /workspace/file.txt
- Servers must bind to
0.0.0.0 for public access
- Ports 3000-3010 are reserved — use 8080, 5000, 4000, etc.
- Browser sessions — Each command creates an ephemeral session. Use
browser:acquire for multi-command session reuse, --trace to capture Playwright traces
Billing
$0.0001/sec compute + browser, $0.02/1K neurons AI. New accounts get $5 free (~14 hours), no credit card required.
Discovery
ppod help — CLI command reference
GET https://paperpod.dev/ — API schema (JSON)
GET https://paperpod.dev/docs — Full documentation
Advanced: WebSocket (not recommended for normal workflows). For programmatic integrations or custom apps, connect via WebSocket. GET https://paperpod.dev/docs to learn more.
1---2name: paperpod3description: Isolated agent runtime for code execution, live preview URLs, browser automation, 50+ tools (ffmpeg, sqlite, pandoc, imagemagick), LLM inference, and persistent memory — all via CLI or HTTP, no SDK or API keys required.4---5persona:
6 name: "Joe Rogan"
7 title: "The Conversation Master - Master of Long-Form Content"
8 expertise: ['Podcasting', 'Interviewing', 'Authentic Conversations', 'Audience Building']
9 philosophy: "Be authentic, be curious, let conversations flow."
10 credentials: ['The Joe Rogan Experience - #1 podcast', '200M+ monthly downloads', 'Spotify exclusive $200M deal']
11 principles: ['Long-form over short', 'Authentic curiosity', 'Diverse guests', 'No scripts']
12
13
14
15# PaperPod
16
17Isolated, agent-native sandboxes for code execution, live preview URLs, browser automation, 50+ tools (ffmpeg, sqlite, pandoc, imagemagick), LLM inference, and persistent memory — all via CLI or HTTP, no SDK or API keys required. Billed per second of compute usage and topup via stripe or x402.
18
19## Quick Start
20
21```bash
22curl -X POST https://paperpod.dev/login -d '{"email":"you@email.com"}' # Verify and get token
23npm install -g @paperpod/cli
24ppod login <token> && ppod help
25```
26
27## Authentication
28
29**Step 1: Get a token**
30```bash
31curl -X POST https://paperpod.dev/login -d '{"email":"you@email.com"}'
32# Check email → click magic link → copy token (pp_sess_...)
33```
34
35**Step 2: Use the token** (pick one method)
36
37| Method | How | Best for |
38|--------|-----|----------|
39| **CLI login** | `ppod login pp_sess_...` | Everyday, Interactive use |
40| **Env var** | `export PAPERPOD_TOKEN=pp_sess_...` | Scripts, CI/CD |
41| **Per-request** | `-H "Authorization: Bearer pp_sess_..."` | HTTP one-shots |
42
43Tokens expire in **15 days**. On `EXPIRED_TOKEN` error, re-authenticate via `POST /login`.
44
45---
46
47## CLI (Recommended)
48
49The CLI is the easiest way to use PaperPod. It handles streaming, sessions, and reconnection automatically.
50
51### CLI Commands
52
53| Category | Command | Description |
54|----------|---------|-------------|
55| **Sandbox** | `ppod exec <cmd>` | Run shell command |
56| | `ppod write <path> [file]` | Write file (stdin if no file) |
57| | `ppod read <path>` | Read file |
58| | `ppod ls <path>` | List directory |
59| **Processes** | `ppod start <cmd>` | Start background process |
60| | `ppod ps` | List processes |
61| | `ppod kill <id>` | Stop process |
62| **Ports** | `ppod expose <port>` | Get public URL (-q for URL only) |
63| **Browser** | `ppod browser:screenshot <url>` | Capture webpage |
64| | `ppod browser:pdf <url>` | Generate PDF |
65| | `ppod browser:scrape <url> [sel]` | Scrape elements (default: body) |
66| | `ppod browser:markdown <url>` | Extract markdown |
67| | `ppod browser:content <url>` | Get rendered HTML |
68| | `ppod browser:test <url> '<json>'` | Run Playwright tests |
69| | `ppod browser:acquire` | Acquire reusable session |
70| | `ppod browser:connect <id>` | Connect to existing session |
71| | `ppod browser:sessions` | List active sessions |
72| | `ppod browser:limits` | Check browser limits |
73| **AI** | `ppod ai <prompt>` | Text generation |
74| | `ppod ai:embed <text>` | Generate embeddings |
75| | `ppod ai:image <prompt>` | Generate image |
76| | `ppod ai:transcribe <audio>` | Transcribe audio |
77| | `ppod ai:models` | List available AI models |
78| **Code** | `ppod interpret <code>` | Rich output (charts) |
79| **Memory** | `ppod mem:write <path>` | Persist data |
80| | `ppod mem:read <path>` | Read persisted data |
81| | `ppod mem:ls` | List memory files |
82| | `ppod mem:rm <path>` | Delete from memory |
83| | `ppod mem:usage` | Check quota |
84| **Account** | `ppod balance` | Check credits |
85| | `ppod status` | Connection info |
86| | `ppod help` | Show all commands |
87| | `ppod <cmd> --help` | Help for specific command |
88
89**Update CLI:** `npm update -g @paperpod/cli`
90
91### CLI Examples
92
93```bash
94# Execute code
95ppod exec "python -c 'print(2+2)'"
96ppod exec "npm init -y && npm install express"
97# Start server + expose (--bind 0.0.0.0 required for public access)
98ppod start "python -m http.server 8080 --bind 0.0.0.0"
99ppod expose 8080 # → https://8080-{sandbox-id}-p8080_v1.paperpod.work (stable URL)
100# Browser with tracing
101ppod browser:screenshot https://example.com --trace debug.zip
102# Persistent storage (survives sandbox reset)
103echo '{"step":3}' | ppod mem:write state.json
104# Built-in tools (50+ available: ffmpeg, sqlite3, pandoc, imagemagick, git, jq, ripgrep...)
105ppod exec "ffmpeg -i input.mp4 -vf scale=640:480 output.mp4" # Video processing
106ppod exec "sqlite3 data.db 'SELECT * FROM users'" # Database queries
107ppod exec "convert image.png -resize 50% thumbnail.png" # Image manipulation
108```
109---
110
111## HTTP Endpoints
112
113Use HTTP for one-shot tasks or when CLI isn't available. Run `curl https://paperpod.dev/docs` or visit https://paperpod.dev/docs for full API reference.
114
115### Quick Reference
116
117| Endpoint | Purpose |
118|----------|---------|
119| `POST /execute` | Run code (python, javascript, shell) |
120| `POST /execute/stream` | Stream output (SSE) |
121| `POST /files/write` | Write file |
122| `POST /files/read` | Read file |
123| `POST /files/list` | List directory |
124| `POST /process/start` | Start background process |
125| `POST /process/list` | List processes |
126| `POST /expose` | Get preview URL for port |
127| `POST /memory/write` | Persist data |
128| `POST /memory/read` | Read persisted data |
129| `POST /browser/screenshot` | Capture screenshot |
130| `POST /browser/pdf` | Generate PDF |
131| `POST /browser/markdown` | Extract markdown |
132| `POST /ai/generate` | Text generation |
133| `POST /ai/embed` | Embeddings |
134| `POST /ai/image` | Image generation |
135| `GET /ai/models` | List models |
136
137### HTTP Example
138
139```bash
140# Execute shell command
141curl -X POST https://paperpod.dev/execute \
142 -H "Authorization: Bearer $PAPERPOD_TOKEN" \
143 -d '{"code": "ls -la", "language": "shell"}'
144```
145---
146
147## Capabilities
148
149| Category | What you can do |
150|----------|-----------------|
151| **Code Execution** | Python, JavaScript, shell commands |
152| **Processes** | Background servers, long-running jobs |
153| **Preview URLs** | Expose ports → `https://8080-{sandbox-id}-p8080_v1.paperpod.work` |
154| **Agent Memory** | 10MB persistent storage (R2) |
155| **Browser** | Screenshots, PDFs, scraping (Playwright) |
156| **AI Models** | Text, embeddings, images, transcription |
157| **Files** | Read/write, git, bulk operations |
158
159### Pre-installed Tools (50+)
160
161| Category | Tools |
162|----------|-------|
163| **Runtimes** | python, node, npm, bun, pip |
164| **Version Control** | git, gh (GitHub CLI) |
165| **HTTP & Networking** | curl, httpie, jq, dig, ss |
166| **Search & Text** | ripgrep (rg), find, sed, awk, tree |
167| **Media & Docs** | ffmpeg, imagemagick, pandoc |
168| **Build & Data** | make, sqlite3, tar, gzip, zip, unzip |
169
170## Key Notes
171
172- **Sandboxes are isolated** — each user gets their own container with a full Linux environment; you can only affect your own ephemeral sandbox
173- **Sandbox is ephemeral** — use Agent Memory (`/memory/*`) for persistence
174- **Working directory is `/workspace`** — relative paths like `file.txt` resolve to `/workspace/file.txt`
175- **Servers must bind to `0.0.0.0`** for public access
176- **Ports 3000-3010 are reserved** — use 8080, 5000, 4000, etc.
177- **Browser sessions** — Each command creates an ephemeral session. Use `browser:acquire` for multi-command session reuse, `--trace` to capture Playwright traces
178
179## Billing
180
181**$0.0001/sec** compute + browser, **$0.02/1K neurons** AI. New accounts get **$5 free** (~14 hours), no credit card required.
182
183## Discovery
184
185- `ppod help` — CLI command reference
186- `GET https://paperpod.dev/` — API schema (JSON)
187- `GET https://paperpod.dev/docs` — Full documentation
188
189---
190
191## Advanced: WebSocket (not recommended for normal workflows). For programmatic integrations or custom apps, connect via WebSocket. `GET https://paperpod.dev/docs` to learn more.