Privacy
This website
orble.ai has no analytics, no cookies and no third-party scripts. Its fonts and images are served from this site.
If you ask for access, we keep three things: your email address, the answer you chose to “You'd use it for” if you chose one, and the time you asked. They are stored in Cloudflare Workers KV, under Orble's Cloudflare account, and used for one thing: writing to you about access to Orble. We don't keep your IP address or anything about your browser, and we don't share or sell the list.
To have your address removed, ask us from that address and we will delete it.
The app
What follows is the privacy page that ships with Orble itself, as written.
Updated 3 November 2026.
Orble has no account and no telemetry, keeps no crash reports unless you ask it to and never sends one itself, and sends nothing about you to its makers. Your screen stays in memory for about a minute, and the moments it changed for ten minutes, and is never saved to disk.
Normal mode
Orble talks to the services whose keys you entered, to GitHub for updates, and, when you attach a link, to that link's site:
- Each question sends the AI model (Gemini or Claude) a screenshot, your question, recent
speech and conversation, the app and window in front, your memory notes, notes for that app, a
short summary of what Orble counted in that app (
learner.json, below), and files you dropped or images you pasted. Pointing and guidance send more screenshots; with both keys, Claude sees those too and each model backs up the other. - Something earlier on screen. When you ask about what was on screen before ("what did that dialog say two minutes ago?"), the model may get up to 4 more screenshots from the last ten minutes. Settings → Your data → Earlier on screen sets how many minutes (at most 30); 0 turns that off.
- A link you paste alone into the composer (or give with
/link) is fetched by Orble once, when you next ask: the site sees your Mac's address and that Orble read the page, with no cookies or passwords. A public page cannot send Orble on to your router or another address on your own network. Never in Privacy Mode. - Your other display:
/displaytakes one picture of the display you are not working on and attaches it like a dropped image. Not while screen capture is paused. - Your page on the desk:
/desk, or asking Orble to look at your page, takes one photo with the camera that sees your desk (an iPhone's Desk View, or a camera you pointed at the page; never your Mac's built-in camera, which sees you) and attaches it like a dropped image. For a photo the camera is on for the second or two that takes, and nothing is saved; it stays on only while you keep Show my page open (/desk live), until you close it (another panel opening in its place, such as typing a question, closes it too), pause Orble, lock the Mac, turn on Privacy Mode or quit, or 20 minutes pass without a question. On a Desk day (Settings → General → Today's Orble, picked in the day picker; never the default), every question takes one, so a child just asks. While the page viewer is open, each question takes a picture from it, with the words Apple's recognizer read on your page; nothing of it is saved. Not while you paused Orble, and never in Privacy Mode. Under 18, the camera works only once a grown-up allows it in Settings → General. That is a lock and not parental consent: it checks nobody's age, and anyone at the keyboard who answers its question can open it. Listing which cameras your Mac has opens none and asks for no permission, and Orble keeps only what kind each is. - Your age: Orble asks once, in a few ranges (under 10, 10 to 12, 13 to 14, 15 to 17, 18 or
over), and keeps the answer in
config.jsonon your Mac with the day you chose for today. It is never sent to a model or a service. It changes two things only: for someone under 18 the desk camera stays off until a grown-up allows it in Settings → General, and a young child's photo goes to the model with a note that the person asking may be young. That setting is not consent and checks nobody's age: anyone at the keyboard can switch it. The answer and the setting ride in an export's and a feedback report'sconfig.json, shown and editable there. - The clipboard is read only when you ask:
/clipboardor the island's clipboard button. What you copied becomes a chip you see (and can remove) before you ask, and goes with your questions like a dropped file. Orble reads nothing while screen capture is paused (unless a meeting app paused it), and never an item your password manager marked private. - Error text. When an alert or dialog is open in the app in front, its exact words and button names go with your question. When you are in a terminal and the last command failed, that command and what it printed go too (at most 30 lines; your user and computer names in the prompt are left out). Orble reads these through Accessibility: the text the screenshot shows, though a terminal's last command and its output can reach further up its scrollback than the screen does. It masks anything shaped like an API key first; other secrets a command prints (a password, a token of another kind) are not recognised. Nothing is read while capture is paused (see below), and a terminal whose last command worked sends nothing. In Cursor, VS Code or Xcode, the open file's name or path and the text you have selected (up to 2,000 characters, keys masked) go with your question the same way. Settings → Capture pauses → "Read error text from the screen" turns it off; the screenshot still goes.
- Listening (AssemblyAI key). While listening is on, anything loud enough to be speech, from anyone, goes to AssemblyAI with 1.5 seconds either side; the wake word only decides whether Orble answers. Not during a call: see below. Listening is off when Orble starts unless you turn on Settings → Voice → "Listen when Orble starts". The wake-word test in Settings → Voice sends its 3 seconds the same way, and on a call or in Privacy Mode is heard on this Mac instead. With Settings → Voice → "Hear the wake word on this Mac first" on (it is off unless you turn it on) and Whisper, Apple dictation or VoiceStudio on this Mac installed, speech stays on your Mac until an engine there hears a wake word in it. Then AssemblyAI gets that sentence (up to 10 seconds of it, from 1.5 seconds before it began, so a question said before the wake word goes too) and what you say after it until 4 seconds of quiet or 15 seconds have passed. A sentence with no wake word in it is dropped on your Mac. Everything goes to AssemblyAI as before in open mic, while Orble is answering and for 25 seconds after its voice ends, while you hold the Talk key and while a guide is running. The engine on your Mac can mistake another word for the wake word (it accepts words that sound like it, so a made-up name with common consonants is mistaken more often); that sentence, and what you say after it until 4 seconds of quiet or 15 seconds, then goes to AssemblyAI too, and Orble does not answer it. With no engine installed the setting does nothing, and Settings says so.
- Scribe. Dictation goes to AssemblyAI, then to the AI model with the text before your cursor and your dictionary words, on a call too, since you hold its key. A snippet's text is not sent: the AI model sees a placeholder, and Orble puts your text back before pasting. Polish again (Settings → Scribe history) sends a dictation whose polish fell back to the AI model once more, only when you click it, and only copies the result.
- Command Mode. Off by default. When you turn it on, set its key, select text and hold the key to say what to do with it, the text you selected (up to 8,000 characters) and what you said go to the AI model, as a dictation does; in Privacy Mode only to Ollama on your Mac. Nothing is read from a password field or while capture is paused for the app in front. If the selection holds something private, the AI model sees it. An answer to a question about it shows in the notch and in Recent, and joins your conversation (your question and the answer, never the selection), so the chat model sees it with your next questions and may keep a note of it in Orble's memory, as it can of anything you ask; the summary of your session written when you quit leaves it out. A change replaces the selection, and your app's Undo puts it back.
- Read aloud. When you set a read-aloud key (none by default) and press it, the text you selected, up to about two minutes of it, goes to ElevenLabs to be spoken if ElevenLabs is your voice; no AI model sees it and it is not saved. While it plays Orble does not listen, so the microphone's copy of your text never reaches AssemblyAI or a model; press the key again or the stop key to end it. Nothing is read from a password field, while capture is paused for the app in front, or on a muted Mac or a call.
- Describe the pointer. When you set a describe key (none by default) and press it, Orble reads what macOS's accessibility information says about the thing under the pointer (its name, kind, state, window or menu) on your Mac; no AI model sees it, no screenshot is taken and it is not saved. The words go to ElevenLabs to be spoken only if ElevenLabs is your voice, and to VoiceOver when VoiceOver is on. Of a password field only "password field" is said, and nothing is read while capture is paused for the app. Holding the key, with "Describe the area round the pointer" on (off by default), is a question: a picture of the screen round the pointer goes to the AI model, in Privacy Mode only to the one on your Mac.
- A knowledge pack draft. When you press Draft in Settings → App knowledge, Orble reads the menus and shortcuts of the app you were in (not its Window, History, Bookmarks or recent-items menus) and sends the app's name and those menu item names to the AI model, which suggests where things are and common tasks. No screenshot goes. Not in Privacy Mode (the draft is then the menus alone), and nothing is read while capture is paused, or for an app that pauses it. The draft is saved only if you press Save; your packs then go to the AI model with each question in their app.
- Speech models. When you click Download in Settings → Local-first, Orble fetches that whisper.cpp model from Hugging Face, where whisper.cpp publishes them: Hugging Face sees your Mac's address and which model, nothing else. The file is kept only if it matches the checksum published with it. Never in Privacy Mode: turn Private off to download one, then back on.
- Also: answer text to ElevenLabs; web searches, run by Anthropic (Claude only, on by
default); app, window and button names, guide goals and steps, and recent speech from anyone,
Orble included, to TypeSafe (and, only if you turn on the experimental
decision_visionsetting, a screenshot when a guide step you are typing or dragging through changes the screen, to check whether it is done); with Judge every question on (Settings → Brain, off by default), each question you type or say after the wake word, with the name of the app in front (no name while screen capture is paused, unless for a meeting app), to TypeSafe, to judge how much thought it needs; and at quit, the AI model summarizes the conversation into your memory notes.
Privacy Mode
With Private on (Settings), Orble uses only programs on your Mac: Ollama for answers; whisper.cpp, Apple's on-device recognition or VoiceStudio for listening; VoiceStudio, a speech server you run on this Mac (such as Kokoro-FastAPI) or the macOS voice for speaking. The local model can't draw on the board or search the web; what it points at is found by a model on your Mac too (the Pointing model in Settings → Local-first), or, with none set, by the names your apps give their buttons and menus.
Orble never sends requests to Ollama, VoiceStudio, a speech server or a local decision model through a web proxy, whatever your Mac's network settings say. Known gap: pasting a Claude or Gemini key in setup turns Privacy Mode off.
When you turn Privacy Mode off, nothing Orble saw or said under it goes to a cloud model. The
screenshots it took then, the moments it kept of the screen and a /display still are dropped.
What you asked and the local model answered stays on your Mac: Recent still shows it, and the
local model has it again the next time Privacy Mode is on, but no later question carries it to
Claude or Gemini, nor to the quick decision model or the note written at quit; the same goes for
what Orble counted from the screen then (learner.json: an error's label, a button it pointed
at). An answer of that time said again (Replay in Recent, "read the last answer again", "keep
going") is spoken by the macOS voice or a voice on your Mac, never by ElevenLabs. Words you said
while Privacy Mode was on stay on your Mac even when a model on your Mac finishes writing them
down after you turned it off: no cloud model answers them. When you said them to Orble (with the
wake word) and your chat model runs on your Mac (an Ollama model), the model on your Mac answers
them as it would in Privacy Mode, and that answer is kept as Privacy Mode's; otherwise Orble does
not answer them, and when you said them to Orble the island says to ask again. No later question
carries them, nor does the count of questions you asked in an app then, and their words that appear
as you speak (live captions) are never sent to a quick decision model off your Mac, which otherwise
judges whether you were talking to Orble over its voice. Turning Privacy Mode on or off cancels a Scribe
dictation, a Command Mode instruction and a held Talk key in flight: nothing of them is sent or
typed.
Attachments you
chose yourself are yours to keep: a dropped file or folder, a pasted image
and a clipboard chip stay attached, and go with your next question to the cloud model like any
attachment, and a link that waited unread is read then. Remove a chip with its ✕ first if it
should not go.
Updates
Once a day Orble asks GitHub, where its releases are published, whether there is a newer version: one request that carries nothing about you, though like any request GitHub sees your IP address. A new version downloads in the background and installs when you quit or click Restart now, never while Orble is answering or guiding you. It installs only if it carries Orble's signature. Turn the daily check off in Settings → Updates; Check now still works there. Privacy Mode makes no update check at all, and a copy of Orble you built yourself never checks.
Offline, hotel Wi-Fi and proxies
Orble follows your Mac's proxy settings (System Settings → Network → Proxies: the web proxies,
the SOCKS proxy, automatic proxy configuration and its bypass list) for everything it sends to the
internet, the connections that carry your voice to AssemblyAI and Orble's voice from ElevenLabs
included. With automatic proxy configuration on, macOS fetches the configuration script from
where those settings say (often a server on your organisation's network) and Orble asks it which
proxy to use for each service, telling it only the service's address, never what you asked. If the
script can't be reached or doesn't answer, Orble uses the other proxy settings, or connects
directly. A proxy that is itself reached over https:// (set in the HTTPS_PROXY environment
variable) can't carry those voice connections, so they don't start there rather than going
around it. Requests to Orble's local helpers on your Mac never go through a proxy.
When a request cannot connect, Orble checks once whether you are offline or behind a Wi-Fi
login page, by fetching http://captive.apple.com/hotspot-detect.html, the page Apple's own
Wi-Fi sign-in check uses. It sends no key and nothing about you, though like any request Apple
sees your IP address. It runs only after something failed, or when you ask while Orble thinks
you are offline; never on a timer, and never in Privacy Mode. Only that check decides you are
offline: a network that blocks one service (a work firewall, say) is not taken for no network.
While you are offline or at a login page Orble says so once, stops
trying the network instead of timing out, and picks up again when the connection returns.
When you step away
While your Mac is asleep, its screen is locked, or another user has switched in, Orble captures nothing (not even which windows are open), hears nothing, and sends nothing of yours: an answer in progress, a dictation and a guide stop, and the voice goes quiet. The daily update check above can still run then, and carries nothing about you either way. A screenshot that was being taken as you stepped away is thrown out. While only the displays are asleep, capture pauses too, though an answer already speaking finishes. Everything picks up again when you are back.
When Orble stops looking
Orble captures nothing, sends no screenshot and reads no screen text, while:
- you pause it: the pause button on the island's controls, Pause Screen Capture in the menu-bar menu, or Settings → Pauses. It stays paused, across restarts, until you turn it back on;
- another app is sharing your screen: Orble recognises Zoom's sharing bar, and also looks for Teams' sharing control bar and a browser's "is sharing your screen" notice, though those two are not yet confirmed to be seen on every version;
- a password manager is in front (1Password, Apple's Passwords, Keychain Access, Bitwarden, Dashlane, Keeper, KeePassXC and others), or a finance app (Quicken, MoneyMoney, Banktivity, TurboTax, Ledger Live and others), or a meeting app (Zoom, Teams, Webex, Google Meet, OBS);
- an app you added in Settings → Pauses is in front.
Each built-in app can be switched off in Settings → Pauses. The island says capture is paused and why. While paused for anything but a meeting app, Orble doesn't tell the model which app is in front either; for a meeting app it names the app but not its window, whose title can carry the meeting's name. Your question, recent conversation and memory still go with what you ask.
What Orble can't see coming: a password manager in a window behind the one you're using, a password manager's browser extension, banking in a browser tab (add your bank's site name in Settings → Pauses to cover it), and screen sharing or recording from any app not named above (a recording you start with ⌘⇧5, Slack, Webex, FaceTime, or someone viewing your Mac remotely). Such a window can be among the screenshots of the last ten minutes that a question about something earlier sends. Orble also takes up to three seconds to notice a share has started.
Meetings and calls
Capture pauses while a meeting app is in front, and resumes when you switch away, even mid-call. On a call Orble stays silent and answers only its wake word, the Talk key held while you speak, or typing, plus, while it is guiding you, the exact phrases "next", "continue" and "stop guide". Nothing it hears goes to AssemblyAI until the call ends: the wake word and what you say with the Talk key held are heard on your Mac (whisper.cpp, Apple dictation, or VoiceStudio on this Mac) when one is installed, and otherwise Orble says once that you can type instead. Other lines are not kept. Orble tells a call from another app using the mic (other than a recording app such as Logic Pro, Voice Memos or Audio Hijack), a Zoom or Google Meet call window, or the camera, and takes a second or two to notice one: speech in that moment can still go out. A recording app alone is not a call: while listening is on, what the mic hears as you record (a meeting in the room, an interview) goes to AssemblyAI as at any other time, unless Privacy Mode is on or you turn listening off.
With Stay quiet in a Focus on (Settings → General, off by default), Do Not Disturb or any Focus you share under System Settings → Focus → Focus status keeps Orble's voice and sounds quiet, and answers stay on screen. macOS asks you first, and tells Orble only that a Focus is on, never which one. Nothing about it leaves your Mac.
On your Mac
The explanation board, its animated diagrams, typeset equations and working, plotted curves, geometry constructions and chess positions included, and the short notes Orble writes on your page beside your own work are drawn on your Mac from the answer: nothing new leaves your Mac for them, and the model's words are never run as a program. An equation is read by Orble's own code from a fixed set of LaTeX commands, never by a renderer that runs what it is given; a curve's formula by Orble's own reader of a fixed set of functions, which computes every point itself; a construction by Orble's own geometry from a fixed set of steps. A note is never written beside a password field or while screen capture is paused for an app it hides, and it goes away with the rest of the drawing. For two minutes after a board's last sentence each question you ask also carries that board, and any notes still on your page, to your chat model so that you can ask for a change: what a chat model wrote earlier in the conversation, never written to disk, and dropped with the turn's other context by Forget this session, a workspace switch, Privacy Mode turned on or off, or choosing a chat model of another provider. If your chat model fails and Orble's automatic fallback answers, that model gets it too, as it gets the rest of the conversation.
In ~/Library/Application Support/orble/:
- config.json: settings, and the version that last ran (for What's new). Quit Orble, then delete it to reset.
- secrets.json: API keys, in plain text any program running as you can read (Keychain storage is planned). Remove them in Settings, or quit and delete the file.
- memory.md: notes about you, each with the start (up to 80 characters) of the question that led to it. The notes, those words included, go with every question you ask, to the AI model too. Edit or delete it.
- learner.json: what Orble counted of your learning: the apps you ask about, what it guided you
through, explained or pointed to there, errors that came back (as short labels, never the screen's
text), how often you asked for more or less detail, the goals you did again on your own after a
guide and how each try ended (unaided, with hints, or left), and one line for each session, kept when you
quit: its goals and how each ended, what was explained, and how many questions went unanswered
(never their words). A short summary for the app in front goes with each question, to the AI
model too; the session lines do not. Nothing is counted while capture is paused for a private
app; Forget this session takes back what the session added. See, edit or clear it in Settings →
Your data, or turn Count what Orble shows you off. A
learner.jsonOrble cannot read (after a hand edit, or a newer Orble's) is left as it is, and Clear all does not remove it: delete the file by hand to start again. - dictionary.json: Scribe's words and your snippets. Remove them in Settings → Dictionary. A snippet's text is never sent anywhere except into the field you paste it into; keep passwords out of snippets, since the file is plain text.
- diag.log, diag.log.1: diagnostics. The default, Events only, keeps that a question, reply or tool call happened and how long it was, not the words; Full (Settings → Help & diagnostics) keeps your questions and Orble's replies, and Off keeps none of it. Every level keeps app names. Delete the files to clear them. Settings → Help & diagnostics shows the newest lines while you look at that section (nothing at Off), and its Copy puts the lines shown on your clipboard, keys and email addresses masked; nothing is sent.
- crashes/: only if you turn on Keep crash reports on this Mac (Settings → Help & diagnostics; off by default). When part of Orble fails it writes what failed and where in its code (the failure's own message as the diagnostics level allows: whole at Full, its length at Events), its version, your macOS version and the last 40 lines of diag.log (so at Full, questions and replies) into this folder, keys and email addresses masked; the newest five are kept. At the next launch the island offers to add the newest to a feedback report, which you read and edit before your mail app sends it, or to delete them. Turning the setting off deletes them; an export includes them only with the log. Whether it is on or not, a failure writes one line to diag.log.
- feedback_log.md: notes you save, and a line for each report you send by email (the date, your words and which parts went). knowledge/: the app knowledge packs you wrote or saved (the built-in ones are part of the app).
- Notification Center (macOS's, not Orble's folder): only if you turn on Notify me when an answer is out of sight (Settings → General). The first line of an answer you did not hear, finished while the island was hidden or you were on another display. macOS may show it on the lock screen. Orble keeps one at a time, and removes it when you turn the switch off or Forget this session.
- recent.json: only if you turn on Keep Recent answers after quitting (Settings → Your data; off by default). The questions and answers in Recent, at most about 1 MB, shown again at the next launch. They stay on this Mac and the AI model does not see them. Turning the setting off, Forget this session, Clear conversation and Recent's Clear all delete it.
- scribe_history.json: only if you turn on Keep Scribe history after quitting (Settings → Scribe history; off by default). Your last 50 dictations: what Scribe heard, what it typed or copied (a snippet's text included), the app, the time and whether the polish fell back, with how many words you dictated each day for a week; and Command Mode's instructions once heard, with the new text, the answer or why nothing changed. The text you selected is not kept as such, but the new text or the answer is made from it and can repeat it, a password or key in it included. Without it they stay in memory until you quit. The text before your cursor that Scribe's polish was shown is never written. Turning the setting off, Forget this session and Clear all delete it.
- spend.json: this month's estimated cost of the model calls made with your own keys, as one total and a count of calls (no words, no questions). Settings → Help & diagnostics shows it, with an optional alert. It starts again each month and never leaves your Mac.
- workspaces.json and workspaces/: only once you make a workspace (
/workspaceand a name in the island, or Settings → Your data). The list holds each workspace's name and which one you are in; each workspace's folder holds its own memory.md and recent.json. The notes and conversation that go with a question are the current workspace's alone, so one project's notes never go with another's questions. The files at the top of the folder are the Default workspace's. Orble never switches workspace by itself. Deleting a workspace in Settings deletes its folder; Forget this session clears every workspace's conversation and kept Recent answers. What Orble counted (learner.json), your settings, keys and dictionary are shared by all. - usage.json: what Orble used each day for the last 90 days, as counts: model calls and tokens per provider, listening minutes, characters spoken, decision calls and the calls they saved, with their estimated cost (no words, no questions, no app names). Settings → Usage shows it. Forget this session leaves it, since it holds nothing of the conversation; it never leaves your Mac.
- orble.lock: the process number of the Orble running now, and nothing else. Opening Orble while another copy runs closes that copy first (it is asked to quit, and stopped if it has not after 4 seconds), so only one listens, speaks and answers. Orble never stops a program that is not Orble.
Outside that folder, Open at login (Settings, or the menu-bar menu; off until you turn it on)
writes ~/Library/LaunchAgents/Orble.plist, which only tells macOS to start Orble when you log
in. Turn it off and the file is removed.
On-device listening uses a temporary file per phrase, and several for a phrase while words show as you speak (with whisper.cpp, on by default), each normally deleted once transcribed. Quitting clears the conversation, screen history and attachments; Recent answers are the same in-memory conversation, never written to disk unless you keep them (recent.json above). Recent's Export writes the answers it shows to one Markdown file in Downloads, with anything that looks like a key or an e-mail address masked.
Settings → Your data shows all of this. You can see every file above and its size, edit or delete each note about you (or all of them), and Forget this session to clear the conversation, what the microphone heard, the screen history, a held mark and attached files at once. Export writes a new folder to Downloads with a README: your settings, notes, dictionary, saved feedback and the app notes you wrote, and the diagnostics log only if you tick it. It holds no API keys: they are never exported, not even hidden, and anything in your notes or feedback that looks like a key or an e-mail address is masked. Delete everything removes the whole folder above, your keys included, switches off Open at login, and restarts Orble as new. Export conversation (under Help & diagnostics) writes the conversation as a text file to Downloads. Files you export are copies on your disk, outside Orble's folder; Orble won't delete them.
Send feedback (Settings → Help & diagnostics, the menu-bar menu's Send Feedback…, or
/feedback in the composer) drafts a report: your words, Orble's version and your macOS, the
permissions and which keys are set (never a key), which engines it would listen and speak with and
whether the network seemed up, the last 200 lines of the diagnostics log, and
your settings without any key. You see every part in full and can edit or empty it first. Orble
sends nothing itself: your mail app opens with the report, and it goes only if you press Send there.
What does not fit in the mail is put on your clipboard for you to paste.
Permissions
Screen Recording lets Orble see your screen, Microphone hear you, and Accessibility find buttons, read an error's exact text, paste for Scribe and, with pointer tint on, nudge the pointer by a point. Speech Recognition is only for Apple's on-device dictation. Focus is asked for only when you turn on Stay quiet in a Focus, and Notifications only when you turn on Notify me when an answer is out of sight.
Orble never types or clicks for you. The one keystroke it sends is Scribe's paste of your dictation, only after you release or tap its key (with Command Mode on, the same paste carries the change you asked for to the text you selected, only after you release its key, and only if that text is still selected); a dictation longer than five minutes pauses and waits for the key, and the notch shows it waiting until you paste or discard it. It does not record at all when a field macOS marks as a password field has focus as you press the key, and does not type into one. It restores your clipboard after a paste; when it only copies, the dictation stays there. Both are marked so clipboard history apps that follow the common convention leave them out. With pointer tint on (off by default), Orble nudges the pointer by a point and back to refresh its colour.
Planned
A managed service will make keys optional. If you choose it, your AI requests, screenshots included, will pass through Orble's servers; this page will change first. Crash reports will stay off unless you turn them on.