Companion app for macOS
Sybil Terminal
Your Mac, reachable from your glasses. Sybil Terminal is a small app that runs on your Mac and lets SybilSight use what is already signed in there — your AI command line tools, your messages, your mail, your calendar — without any of it going through a cloud service of ours.
Requires macOS 26 or newer on Apple silicon. Signed and notarized by AM Guru, LLC. SHA-256
Set it up
From download to paired in a few minutes
- Install the app Open the downloaded disk image and drag Sybil Terminal into your Applications folder, then launch it. The app is notarized, so macOS opens it without an unidentified-developer warning. From Applications it also keeps itself current: it checks this site for newer builds and installs them only after the download matches its published checksum, Developer ID signature, and notarization ticket. Choose daily, weekly, or manual checks in the app's Updates panel.
-
Pair your phone
The app window shows a QR code. Scan it with the iPhone Camera app and SybilSight pairs itself — or use Copy Pairing Link, from the app window or the menu bar item, and open that link on the iPhone. To pair by hand instead, open Apps → Terminal in SybilSight and enter the hostname, port
3456, and the bridge token shown in the app window. - Grant the permissions you want to use Each feature asks macOS for its own access. Skip anything you do not need — the rest keeps working without it.
-
Sign in to an AI provider, if you want one
Sybil Terminal uses the command line tools already installed and signed in on your Mac —
claude,codex,grok, Google's Antigravity CLI, or thefmtool that comes with Apple Intelligence on macOS 27. Any one of them is enough. It discovers them at launch; press Refresh Providers after installing one.
AI Listener
The Mac is where the ambient listener does its thinking
When you turn on the AI Listener in SybilSight and this Mac is paired, the listener stops being limited to what the phone knows. It can look things up in your calendar, contacts, reminders, and messages, and it can hand harder questions to whichever AI provider is next in your order.
- Each ambient turn opens its own throwaway session, so nothing the listener asks shows up in — or interferes with — the conversation you have open in Apps → Terminal.
- Lookups go to your own calendar, contacts, reminders, and messages first. Only what those cannot answer reaches a provider.
- The AI Listener panel in the app window lists recent plans, lookups, captures, and anything you aborted — a plain record of what the listener has been doing.
- Anything it wants to act on becomes a follow-up you have to approve. Accept or Reject them in the app window, or from the glasses with the ring: single tap approves, double tap rejects, triple tap aborts.
- Accepting is what performs the action — creating the reminder or event, sending the message or mail from this Mac. Spoken names are matched against your contacts and recent conversations before anything sends.
- Follow-ups are also mirrored into a Sybil Follow-ups list in Reminders, so nothing is stranded inside the app.
The listener's Mac-side lookups and any message or mail it sends need this app running and the matching macOS grants below. Without them the listener still works on the phone — it just has less to work with.
AI providers
Use whichever you already pay for
Sybil Terminal never asks for an API key. It looks for provider command line tools on your Mac, checks whether each one is signed in, and offers the ones that are. These power Terminal chat on the glasses, hold-to-talk voice relay, AI Listener lookups, and Assistant turns that need a real computer.
If you use an unrestricted variant of a coding agent — claude-yolo, codex-yolo, and the like — it appears as its own separate provider. Installing a normal tool never quietly exposes the unrestricted mode.
Priority, meters, and fallback
The app's Provider priority & usage panel lets you drag the installed providers into the order you want and switch off any you would rather it never reach for. Each row shows roughly how much of that provider's allowance is left and when it resets, read from occasional background checks rather than a live query on every request.
- A request that names a provider gets it, unless that one is out of allowance.
- Otherwise the Mac walks your list and takes the first provider that is installed and has room left.
- A rate-limit error marks that provider used up straight away, so the next request goes elsewhere instead of failing again. When the reset time passes, it comes back without waiting for the next check.
- Light work — an AI Listener lookup, a fact check — is sent to the cheaper model in that provider's family, so ambient use does not eat the allowance you wanted for real work.
- Refresh usage re-reads every meter on demand.
macOS permissions
What each feature asks for, and why
macOS grants these individually and never tells an app when you change one, so the app re-checks every time you open its Messages & Mail panel. Everything except Full Disk Access is a prompt you answer once.
Full Disk Access is the only one macOS will not prompt for. Until you grant it, Messages shows an explanation instead of your conversations — everything else is unaffected.
Away from home
Set up Tailscale so it works anywhere
On your own Wi-Fi, your phone can reach your Mac directly and nothing else is needed. The moment you leave — a coffee shop, a hotel, cellular — that stops being true, because your home network is not reachable from the outside.
Tailscale fixes this properly. It builds a small private network between your own devices, encrypted end to end, so your phone reaches your Mac by a stable address from anywhere. It is free for personal use.
- Install Tailscale on the Mac Get it from tailscale.com/download and sign in.
- Install Tailscale on the iPhone From the App Store, signed in to the same account. Both devices now appear in the same private network.
-
Pair using the Mac's Tailscale name
In the Tailscale app on the Mac, copy the machine name (it looks like
macbook-pro.tailnet-name.ts.net) or its100.x.y.zaddress. Enter that as the host in SybilSight, with port3456and the same bridge token. - Leave Tailscale running On both devices. The connection re-establishes itself when you change networks, so pairing survives moving between Wi-Fi and cellular.
Do not forward port 3456 through your router. Sybil Terminal is built for a network you trust or a Tailscale tunnel — not the open internet. Forwarding the port exposes your Mac's messages and mail to anyone who finds it.
How it stays private
Your data does not go anywhere else
- The Mac serves your phone directly. There is no SybilSight server in the middle, no account to create, and nothing is uploaded to us.
- Every request carries a bearer token generated on first launch and kept in the macOS Keychain. Requests without it are refused.
- Media captions are transcribed on the Mac, and audio offload runs the speech model on the Mac. Neither sends audio off your devices.
- Audio offload is off until you turn it on, so a Mac used only as an agent bridge never receives audio from the phone.
- The one thing that does leave is a prompt you send to a provider — Claude, Codex, Grok, or Gemini reach their own vendor exactly as they do when you use them in a terminal, under your own account and their terms. Apple Intelligence is the exception: it answers on the Mac. Nothing else — your messages, mail, calendar, contacts, or captions — is sent to a provider unless a prompt you approved includes it.
- The AI Listener acts only on follow-ups you accept, so nothing is sent or created on your behalf without a tap.
- Revoke access at any time by quitting the app, or by regenerating its token.
If something is not working
Common fixes
- The phone cannot find the Mac. Confirm both devices are on the same network, or set up Tailscale as above. The Mac must be awake — check Energy Saver so it does not sleep while you rely on it.
- Messages is empty. Full Disk Access has not been granted, or the app was not relaunched after granting it. The app's Messages & Mail panel says which.
- Sending a message or mail fails. macOS asked for Automation access and it was declined. Reset the prompt with
tccutil reset AppleEventsin Terminal, then try again. - No provider appears. Install and sign in to one of the command line tools above, then press Refresh Providers. If a tool lives somewhere unusual, point the app at it with the matching environment variable —
SYBIL_TERMINAL_CLAUDE_BIN,SYBIL_TERMINAL_CODEX_BIN,SYBIL_TERMINAL_GROK_BIN,SYBIL_TERMINAL_AGY_BIN, orSYBIL_TERMINAL_FM_BIN. - Gemini is missing. Google retired
gemini-cliin favour of the Antigravity CLI, so installagy. An oldgeminibinary is still used, but only ifagyis absent. - A provider shows as maxed out. Its allowance is spent until the reset time on that row. Put another provider above it in the priority list and the Mac will use that one in the meantime. Refresh usage re-reads the meters if you think one is stale.
- Answers come from the wrong provider. Routing follows the priority order, skipping anything maxed out or switched off — so a provider that is out of allowance is skipped even when the phone asked for it by name.
- The AI Listener has nothing to show. Turn the listener on in Apps → AI Listener on the phone, confirm this Mac is still paired, and check that Calendar, Reminders, and Contacts are granted — its lookups need them.
- Captions stay blank. Media captions transcribe the window you pick in the macOS picker — pick the one that is actually playing audio, and check Screen & System Audio Recording is allowed.
- It is not updating itself. Only a copy running from your Applications folder can replace itself; anywhere else it tells you a new version exists and leaves the rest to you. Check for Updates… in the app menu or the menu bar item runs a check immediately.