All documentation

Network connections

Every connection OpenOrc makes, where it goes, what it sends, and how to turn it off.

Checked against the source on September 27, 2026.

Every connection

OpenOrc has no server of its own. Everything it sends goes to a service you already use, from your computer. This table lists every connection the app makes, when it happens, and how to stop it.

ConnectionGoes toWhenTo stop it
Agent turnsThe agent's own service: Anthropic for Claude Code, OpenAI for Codex, the providers you set up in OpenCodeEach message you sendUse another agent
Conversation titlesThe conversation's own agent, or the provider you choseOnce, after a new conversation's first turnSet titles to Off under Memory & models
Run summariesThe agent that did the work, or the provider you choseAfter each run, while memory is onLeave memory off, the default
Usage and allowancesClaude Code's and Codex's services, through their CLIsWhile the Usage settings are open, or a usage limit notice is shownClose those screens
Embedding modelstorage.googleapis.comOnce, the first time memory needs itLeave memory off, the default
App updatesGitHub Releases30 seconds after launch, then every 6 hours, in installed releasesTurn off automatic checks under General
Agent updatesregistry.npmjs.org, or formulae.brew.sh for Homebrew installs30 seconds after launch, then every 6 hoursTurn off automatic checks under Connections
GitYour repository's origin remoteCreating a worktree from a branch, pushing, and checks before a pull requestUse Local checkout
GitHub CLIGitHub, through ghCreating a pull request, and every 5 minutes for each conversation with an open oneCreate pull requests outside OpenOrc
SlackSlack, or your team's relayWhile Slack is connectedDisconnect Slack
Browser previewThe pages you or an agent openWhen a page loadsClose the preview
MCP AppsThe https domains the app's MCP server declaresWhile a Codex tool result shows an interactive appRemove that MCP server from Codex

Agents

OpenOrc runs the agent CLIs you installed, signed in with your own accounts, and they connect to their services themselves. OpenOrc does not sit between an agent and its provider. It decides what a request starts with: your message, the conversation so far, and its own instructions. The agent adds whatever it reads while it works, such as files and command output.

The CLIs also make connections of their own, under their own terms: their telemetry, their own update checks, and the MCP servers in your configuration. In Autonomous, Claude Code also connects the MCP servers from your Claude Code settings, unless you turn off "Your Claude Code MCP servers" under General. In the other modes it connects only OpenOrc's.

The CLIs keep their own transcripts on your computer, such as ~/.claude/projects for Claude Code and ~/.codex/sessions for Codex. OpenOrc does not redact or delete these.

Background requests through agents

OpenOrc has no model of its own. When it needs one in the background, it runs an agent CLI once, in the system's temporary folder, without MCP servers and with limited tools:

  • Conversation titles send the first 1,500 characters of your first message and of the reply. By default the conversation's own agent answers, so nothing reaches a provider that did not already have it. See Conversation titles.
  • Run summaries for memory send a digest of the run of up to 12,000 characters, with the task's title and spec. Memory is off in a new profile. When it is on, the agent that did the work summarizes it by default; choosing a provider sends every run's digest to that provider. See How extraction runs.
  • Usage: Claude Code answers a usage request over its own control channel, and Codex's app-server reads your account's limits. OpenOrc never reads the credentials these CLIs store. OpenCode's usage is not read; the settings point to each provider's dashboard.

For titles and summaries, Claude Code runs without shell, edit, or web tools but can still read and search files. Codex runs in a read-only sandbox, where it can still run commands that only read. OpenCode is denied every tool. Claude Code receives the prompt on its command line, which other accounts on the computer can list while it runs; Codex and OpenCode receive it over standard input.

Downloads and update checks

The embedding model

Memory's search by meaning uses a small model that runs on your computer. It is not part of the app. The first time memory needs it, OpenOrc downloads an 83 MB archive from storage.googleapis.com and keeps it only if it matches a SHA-256 checksum written into OpenOrc's source. The request carries no information about you beyond what any download does. While memory is off, the model is never downloaded. See Embeddings.

App updates

Installed releases ask GitHub Releases whether a newer version exists, 30 seconds after launch and then every 6 hours. Development builds never check. A check only compares versions: downloading and installing each wait for you to choose them from the app menu. The update library OpenOrc uses keeps a random ID in .updaterId in the profile folder, meant for releasing to a share of installations first. OpenOrc does not release that way and sends the ID empty. You can turn automatic checks off under General; Check for updates in the app menu still works.

Agent updates

OpenOrc checks whether the agent CLIs you installed have newer versions, 30 seconds after launch and then every 6 hours. It asks registry.npmjs.org for the latest version of each package, or formulae.brew.sh when Homebrew installed the agent, without cookies or credentials. Installing an update waits for you. You can turn these checks off under Connections.

Source: packages/memory/src/model-files.ts, apps/desktop/src/main/app-updates.ts, packages/core/src/services/agent-updates.ts

Git and GitHub

OpenOrc runs your own git and gh, so they use your credentials and configuration. Automatic network use is limited to two cases:

  • Creating a worktree from a branch fetches that branch from origin first, so the work starts from what your team sees. If the fetch fails, the local branch is used. Work in the Local checkout never fetches.
  • For each conversation with an open pull request, OpenOrc runs gh pr view <url> --json state every 5 minutes to show when it is merged or closed.

Everything else happens when you ask: pushing, creating a pull request, and the git ls-remote check that the branch is pushed before one is created. See Git and review.

Source: packages/core/src/services/workspace.ts, lifecycle.ts, review.ts

Local servers

These parts of OpenOrc listen for connections, all on 127.0.0.1, so other computers cannot reach them:

  • OpenOrc's MCP server, which gives agents OpenOrc's tools, on a random port.
  • The MCP Apps sandbox, which serves interfaces from MCP servers into isolated frames, on a random port. An interface can load files from, and connect to, the https domains its MCP server declares, except localhost, .local names, and IP addresses.
  • The team relay, on the computer that hosts it, when you use one. See The team relay.
  • On macOS, the update library's handoff to the system installer, on a random port and behind a random password, while a downloaded app update waits to be installed.

The app window itself loads only files that ship with OpenOrc. Its content security policy blocks remote scripts, styles, fonts, and images.

What OpenOrc does not send

  • No usage analytics or crash reports. OpenOrc has no account of its own.
  • No identifier for your installation with update checks or downloads.
  • Nothing to an OpenOrc server: there is none.

The privacy policy covers the website as well, which does use analytics.