Bridge AI GitHub

Privacy

Bridge AI is an open-source app (https://github.com/sahil1/bridge) made of three parts: the app on your computer, a relay on your own Cloudflare account, and the phone apps for iPhone and Android. The app on your computer sends the project anonymous usage stats and crash reports (below), which you can turn off in Settings › About & Updates; nothing else goes to the project or its author. The relay and the phone apps send the project nothing. There is no account and no ads.

Last updated: November 2026.

On your computer

Bridge AI runs on your computer and keeps its data there, in ~/.bridge-ai. It listens only on your computer (127.0.0.1). Your agents (Claude Code, Codex and the others) talk to their own providers with your own sign-ins, under those providers' terms; Bridge AI reads their screens and transcripts on your computer and types into them for you.

The outside requests Bridge AI makes itself are for what it shows you: the weather (Open-Meteo, with only the coordinates you picked), market prices and news headlines (Yahoo Finance, the Federal Reserve and public news feeds), speech models when you download one, the first time you use the mic or a meeting or from Settings › Voice (one download each from Hugging Face; what you say is turned into text on your computer and never sent anywhere, unless you pick a speech service for meetings), the local model (Gemma 4 E2B, 2.8 GB) only when you click Download for it in Settings › Model Providers (one download from Hugging Face; what you give it is read on your computer by llama.cpp, which runs there and answers only Bridge AI, and is never sent anywhere), a check on GitHub for a newer version, which you can turn off in Settings › About & Updates, and, unless you turn them off, usage stats and crash reports to the project (below). Its fonts and icons are part of the app, so nothing is fetched to draw it. On Windows and Linux, the desktop app's spell check gets the dictionaries for your languages once, from Google, as Chrome does; nothing you type goes with them (a Mac uses its own).

When something in Bridge AI crashes, it keeps a note of it on your computer (in ~/.bridge-ai; the desktop app also keeps what its server printed, in logs/server.log) and offers Report on GitHub. That shows you the whole issue it would fill in, with names, folders, emails and keys taken out, for you to read and change; it reaches GitHub only if you open it there and send it yourself, under GitHub's terms. Unless you turn crash reports off (below), the same report also goes to the project by itself.

How much of your plan is left is off until you turn it on (the Usage card, or Settings › General). Then Bridge AI asks each agent's own provider, with the sign-in that agent uses on your computer, through quota-axi. If you add an API key for a model provider (Settings › Model Providers), Bridge AI uses it to check the key and, when you or the chief of staff ask, to put a question to that model. Both go straight from your computer to that provider.

Who said what in a room (a meeting with your mic only) is worked out on your computer by a small voice model you download from Hugging Face the first time you ask for it. What it works out from each line stays in that meeting's folder and goes with it when it's deleted. If you turn on Remember voices you name (Settings › Meetings, off to start with), the voices you name are kept as a few hundred numbers each, with the name you gave, in ~/.bridge-ai/meetings/voices.json, readable by you only; they're never sent anywhere, not to your other devices either, and Forget voices deletes them.

Dictation and voice notes are turned into text on your computer, and the recording isn't kept (unless you ask for it, below). With "Show the words as you talk" (Settings › Voice, on where your computer keeps up), the sound goes to your computer as you talk, a moment at a time, rather than all at once when you let go; it's heard there the same way and goes nowhere else. The dictation key from other apps (Settings › Voice) is heard for that one key only: on a Mac it's registered with macOS, which tells Bridge AI when it's pressed and let go; on Windows and Linux a keyboard hook runs only while the key is held, and until Ctrl, Alt, Shift and the Windows key are let go too (a few seconds at most), to hear them let go, and ignores every other key. If you pick one key on its own instead (Fn or the right ⌥ on a Mac, Right Alt on Windows and Linux), it can't be registered that way, so Bridge AI listens to the keyboard while that's your key: on a Mac with a listen-only event tap (macOS asks to allow Input Monitoring), on Windows and Linux with the keyboard hook. It looks for that key going down and up, and only notes that some other key was pressed while it's held (which cancels); it never records which key, or anything you type. Nothing is pasted into other apps unless you pick "Where I'm typing" there. Then, after you let go of the key, the text is put on the clipboard for a moment (marked so clipboard managers skip it on a Mac), ⌘V or Ctrl+V is pressed in the app you were in, and what you had copied is put back; on Wayland it's typed in by wtype instead. On a Mac pressing ⌘V needs Accessibility, which you're asked for when you pick it, and Bridge AI uses it for that paste only. Edit by voice (a Mac, off until you turn it on) reads the text you have selected in that app as you let go of the key, through Accessibility (asking the app for its selection; ⌘C only in an app that can't say, with what you had copied put back). That text and what you said go to the model you pick for it: one on your computer (the local model built in, which it uses when you haven't picked one, Ollama, LM Studio) keeps them there; any other gets them, and Settings says so where you pick it. With nothing selected, nothing is sent anywhere, and with it off, nothing is read.

When you ask the Chief of Staff out loud, what you said goes to it as any message you type does, and its answer is read to you by a voice on the device you're using (its own voices, never one fetched from the internet), or, on a device with none, by eSpeak NG on your computer.

What you dictate is kept on your computer, in ~/.bridge-ai/dictations, so you can find it again under Dictations: the words as they were put in and as they were heard, when, for how long, and where they went (the name and bundle ID of the app you were in, and its icon; or the agent; and whether they were pasted, sent, typed or copied). It's kept for always unless you pick 30 days or a year, and never leaves your computer (a paired phone shows it end-to-end encrypted, as it shows everything else). The recording itself is only kept if you turn on "Keep the recordings too". Settings › Voice › Dictation turns the history off (then nothing new is kept) and deletes all of it; deleting one deletes it from the disk, not just from the list. A dictation refused because a password field had the keyboard isn't kept.

Files shows your agents' folders, and only the other folders you add to it yourself (Places, with the folder picker); it keeps each place's path in ~/.bridge-ai/places.json, not what's in it, and looks in none of them until you open it. A file you copy to another of your computers, or send from your phone, goes end-to-end encrypted over the same link as everything else (the relay sees only how much goes), and lands only in the folder you pick on the computer it goes to.

If you run Bridge AI on a server or in Docker, all of this applies to that machine instead of your computer.

Usage stats (on unless you turn them off)

Bridge AI on your computer sends the project anonymous usage stats, to see what to build and fix and which versions are out there. They're on unless you turn them off: Share anonymous usage counts in Settings › About & Updates. The first time they're on, a card says so, with Turn off right there (it turns crash reports off too). DO_NOT_TRACK=1 or BRIDGE_TELEMETRY=0 in the environment keeps them off, and turning them off stops them at once and forgets what was counted and not yet sent. The phone apps and the relay send nothing of the kind.

Two reports go to the project's server, counts.boldbridge.ai, run on Cloudflare; its code is counts/worker.js in this repo:

Neither has a name, an ID for you or your computer (a random number new with each report lets the server count a report once), a file, folder, project, repo or branch name, anything you typed or said, anything from your agents, an email address, a host name, or an exact time. The full list of what can be sent, with every value it can take, is shared/telemetry-schema.json; adding to it is a public change. See exactly what would be sent shows the next report as it would go, and a copy of each report sent is kept in ~/.bridge-ai/telemetry/sent.

The server sees your IP address when a report arrives, as any website does; it doesn't read or store it, and its logs are off. It keeps only totals: how many reports said each thing (a version, a system, a feature on, a count's range), each answer counted on its own rather than together, never a report as it came, and each report's random number for ten weeks, so one sent twice counts once. Because reports carry no ID, one already sent can't be found again to delete. If the project stops collecting, Bridge AI turns them off and says so.

When you add a key for a cloud agent (Cursor, GitHub Copilot, Jules or Claude), Bridge AI on your computer talks to that provider with your key: to list your repos, start the agents you ask for, check on them and send your follow-ups. The key stays on your computer, in ~/.bridge-ai, readable only by you, and isn't given to the agents Bridge AI starts there. Your code and what the agent does with it are under that provider's terms. If you give Claude a GitHub token, it goes to Anthropic with each task so the agent can reach your repo. "Use my GitHub CLI sign-in" reads the GitHub CLI's token once, when you click it.

Crash reports (on unless you turn them off)

When something in Bridge AI crashes, its report (the same text Report on GitHub shows you: what crashed, the error and where in Bridge AI's code, its version, your system, the settings that change how it runs, and the last lines of its log, with your name, your projects' and computers' names, folders, emails, keys and network addresses taken out on your computer) can go to the project, to help fix it. That happens by itself unless you turn off Send crash reports by themselves in Settings › About & Updates (or Turn off on the card that says they're on), and when you click Send to Bold Bridge on a crash's report after reading and changing it as you like. By themselves, at most five go in a day, and the same crash once. DO_NOT_TRACK=1 or BRIDGE_TELEMETRY=0 keeps it off, and there's nothing to send to while the project has no crash server.

Reports go to crashes.boldbridge.ai, the same server as the usage counts (counts/worker.js), which takes out what it can again (emails, keys, home folders, addresses), keeps each report for 90 days with the day it arrived, and groups reports of the same crash. It doesn't read or store your IP address, and its logs are off. A report has no ID for you or your computer, so one already sent can't be found again to delete. A copy of each report sent is kept in ~/.bridge-ai/telemetry/crashes, and Settings lists them. If the project stops collecting, Bridge AI turns crash reports off and says so.

The website

The website, boldbridge.ai, is served by Cloudflare. It counts visits with Cloudflare Web Analytics, which uses no cookies and keeps nothing that identifies you. Its download buttons count each download: which file, the day, and the page or site the click came from (as your browser tells it), never your IP address; then they hand you the file from GitHub, under GitHub's terms. The page asks GitHub for the latest version number, so your browser contacts GitHub as well. Bridge AI itself (the app) doesn't use the website, except to open it when you click a link to it.

Your relay

To reach your computer from your phone, Bridge AI can set up a relay: a small Cloudflare Worker on your own Cloudflare account, with your Cloudflare sign-in, which stays on your computer. Your computer keeps one connection open to it, and your phone connects to it too.

Everything between your phone and your computer is end-to-end encrypted. Each paired phone has its own key, kept on the phone, and each connection makes fresh keys. The relay passes on bytes it can't read. In a phone's browser, the page that does the encrypting comes from the relay itself, so this rests on the relay serving it unchanged: on your own relay that's you; on a relay someone else runs, use the iPhone app, which has the page built in. It stores when your computer was last online, and the messages you send from your phone while your computer is offline (to an agent, or an answer to its question), until your computer is back to take them. Each of those is sealed on the phone for your computer, so the relay can't read or change it, and it's deleted once your computer has it, or after 7 days. The relay also keeps, until your phone picks it up, a receipt for each one (sealed for your phone: whether it was delivered), and which phones are paired with your computer, as ids made from each phone's key, so no one else can leave messages there.

What Cloudflare can see, as with any site it serves: the IP addresses of your phone and computer, when they connect and how much they send, your relay's address, and the user agent of the browser or app (the iPhone and Android apps add BridgeAIApp and its version). That's under your Cloudflare account and Cloudflare's privacy policy, not the project's. The project never sees it.

If you use Tailscale instead, your phone reaches your computer over your own tailnet, under Tailscale's privacy policy.

The phone apps

The iPhone and Android apps show Bridge AI from your computer, through your relay. They have no account. Apart from Cloud Agents (below), they send nothing anywhere but to your relay and, through it, end to end to your computer.

Cloud Agents on the phone

Cloud Agents in the phone apps runs agents on Cursor, GitHub Copilot, Jules or Claude with no computer, with keys you add on the phone.

Notifications from the Home Screen page

If you add the relay's page to your Home Screen and turn on notifications, your computer sends them through your browser's push service (Google for Chrome, Apple for Safari, Mozilla for Firefox). Each one is encrypted for your phone. The push service sees your phone's push address, when a notification is sent and how big it is, and a short label used to replace an older one (which agent, or which provider's usage).

Terms

Using Bridge AI is covered by its license and TERMS.md: it's provided as is, and you're responsible for your agents and for following the terms of the services you connect.

Children

Bridge AI is a tool for software developers and isn't meant for children.

Changes and contact

Changes to this policy are made in this file, and its history is in the repo. Questions: open an issue on GitHub, or for something private, the repo's Security tab › Report a vulnerability.