# Ovrin > Secure cloud sandboxes for AI coding agents — one API call to provision an isolated Linux machine with the agent pre-installed, network locked down, and nothing left behind. ## What Ovrin does Ovrin is an agent compute cloud. It gives AI coding agents (Claude Code, Codex, Gemini CLI, DeepSeek Harness) a real, isolated Linux environment to run in. Developers call one API to create a sandbox, run a prompt, collect the output, and destroy the environment — in seconds, not minutes. Every sandbox is kernel-isolated with gVisor (syscall interception), namespace-scoped per tenant on k3s, and destroyed completely on kill. Egress is default-deny: only allowlisted hosts (e.g. api.anthropic.com, github.com, pypi.org) can be reached. ## Core capabilities - **Compute sandboxes** — isolated Linux (Ubuntu), gVisor runtime, millisecond provisioning, disposable by design - **Agent environments** — Claude Code, Codex (OpenAI), Gemini CLI, DeepSeek Harness — pre-installed, on the PATH, authenticated via env vars - **Browser access** — Chrome and Playwright inside the sandbox boundary; agent can click, scrape, upload, download, take screenshots - **Persistent memory** — `POST /memory`, `GET /memory/search` — context that outlives the sandbox; scoped per account - **Payments** — each account uses its own encrypted Stripe restricted key through `StripeClient` - **One SDK, one bill** — Python (`ovrin`) and TypeScript (`ovrin`) SDKs; single account for all capabilities ## API surface ``` POST /sandboxes create a sandbox GET /sandboxes/:id inspect state POST /sandboxes/:id/run execute a command (streaming stdout) POST /sandboxes/:id/files/write write a file POST /sandboxes/:id/files/read read a file DELETE /sandboxes/:id destroy (kill) POST /memory store a memory GET /memory/search semantic search over memories POST /secrets write a credential (write-only vault) GET /keys list scoped API keys GET /usage metered compute and quotas ``` ## Quick start (Python) ```python import ovrin client = ovrin.Client() sandbox = client.sandboxes.create( template="claude-code", env={"ANTHROPIC_API_KEY": key}, timeout=3600, ) result = sandbox.run('claude "fix the failing auth test"') print(result.stdout) sandbox.kill() ``` ## Security model 1. **gVisor** — userspace kernel intercepts all syscalls before the host sees them 2. **Tenant namespace** — per-account Kubernetes namespace with ResourceQuota and LimitRange 3. **Egress policy** — default-deny per sandbox; hosts allowlisted, not discovered 4. **API keys** — scoped, revocable; sandbox calls proxied with short-lived signed tokens ## Pricing Self-service. No demo call, no sales gate, no waitlist. Metered by compute-second. See `/usage` for quota details. ## Links - Homepage: https://ovrin.app/ - Agent environments: https://ovrin.app/agents - Claude Code agent page: https://ovrin.app/agents/claude-code - Other agent pages: https://ovrin.app/agents/codex · https://ovrin.app/agents/gemini-cli · https://ovrin.app/agents/deepseek-harness - Docs: https://ovrin.app/docs — quickstart: https://ovrin.app/docs/quickstart — Python SDK: https://ovrin.app/docs/python-sdk — templates: https://ovrin.app/docs/templates - Pricing: https://ovrin.app/pricing - Security: https://ovrin.app/security - Legal: https://ovrin.app/terms · https://ovrin.app/privacy · https://ovrin.app/dpa · https://ovrin.app/acceptable-use - SDK (Python): `pip install ovrin` - SDK (TypeScript): `npm install ovrin`