OpenClaw · Skill
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.
Install
Start with the primary install command. Alternate entrypoints are included below for ClawHub and OpenClaw CLI users.
Primary command
clawhub install shassingh09/paperpodClawHub installer
npx clawhub@latest install shassingh09/paperpodOpenClaw CLI
openclaw skills install shassingh09/paperpodDirect OpenClaw install
openclaw install shassingh09/paperpodWhat this skill does
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.
Why it matters
Combines code execution, browser automation, AI inference, and 50+ pre-installed tools in one service accessible by CLI or HTTP without requiring any SDK or pre-configured API keys.
Typical use cases
- Running Python or Node.js scripts without local environment setup
- Exposing a development server to a public URL for live testing
- Scraping a webpage and extracting its content as markdown
- Processing video or image files with ffmpeg or ImageMagick remotely
- Persisting agent state between sessions using built-in memory storage
Source instructions
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 likefile.txtresolve to/workspace/file.txt - Servers must bind to
0.0.0.0for public access - Ports 3000-3010 are reserved — use 8080, 5000, 4000, etc.
- Browser sessions — Each command creates an ephemeral session. Use
browser:acquirefor multi-command session reuse,--traceto 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 referenceGET https://paperpod.dev/— API schema (JSON)GET https://paperpod.dev/docs— Full documentation