Documentation
Cloud (managed)
Sign up, paste your provider key, get a Relay API key. Skip the Docker, Postgres, and 3-service deploy. Your tokens still go direct to Anthropic / OpenAI — Relay never proxies billing.
How it works
The cloud version runs the exact same control plane + runtime + Postgres stack you would self-host, hosted by us. You bring your own provider keys; we orchestrate the agent loop, store traces, and run the memory pipeline.
- BYOK. Your OpenAI / Anthropic keys are encrypted with AES-256-GCM the moment they arrive and decrypted per request.
- No proxied billing. Your tokens flow straight to Anthropic and OpenAI. They invoice you, not us.
- Free during beta. No credit card. Reasonable per-key rate limits.
- Self-host always available. If you outgrow the cloud limits or want to keep everything in your VPC, the same code is on GitHub under Apache 2.0.
Sign up in 30 seconds
- Go to relay-cloud / signup.
- Paste your email + at least one provider key.
- You get a
relay_live_…key on screen (and in your inbox if we have email configured). - Install one of the SDKs and point it at the cloud control plane:
# TypeScript / Node
npm install @relayhq/sdk
# Python
pip install relayhqimport { createAgent } from "@relayhq/sdk";
const agent = createAgent({
apiKey: process.env.RELAY_API_KEY,
baseUrl: "https://api.relaygh.dev",
model: "gpt-4o-mini",
});
for await (const e of agent.run("Say hi in three languages.")) {
if (e.type === "token") process.stdout.write(e.text);
}import asyncio, os
from relayhq import create_agent
agent = create_agent(
api_key=os.environ["RELAY_API_KEY"],
base_url="https://api.relaygh.dev",
model="gpt-4o-mini",
)
async def main():
async for e in agent.run("Say hi in three languages."):
if e["type"] == "token":
print(e["text"], end="", flush=True)
asyncio.run(main())Your dashboard
The internal observability dashboard (runs list + execution trace) is the same one you'd run self-hosted. Sign in with your API key on the login page and the dashboard reads from the cloud control plane on your behalf.
Limits during beta
- 10 agent runs / minute / API key
- One tenant per email
- Trace retention: 30 days
- Memory rows: unlimited (but they live in shared Postgres)
Rotating keys
Provider key (your OpenAI / Anthropic key)
curl -X PUT https://api.relaygh.dev/v1/credentials/openai \
-H "authorization: Bearer $RELAY_API_KEY" \
-H "content-type: application/json" \
-d '{"apiKey":"sk-..."}'Relay API key
API keys are SHA-256 hashed — we can't show them again. For now, to rotate your Relay key, open an issue and we'll reset your tenant. (Self-serve rotation is on the roadmap.)
Cloud vs self-host: how to choose
- Choose cloud if you want to ship an agent today and don't want to think about Postgres, Docker, or where to deploy a Go binary.
- Choose self-host if you need data in your VPC, are past the beta's rate limits, or want absolute control over the stack.
- You can switch at any time. Your code stays the same — only
baseUrlandapiKeychange.