AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Row your coding agents from anywhere — self-hosted web relay that drives Copilot, Claude, Cursor, Grok, and OpenAI from any browser: phone, tablet, or a second computer.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Drive the coding agents on your machine from any browser (phone, tablet, or a second computer) through a self-hosted web relay.
On Windows, run irm oar.sh/install.ps1 | iex in PowerShell. Landing page: oar.sh. npm and git-checkout installs are covered under Install.
OAR relays six runtimes: GitHub Copilot, OpenAI (BYOK), OpenAI Image (BYOK), Claude (Agent SDK), Cursor (Agent SDK), and Grok (CLI ACP). You pick one per conversation, and all of them share the same chat UI, queue, history, file browser, and question cards.README 전문 보기 ↗Drive the coding agents on your machine from any browser (phone, tablet, or a second computer) through a web relay you host yourself.
curl -fsSL oar.sh/install | sh
On Windows, run irm oar.sh/install.ps1 | iex in PowerShell. Other ways to install are under Install. Landing page: oar.sh; the complete guide: oar.sh/docs.
Coding agents such as GitHub Copilot, Claude Code, Cursor, Grok and DeepSeek usually live in a terminal. OAR puts them into a chat you can open anywhere: start a task at your desk, follow it from the sofa, answer the agent's question from your phone. The agents keep running on your own computer, with your files and your logins; OAR passes the conversation back and forth.
flowchart LR
subgraph devices["Your devices"]
phone["📱 Phone"]
browser["💻 Browser"]
end
subgraph host["Your computer"]
relay["OAR relay<br/>chats, queue, history, files"]
agents["Copilot · OpenAI · Claude · Claude API<br/>Cursor · Grok · DeepSeek"]
end
cloud["☁️ Claude Cloud<br/>sandbox at Anthropic"]
phone <--> relay
browser <--> relay
relay <--> agents
relay <--> cloud
curl -fsSL oar.sh/install | sh (macOS, Linux) or irm oar.sh/install.ps1 | iex (Windows PowerShell). On macOS and Linux the installer says what it is about to do and asks once, then installs OAR into your home directory, writes a config with a fresh access token, starts the relay, and prints its address with a QR code. On Windows, run oar start afterwards.oar url prints it again. On the relay's own machine that is http://localhost:3333/. For your phone, switch on LAN access with oar setup --lan, or use a tunnel.You need Node.js 22.13 or newer (the macOS and Linux installer brings its own when yours is missing or older) and an account with the agent you want to use; see Prerequisites. There are also installs with npm and from a git checkout.
oar alone opens a menu. oar start, stop, restart and status control the relay, oar service install starts it at boot or sign-in (a systemd user service on Linux, the sign-in autostart on Windows), oar doctor shows what it uses, and oar update installs a new release (as does ⚙️ Settings → General → Check for updates). All the details are in Installing and running OAR: the oar command, where OAR keeps its files, and updating.
The runtime (the provider in the UI) is chosen in New Chat and stays fixed for that conversation.
| Runtime | What it is | What you need |
|---|---|---|
| GitHub Copilot (default) | GitHub's coding agent, with every model your Copilot plan offers | The Copilot CLI, signed in on the relay host |
| OpenAI (BYOK) | Copilot's agent against OpenAI or a compatible endpoint | Your own API key |
| OpenAI Image | A chat whose replies are images | The same key |
| Claude | Claude Code on your machine | A Claude login, made from ⚙️ Settings |
| Claude API | Claude Code on your machine, billed to a Claude Console API key; a Claude chat can switch between the two | A Claude Console API key |
| Claude Cloud (experimental) | Claude Code in a sandbox at Anthropic, on a GitHub repository | A claude.ai account with GitHub connected |
| Cursor | Cursor's agent | A Cursor API key |
| Grok | xAI's Grok CLI | A Grok sign-in, made from ⚙️ Settings |
API keys are entered in ⚙️ Settings and stay on the relay host. The Claude and Grok CLIs can be installed and signed in to from the browser, so no shell on the host is needed. Each runtime discovers its own models. The full picture of each runtime is in Providers.
ask, plan, agent or autopilot, plus model and reasoning effort, per message (Relay modes).The full tour is in Using the web UI; every setting and config key is in Settings and configuration. What changed in each release is in the changelog, with 0.9.19 as the latest.
Out of the box the relay answers only on its own machine. There are three ways to reach it from elsewhere:
oar setup --lan opens the relay to your LAN and prints a QR code for your phone.cloudflared on the relay host (how).flowchart LR
phone["📱 Phone"]
subgraph host["Your computer"]
relay["OAR relay"]
cfd["cloudflared"]
end
cf["Cloudflare"]
vps["Your server<br/>HTTPS proxy"]
phone -- "same network<br/>oar setup --lan" --> relay
phone -- HTTPS --> cf --> cfd --> relay
phone -- HTTPS --> vps -- "SSH tunnel" --> relay
The relay keeps both tunnels running and reconnects them by itself. Beyond your own network, always go through HTTPS. Behind a reverse proxy of your own on another host, tell the relay to trust it (how). The details are in Remote access.
@.flowchart LR
you(("You")) --> A
subgraph r1["Relay on your workstation"]
A["Your agent's session"] -- "starts, waits for" --> B["A session it started"]
end
subgraph r2["Paired relay on a server"]
C["A session there"]
end
A -- "reads, prompts, waits" --> C
C -. "question, reply, error" .-> A
You stay in charge: per paired relay you decide whether agents may only read, also prompt, or do everything, and in the ask and plan modes every write asks you first. A subscription only notifies; it approves nothing.
How pairing, permissions and limits work is in Agents working together.
?token=, can have your agents run commands on the host. Treat it like a password; oar setup --new-token replaces it and signs every device out.How keys, cookies, served files, paired relays and Claude Cloud's use of the Claude login are handled: Security notes.
| Symptom | What to do |
|---|---|
| A runtime is missing from New Chat | Turn it on in ⚙️ Settings → Providers; all of them except Copilot are off until you do |
| A reply says a CLI is missing or signed out | Press the button on the failed reply (Install Grok CLI, Sign in to Grok, Claude settings) |
| Banner says CLI is offline | Normal on an idle relay: send a message, and the banner clears once the conversation's worker connects |
| A conversation seems wedged | ☠️ Kill session in the ⋯ menu, then retry or send a new message |
npm install -g @oar-sh/oar fails with EACCES | Do not use sudo; run the installer, which installs into your home directory |
oar doctor prints the version, paths, port and provider CLIs in use. More symptoms are in Troubleshooting.
| Guide | What is in it |
|---|---|
| Installing and running OAR | Prerequisites, every install method, starting the relay, the oar command, files, updating |
| Providers | Each runtime in detail, installing provider CLIs from the relay, models |
| Using the web UI | Conversations, running turns, question cards, background tasks, files, usage, sharing, the menu |
| Settings and configuration | Settings, config.json, environment variables, stuck-turn detection |
| Remote access | SSH and Cloudflare tunnels, a reverse proxy on another host, the session-worker path guard |
| Agents working together | Paired relays, agent sessions, watching sessions |
| Security notes · Troubleshooting | The full lists |
| Preview servers · Copilot CLI with your own key | Publishing dev servers; BYOK notes |
| DEVELOPING.md · · |
The most complete guide, in six languages, is oar.sh/docs.
| DeepSeek | Claude Code on your machine, thinking with DeepSeek's models | A DeepSeek API key |
| Development, tests, relay internals and the repository layout; the HTTP API; release notes |