Quick Start

Run real, isolated dependencies in a hosted Parlel sandbox and reach them from your app with zero code changes — all you add is a Docker sidecar and an API key.

1. Get an API key

Create a pk_ key in the Parlel app (or via the API). That's the only credential you need.

2. Add the bridge sidecar to your stack

The parlel/bridge image provisions a sandbox and exposes every dependency on a plain hostname. Your app connects to parlel-bridge:<port> exactly as it would to a real service in production.

# docker-compose.test.yml
include:
  - path: parlel-bridge.yml          # image: parlel/bridge
services:
  app:
    build: .
    env_file: test.env
    depends_on:
      parlel-bridge: { condition: service_healthy }
# test.env — your existing env vars, pointed at the bridge
DATABASE_URL=postgres://parlel:parlel@parlel-bridge:5432/parlel
REDIS_URL=redis://parlel-bridge:6379

3. Run it

PARLEL_API_KEY=pk_... docker compose -f docker-compose.test.yml up

Your unmodified drivers connect straight through — real wire protocols, no SSH, no Parlel code in your app:

import psycopg, redis
db = psycopg.connect("postgres://parlel:parlel@parlel-bridge:5432/parlel")
cache = redis.Redis(host="parlel-bridge", port=6379)

How it works

The bridge provisions a sandbox from your key (no services specified -> defaults to Postgres + Redis; otherwise set PARLEL_SERVICES), then exposes each dependency on a plain hostname inside your Docker network:

Your application never imports anything from Parlel; only test.env (the hostname) and the sidecar know Parlel exists. The same binary runs against production by pointing those env vars at your real services.

Prefer raw API control instead of the sidecar? POST /api/sandboxes then GET /api/sandboxes/{id}/connection returns a target + bridge_url per service — see How Agents Access It. The Flask CRUD example shows the full sidecar flow end-to-end.

What You Get

FeatureValue
Startup time< 1 second
Memory per service~50-100 KB
ProtocolsReal RESP, wire protocol, binary
StateEphemeral, disappears on cleanup
Side effectsNone
Remote accessAPI key → parlel/bridge sidecar; unmodified drivers, no SSH

Available Services

ServicePortProtocol
redis6379RESP (TCP)
postgres5432Wire protocol (TCP)
kafka9092Binary (TCP)
mysql3306Wire protocol (TCP)
elasticsearch9200HTTP
cassandra9042Binary (TCP)
rabbitmq5672AMQP (TCP)
supabase54321HTTP (REST)
sqliteEmbedded

Next Steps