Customer-facing, copy-paste examples for building on Islo. Each recipe is a self-contained folder under recipes/.
This repository is optimized for AI coding agents and human developers alike. Read AGENTS.md first if you are an agent.
SDK recipes — programmatic orchestration with run.py:
git clone https://github.com/islo-labs/recipes
cd recipes/gateway-allowlist
export ISLO_API_KEY="your-api-key" # from https://app.islo.dev/api-keys
uv sync
uv run python run.pyAgent recipes — Islo SDK + agent inside a computer:
cd recipes/claude-agent-sdk-in-sandbox
uv sync
uv run python claude_agent_sdk_in_sandbox/main.pySee each recipe's README.md for full steps.
Programmatic examples using the Islo Python SDK. Each prints PASS: <recipe-id> on success.
| Recipe | Description |
|---|---|
gateway-allowlist |
Restrict computer egress to package registries (PyPI, npm) |
docker-compose-fastapi-postgres |
Run a FastAPI + Postgres stack with Docker Compose |
playwright |
FastAPI app + Playwright browser tests on an Islo computer |
mount-s3 |
Mount an S3 bucket on a computer with a custom image + gateway |
GitSource recipes clone this repo — push main before running playwright or docker-compose-fastapi-postgres.
Run coding agents inside an Islo computer via the Python SDK.
| Recipe | Description |
|---|---|
anthropic-claude-code-in-sandbox |
Claude Code CLI |
openai-codex-in-sandbox |
OpenAI Codex CLI |
claude-agent-sdk-in-sandbox |
Claude Agent SDK (query()) |
CLI alternative for Claude Code and Codex: islo use --agent claude / --agent codex. See agent integration.
Local validation (no API keys):
uv sync --extra dev
./scripts/validate.shLive smoke (requires ISLO_API_KEY; agent/AWS recipes need extra secrets):
GitSource recipes (playwright, docker-compose-fastapi-postgres) clone this repo inside the computer. ./scripts/smoke.sh sets ISLO_RECIPES_REF to your current git branch automatically — push the branch first. Override with ISLO_RECIPES_REF=main after merge.
export ISLO_API_KEY="..."
./scripts/smoke.sh allCI runs ./scripts/validate.sh on every PR (validate.yml). Live smoke runs on a schedule and via workflow dispatch (recipes-smoke.yml).
See CONTRIBUTING.md.