Check here first when you run into issues. If your question isn't covered, please open a GitHub Issue.
- Installation & Startup
- Connection & Configuration
- Providers & Quotas
- Error Troubleshooting
- IDE Integration
- Security & Privacy
- LINUX DO Connect
Download the latest release from GitHub: https://github.com/romgX/openrelay/releases
Supported platforms: macOS (ARM64), Windows (x64).
The binary release requires no Node.js — it's ready to use out of the box.
Binary release:
# macOS
./openrelay
# Windows
.\openrelay-windows-x64.exenpm install (requires Node.js >= 18):
npm install -g openrelay
openrelayFirst time on macOS — authorize Keychain access:
./openrelay --setupOnce started, open http://localhost:18765 in your browser — all configuration is done through the Web dashboard.
./openrelay --testThere's no built-in auto-start command yet. Recommended approaches:
macOS: Add the launch command to Login Items, or create a LaunchAgent plist.
Windows: Place a shortcut in the shell:startup folder.
Option 1: Web dashboard one-click setup (recommended)
Open http://localhost:18765 → Work tab → select a Provider for Claude Code → toggle on → reopen your terminal.
Option 2: Set environment variables manually
export ANTHROPIC_BASE_URL=http://localhost:18765
export ANTHROPIC_API_KEY=unusedOpen http://localhost:18765 → IDE tab → Cursor section → select Provider and model → click Start.
Important: After starting the proxy, you must launch Cursor from the dashboard's launch button. Opening Cursor directly will bypass the proxy.
Open http://localhost:18765 → IDE tab → select the IDE → choose Provider and model → click Start.
- Windsurf — auto-configured after Start. Reopen Windsurf to apply.
- Antigravity — auto-configured after Start. Restart Antigravity to apply.
- VS Code Copilot — auto-configured after Start. Select the Ollama model in Copilot Chat.
Open http://localhost:18765 → Work tab → select a Provider for each tool → toggle on → reopen your terminal.
Open the Web dashboard at http://localhost:18765 — all provider status, connections, and usage stats are shown there.
Config file location: ~/.openrelay/config.json
IDE Providers (auto-discovered, no setup needed): Claude Desktop, Claude Code, Kiro, Windsurf, Antigravity, OpenCode, VS Code Copilot.
Direct API Providers (API key required): Open the Web dashboard → click an unconnected API provider in the sidebar → enter your API key.
Recommended free providers:
- Groq — 14,400 req/day, Llama 3.3 70B, extremely fast
- Cerebras — 1M tokens/day, Llama 70B
- Gemini — generous free tier, 1M context
- SambaNova — Llama 405B, 200K tokens/day
- OpenRouter — 30+ free models
Use model groups (Custom tab) to combine multiple providers. When Groq runs out → auto-failover to Cerebras → then SambaNova. We recommend registering multiple providers for better reliability.
Open the Web dashboard at http://localhost:18765 — green dots in the sidebar mean the provider is connected. Click any provider for detailed status and quota info.
This is a normal informational message, not an error.
impit is an optional Chrome TLS fingerprint library used to bypass CloudFlare JA3/JA4 detection. The binary release cannot embed impit (it contains native .node files), so it falls back to native fetch automatically.
If you encounter persistent 403 errors with the Claude Desktop provider, use the npm install method (npm install -g openrelay) — impit will be installed and enabled automatically.
OpenRelay is not running. Start it:
./openrelay # macOS
.\openrelay-windows-x64.exe # WindowsIf already started but still getting errors, check if the port is in use:
# macOS
lsof -i :18765
# Windows
netstat -ano | findstr 18765API key expired or invalid. Open the Web dashboard and check the connection status of the affected provider.
For IDE providers (Claude Desktop, Kiro, etc.), try opening the corresponding IDE app to refresh its token, then click "Reconnect" in the dashboard.
Current provider quota is exhausted. OpenRelay automatically switches to the next available provider (if you've configured model groups).
If all providers are rate-limited:
- Wait a few minutes and retry (most free quotas reset per minute/hour)
- Add more providers in the Web dashboard
- Check if any provider keys have expired
Some providers (e.g., Claude Desktop) use CloudFlare protection. OpenRelay automatically refreshes cookies and retries.
If 403 persists:
- Check if impit is loaded (look in startup logs)
- Restart OpenRelay
- Reopen Claude Desktop to let it refresh cookies
Network instability or provider-side disconnection. Usually temporary — just retry.
If it happens frequently:
- Check your network connection
- If using a proxy (Clash, etc.), add provider domains to your direct rules
- Switch to a different provider in the Web dashboard
Port 18765 is already in use. Another OpenRelay instance may be running.
# macOS — find the process
lsof -i :18765
kill <PID>
# Windows
netstat -ano | findstr 18765
taskkill /PID <PID> /FOpenRelay auto-detects Clash fake-ip (198.18.x.x) and uses DoH fallback. For best results, add license.limitlessmeto.com to your direct rules.
Confirm OpenRelay is running and check available models:
curl http://localhost:18765/v1/modelsMake sure environment variables are set correctly. The easiest way: configure in the Web dashboard Work tab, then reopen your terminal.
- Confirm OpenRelay is running
- Start the Cursor RPC proxy in the Web dashboard IDE tab
- You must launch Cursor from the dashboard's launch button (opening Cursor directly bypasses the proxy)
- First-time use requires trusting the TLS certificate (the dashboard will guide you)
Kiro's AWS token expires after ~1 hour. To fix:
- Open Kiro IDE to let it refresh the token
- Go back to the Web dashboard and click "Reconnect"
- You can also use "Switch Account" in the dashboard to re-login
- Check which provider/model is in use — larger models (e.g., 405B) are slower
- Switch to faster providers (Groq and Cerebras are the fastest)
- Check network latency
Config file: ~/.openrelay/config.json
Logs print to the terminal (stdout) where OpenRelay was launched. They contain only errors and request metadata (provider, model, status) — no message content or credentials.
To delete all data: rm -rf ~/.openrelay/
No. OpenRelay is fundamentally different from a "reverse proxy":
- Reverse proxy: Your requests go through someone else's server, multiple users share one API key — providers can detect this and ban the account.
- OpenRelay: Runs entirely on your local machine. Requests go directly from your computer to the AI provider, exactly the same as calling the API yourself. The provider sees a normal user using their own quota — there's nothing to flag or ban.
In short: OpenRelay just manages and routes requests locally. It doesn't touch your account and nothing passes through any middleman server.
The only thing to keep in mind: if a provider changes their free tier policy (e.g., removes free credits), that's the provider's decision and has nothing to do with OpenRelay. When that happens, OpenRelay automatically switches to another provider that still has quota available.
Absolutely safe. OpenRelay's security design:
- Credentials never leave your machine — All API keys, tokens, and cookies stay in local process memory. Nothing is uploaded anywhere.
- Direct connections only — Requests go straight from your machine to the AI provider. No third-party server in between.
- No chat logging — Logs only contain errors and request metadata (provider, model, status code). Your conversation content is never logged or cached.
- Auditable code — The credential handling code (
cookie.ts) is open for review. You can check it yourself if you have any concerns.
Your data is stored only in ~/.openrelay/config.json. To delete everything: rm -rf ~/.openrelay/.
LINUX DO community members can log in to OpenRelay with their linux.do account to receive community-exclusive benefits. Click the LINUX DO button in the Dashboard top-right corner to log in.
No. LINUX DO login is completely independent from OpenRelay's registration and Pro subscription system.
Last updated: 2026-03-29
If your question isn't listed here, please open a GitHub Issue and we'll add it to this FAQ.