Beehive Cluster (Super AI Workspace) Support and Privacy Policy
Last updated: 2026-10-21
Support
For help with Beehive Cluster, bug reports, feature requests, or privacy questions, please use one of the following support channels:
- GitHub Issues: https://github.com/gallifre/gallifre-privacy/issues
- Email: starlight.ripple@gmail.com
Please include “Beehive Cluster” in the issue title or email subject so the request can be routed correctly.
Please do not post API keys, bot tokens, passwords, access keys, pairing codes, private conversations or personal documents in a public GitHub issue. If a bug needs a diagnostics file, send it by email instead (see “Diagnostics and reports” below).
Privacy Policy
Beehive Cluster (Super AI Workspace) is a macOS desktop AI workspace. Super AI Workspace is the app’s secondary name and its earlier name; the two names mean the same app. It runs open language models on your Mac and can also talk to AI services that you choose and connect yourself with your own account or API key.
In short: the developer of Beehive Cluster does not collect any data about you. There is no account, no analytics, no advertising, no tracking and no crash reporting to the developer. Your conversations, memory, documents and settings stay on your Mac. The app sends data off your Mac only to services that you choose or to a machine you point it at, and only after you have allowed it or switched the feature on (see “Third-party services you choose”).
We do not collect any information. Specifically, Beehive Cluster does not collect account information (there are no accounts), payment information (the app contains no in-app purchase and no payment flow), contact lists, photos, location, advertising identifiers or analytics identifiers, and it contains no third-party advertising, analytics or tracking SDK. The app does not run a server of its own and does not contact any server operated by the developer. The app does not check for updates by itself; updates come through the Mac App Store.
The developer receives information only if you choose to send it, for example when you write to the support email address or open a GitHub issue. The “Report” and “Contact us” buttons in the app only open a pre-written email in your own mail program; nothing is sent until you read it and send it yourself.
Apple may provide the developer with aggregated, non-identifying statistics about the app, or with crash and usage information from users who have chosen to share such data with app developers in their Apple system settings. That is Apple’s service under Apple’s own privacy policy and is not part of the app.
What the Developer Does Not Collect
To be explicit, the developer does not collect, receive, store or have access to any of the following, whichever features you use:
- your conversations, prompts, replies, memory notes, library items, documents, pictures, recordings or settings;
- your API keys, bot tokens, access keys, pairing codes or passwords;
- the files, folders, web addresses or search words that you or your coding tools read through the app;
- the token counts, “Saved today” figures, receipts, request logs, consistency records, audit logs or avatars that the app keeps on your Mac;
- camera pictures, microphone audio, device readings or smart-home data;
- crash reports or diagnostics (unless you attach a diagnostics file to an email yourself).
When you use a service you chose (an AI provider, Telegram, ntfy, a web page, a speech or video service, a model download host, and so on), that service receives the data described in “Third-party services you choose” under its own privacy policy and terms. The developer is not a party to that exchange and cannot see or control it.
What Is Stored on Your Mac
Beehive Cluster stores its data inside the app’s sandbox container on your Mac (the standard macOS location for sandboxed apps). It does not store this data on any server. This includes:
- Conversations, messages, drafts, memory notes, library items and settings, in one local database.
- Files the app makes for you: generated images, documents, audio and other results; imported documents; isolated working copies for coding tasks.
- Language models you download (for example for the built-in engine, speech recognition and image generation).
- Your API keys, bot tokens, device passwords, the local interface access key and the secret that signs remote approval answers, in the macOS Keychain on your Mac. They are not written to files or logs. The approval-bot and ntfy tokens, like the chat bot token, are kept for this device only (they are not synchronised to other devices).
- Logs and crash reports, kept only on your Mac. Helper-engine logs are rotated at 10 MB. Crash reports stay on your disk (at most 10 are kept, none older than 90 days) and are never uploaded.
- A log of device actions (which device, which action, who asked, the reason that was given and the outcome), kept for 180 days and then removed automatically.
- Copies of the database made before an app upgrade, kept for at most 7 days.
- Avatars: if you give an AI member, a role, your chat bot or yourself a picture, an emoji or initials as an avatar, it is stored in the same local database. A picture is read in a bounded way and kept as a clean square PNG with no embedded metadata (such as camera, location or date information) plus a small thumbnail. Avatars are never uploaded, never put into a prompt and never sent to a model. A picture leaves the app only if you export it yourself through the system Save panel. Resetting an avatar or deleting its owner deletes it.
- Memory: memory notes you confirmed (and ones you let the app save automatically, see below) are stored in the local database. Using saved memories in chats is on by default: each reply may be written with the pinned and the most relevant few of them (a few hundred estimated tokens at most, fewer for cloud models), a chip under the reply shows “Used N memories”, and you can switch the use off for everything in Settings > Context & memory, or skip it for one conversation or one turn. The memories are sent only to the model of that conversation, and to a cloud model only under the cloud consent described below.
- Assistant personality (Settings > Assistant personality): the name you give the assistant and the tone texts you write are stored in the local database. With a model on your Mac they go nowhere. With a cloud model they are sent as part of the message (a short block that holds only that name and tone text), under the same consent as the rest of the message. They are used in the main chat only.
- Personality profile (the 测一测 pages, shown in the Chinese interface only): it reads your own messages in your conversations, including ChatGPT or Claude history you imported, scores and summarizes them, and stores short excerpts, the scores and any interpretation text in the local database. This is done on this Mac only: the scoring engine is the built-in engine, a model on this Mac or a decision model whose address is this Mac itself; the optional written interpretation uses a chat model on this Mac only. No device on your network, no server you added and no cloud service is ever asked. The one thing that can leave this Mac is the optional switch “Adapt reply style” (off by default): it adds a short fixed-phrase style hint, with no chat content, to each turn, so the model of that conversation receives it, a cloud model included, under the usual consent; you can read the hint on the page and in the memory chip under the reply. You can correct, exclude conversations from, or wipe the profile; “Delete all local data” removes it.
- The default project: on a fresh install the app creates one project called “Local Computer” (its name follows the interface language) and one empty conversation, once. The project is a folder inside the app’s own data folder in the sandbox container, not a folder in your Documents, Desktop or iCloud Drive, and the app adds nothing to it by itself. If you remove the project, the app does not create it again. You can add folders of your own as projects at any time.
- Audio and video you add to a chat: the app turns the speech into text before anything is sent: on your Mac (Apple’s on-device recognition, a Whisper model you downloaded or a ggml model file you chose yourself), or on a speech server that you added yourself under Settings > Speech to text. The audio is not sent to a cloud service. If your own speech server runs on another device (on your local network, your Tailscale network, or a host you saved as a private server), that device receives the audio; see “Your own speech-to-text server” below. The app’s working copy of the file is deleted as soon as the text exists (or if the step fails or you remove the attachment). Only the resulting text joins your message; if you then send it to a cloud model, it goes under the same destination consent as any other text, with a receipt. If no suitable engine is available, the app says so and sends nothing.
- If you use the optional local interface for your own coding tools (see “Local Interface, Connected Coding Tools and Reading Files” below):
- a local request log (time, which rule or tool, outcome, the tool’s name as it introduced itself, estimated token counts; no prompts or replies and no file contents; the newest 1,000 rows, which you can clear in the app). When a connected tool asks the app to read a web page, the log line also holds the site name and the web address as it was asked for (cut to 200 characters), so that you can see what was fetched;
- a small daily tally for the “Saved today” figure and the weekly receipts: a day number, the kind of event, a count and a sum of estimated tokens, and, as plain preferences, how you pay for your coding tool (subscription, API or not set) and the name of the model whose price you saved. It holds no names, paths, commands or contents. Clearing the request log does not clear this tally, and the tally does not expire; “Delete all local data” removes it;
- for each coding agent you connect: a label, the creation and last-seen times, and a SHA-256 hash of its access key. The key itself is not kept by the app (see below for where the connected tool keeps its copy). A one-time pairing code exists only as a hash in the app’s memory;
- short summaries of project files or documents that a model on your Mac wrote for your coding tool (a “project map” and a “document cache”, each stored with the file’s path and a fingerprint of its content). They can be cleared in the app and are never sent anywhere; they stay in the database after you stop authorizing a folder until you clear them;
- if you point the app at a folder of exported chats or mail, a full-text index of those messages (up to 200,000 messages and 96 MB), in the same local database. Messages are personal data: you can forget the index per folder or entirely in the app; the original files are never changed. Removing a folder from the authorized list does not delete its index, so forget it in the same card;
- in memory only, never written to disk: the sessions panel (context size, turn counts, the time a turn ended and, for test and build commands only, a clipped command line that is cleared when you send your next prompt), the full text of long test or build output when you switch on output compression (the last 12 outputs), jobs left for Codex (until you quit, 2 hours if nobody opened one, 24 hours if opened), and transcripts of recordings (about half an hour; a button clears them);
- key pictures taken from a video for your own Codex are written to a folder inside the app’s data folder that only you can read, and are deleted after about an hour or by the same button;
- if you open a job in Codex, the answer Codex writes goes into a “.saiw-codex” folder inside your project, on your Mac; you can delete it.
- The execution consistency record (optional, see “Settings > Permissions”): a local record of cases where a tool call of the app’s built-in agent, or a call that reached the app’s local MCP interface, was found to differ from what the app handed to the part that carries it out. It is kept on your Mac only (no network, no model, no analytics). The default mode only records. A record holds the time, which path it came through (built-in agent or MCP), the tool name, the kind of action, the grade, the result (recorded, refused or run as prepared), two short fingerprints, and, for each difference, a field name, a code and a short escaped excerpt of the text that differs (up to 48 characters around the first difference). Common API key, token, password, private-key and authorization formats are masked, but this masking is best effort and cannot recognise every format, so look over a report before you share it. An address is stored without its query part and JSON arguments are stored only as a size. No whole file is stored. The newest 500 rows are kept. You can switch the check off, copy the report, or clear the record at any time; “Delete all local data” removes it too. It covers only the app’s own paths, not what other programs do on their side.
- Optional camera pictures: if, and only if, you set a camera “watch” to save matching pictures, those pictures are kept for the number of days you choose (1 to 30, default 7) and then deleted. Otherwise camera images are not saved.
- For the optional Telegram chatbot: a local record of paired people, limits, and an activity log with the time, the last 4 characters of the chat id, the length of the message and the outcome, but no message text. The log is kept for 90 days and then removed automatically. Message text is stored as an ordinary conversation only while “Save conversations” is on (it is on by default; you can turn it off or delete those conversations).
- For optional remote approval (Telegram, ntfy or the approval page): your choices, the topics and server address for ntfy, the paired chat, and the paired browsers. The requests that are waiting for an answer live in memory only and expire after 5 minutes; their results are written to the device action log above.
Usage records of what a reply cost (model, number of tokens and estimated cost, never the text of the reply) are kept on your Mac for 400 days (about 13 months) and then removed automatically. While a reply is being written, the temporary fragments of it are kept only until the reply ends. Settings > Privacy & data shows these periods next to the storage list.
Your conversations and settings are included in a normal Time Machine backup of your Mac. The language models you download can be downloaded again, so the app excludes them from Time Machine backups.
Saving memories automatically. By default, every memory the app is asked to remember waits for your confirmation. If you turn on “Save automatically what I say myself” in Settings > Context & memory (after a one-time explanation), the app may save a short preference or fact without asking, but only when it can verify that the words come from a short message you typed yourself in the app’s own message box. Short text you paste into your own message counts as typed by you. The app always asks about health, money, ID numbers, precise addresses and contact details, children, sexual life, religion or politics and legal matters (a best-effort check that can miss things), and it never stores passwords or keys. Automatic saving is limited to what you typed, off by default, undoable (a notice with Undo, a “Recently saved automatically” list with delete and clear all, and a weekly in-app reminder) and stored only on your Mac: the saving itself sends nothing anywhere, and no analytics are used. The memories and a small log stay on your Mac. The log holds the time, a short excerpt of your own words, a fingerprint of the memory text, and a set of its words; to tell which messages you typed yourself, the app also keeps the ids (not the text) of the messages you typed in the message box. Undoing or deleting a memory removes your quoted words at once, and the rest of that log entry is dropped after 90 days. Like any memory you keep, a memory is sent to the model you are chatting with when it is relevant (memory use is on by default and can be switched off), under the same consent rules as before. Tools connected through the local interface can only suggest memories; those always wait for your confirmation. “Delete all local data” removes the memories and the log.
Third-Party Services You Choose
Beehive Cluster sends data to a third party only when you configure or start a feature that needs one. Before the first use of each destination, the app shows a consent card that names the destination and asks you to allow it. Nothing is sent to that destination before you allow it. You can see every destination you allowed, and revoke any of them, in Settings > Privacy & data (for an AI service also in its connection under Settings > APIs & connections). After you revoke one, the app asks again before its next use. A few actions are your own deliberate act and have their own notice instead of a consent card: pressing Download for a model, pressing Stop on a rented machine that is billing you, and sites you allow one by one for page reading (all described below).
The kinds of destination are:
- AI service providers that you add with your own API key (for example OpenAI, Anthropic, Google Gemini, DeepSeek, Moonshot, Alibaba Model Studio, Zhipu, MiniMax, OpenRouter, xAI, SiliconFlow, Groq, or any compatible address you type in). What is sent: your messages, the conversation context needed for the reply, attached files or images you add to the message, your assistant name and tone text if you set them, the saved memories recalled for that reply (memory use is on by default, see “What Is Stored on Your Mac”), and tool results that are part of the request. Your key is sent only to that provider.
- Ollama cloud models (ollama.com). The built-in engine itself is started with Ollama’s cloud connection disabled. Only if you choose a cloud model, the request goes to ollama.com, after you allow it.
- A rented GPU server or a server you rent from a cloud provider (for example RunPod), if you use that experimental feature. Conversation data sent to such a server needs your consent first. To show, bill and stop your rented machine, the app contacts RunPod’s management interface (api.runpod.io) every 60 seconds while the feature is on, but only after you saved your RunPod key and allowed that address in the RunPod section; without both, the app does not check RunPod. The one exception is the Stop button for a pod that is running: pressing it contacts RunPod even if you have not allowed the address, so that a machine that is billing you can always be ended. These checks carry only your RunPod key and the pod ids, never a conversation. Revoke the address in Settings > Privacy & data and the checks stop; this also turns off the automatic stop and the cost booking for a pod that is still running, and the app says so when you revoke.
- Servers of your own that you add under “My servers” (or a ComfyUI service of your own): when you add one, press “Detect again”, or keep it saved (the app checks from time to time whether it is online), the app sends a few short test requests to the address you typed, with the access key you saved for that server if there is one, to find out which services it offers. An address on your own Mac, your home network or your Tailscale network is your own device: it does not ask for a consent card, and for such an address only (never for a server on the internet) the app also tries a few well-known ports on that same machine. A server at an internet address is a third party: the app asks you first, once for each server address, with a card that says that server will receive a test request and the key you saved for it, and until you allow it nothing is sent to it, not even a status check and not the key. The permission is one permission per server address: the same permission also covers the conversations and images you later send to that server, and the app uses the key you saved for a server only for that server. After you allow it, the request log keeps a line for the test requests that went to it (which server, how many requests, whether the key was sent, never the key itself); the status checks repeat about every half minute, so for those the log keeps one line per server per hour that says how many checks it covers. You can take the permission back in Settings > APIs & connections, and the app then stops sending anything to that server: no test request, no key, no conversation, and no image or ComfyUI request that was set up earlier. For an address of your own network that is a name rather than a number (such as nas.local), the app first asks your network’s name service for it, to see whether it is really on your network. Conversations sent to a server on your Mac, your home network or your Tailscale network do not ask for a consent card either; a server that is billed by the hour, or that is at an internet address, needs your consent before a conversation is sent, like any rented server.
- Telegram, if you turn on the chatbot or remote approval: your messages to your own bot, the bot’s replies and approval requests pass through Telegram’s servers (api.telegram.org). An approval request names the device, the action, the reason that was given (marked as written by the AI), the rule and the reading. If you allow the chatbot to look things up in your memory or in folders you chose for it (both off by default), text found there can appear in the bot’s reply and therefore passes through Telegram; those lookups run only in a private chat and only when the answering model is on your Mac, and a forwarded message never triggers a lookup. Telegram bot chats are not end-to-end encrypted. Do not send passwords or identity numbers through the bot. Deleting a conversation in the app does not delete it from Telegram. Approval answers from Telegram carry a signature made with a secret that stays on your Mac, are accepted once, only from the chat you paired, and only before the request expires (5 minutes). Actions on the “Never by AI” list (for example unlocking a door) can be approved from the phone only if you switch off the setting “Approve “Never by AI” actions such as unlocking only on this Mac” in the remote approval settings; that setting is on by default.
- ntfy (ntfy.sh, or a server you run), if you turn on ntfy approval notifications. The message only says what kind of device and action is waiting, its level and until when; it contains no device name, room or reason. If you also turned on the approval page, the message carries a link to it, which points to your own private address. Whoever operates the ntfy server (or learns the random topic name) can read these messages, including, for requests where the app offers an Approve button, the signed Approve answer that the button sends, and could send it again until the request expires (5 minutes). For that reason the app never offers Approve over ntfy for “Never by AI” actions, or for door locks, windows, garage doors, alarms and hazardous scenes (you can only deny there), and it refuses such an answer if it arrives. If you do not trust the ntfy server, use a server you run yourself or do not turn this on.
- Home automation and device services you connect: Home Assistant, MQTT brokers, Shelly, Tasmota, Philips Hue, LoRaWAN servers and a vendor cloud (SwitchBot) are normally reached on your own network. A device address outside your home network, or a cloud service, needs your consent first. Camera pictures or device states reach a cloud AI model only if you separately allowed that specific model.
- Remote screen: if you open a remote screen of another computer in the app, the app connects only to a Mac you paired with or to a Tailscale address. What you see and type goes to that computer. If you link a conversation to that screen, a picture of the screen can be handed to the model of that conversation; if that model is a cloud model, this needs your consent for that exact model, which is checked again at each capture.
- Web search, if you add your own key for Tavily or Brave Search, or your own SearXNG address: the search words are sent to that service after you allow it.
- Web pages: there are three ways, and in each the site you read sees your IP address, the address requested and that the request comes from this app, like any web visit (your network’s name service also sees the site name). (1) When an AI model in a chat asks to read a web page, the app asks you to approve it (the card says that the site will see your IP address), then fetches only public https pages. (2) When your own coding tool asks the app to read a page through the optional local interface, the page is fetched only from a site you allowed one by one in the settings (which you can remove again); only https on the standard port, no addresses inside a network, no cookies, no login and no data from your files or conversations are sent, and each fetch leaves a receipt in the answer and a line in the request log. (3) If you switch on delegated tasks (off by default), the app’s own agent, working for a coding tool, reads web pages the same way as in (2): through the same page reader and the same list of sites you allowed one by one. A site you have not allowed is not contacted at all; it waits in the settings until you press Allow, and the task is only told that it needs your permission for that site. Page watches that a coding tool can set up follow the same rule, and every fetch leaves a line in the request log. After a task has read your files or memory, it may only open addresses of a plain shape (no query string, no long paths) so that text from your files is not carried out in an address. Delegated tasks use a model on your Mac unless you switch on a separate setting that lets them use cloud models; then the task and anything it read go to that provider after the usual consent card.
- Remote MCP servers that you add: the tool calls and their contents go to that server after you allow its host. If such a server asks you to sign in, the sign-in happens in your browser through a short-lived listener on your Mac, and the resulting token is kept in your Keychain.
- Connectors you describe yourself (a custom HTTP API, for example an image or video service): the prompt, and an image if the connector uses one, is sent to the address you entered, with the key you saved, after you allow that address. A connector that charges per call asks before each call.
- Decision services, a list of services that you add yourself under Settings (the “decision models” list): each entry is a System One server, an OpenAI-compatible chat endpoint or a classification endpoint (“classification-v1”), on this Mac, on a device of yours, or at an internet address. The question and the material of a decision go to the entry that answers (the built-in engine on your Mac is asked first and sends nothing). An entry on this Mac or on a device of yours needs no consent card. An entry at an internet address, or on a machine you rent, is a third party: it needs https, your consent when you switch it on (revocable in Settings > Privacy & data), and it leaves a receipt for each request. An access key is never sent over plain http to another machine. The personality profile never uses any entry that is not on this Mac.
- Your own speech-to-text server (“Your own speech-to-text server”), only if you enter its address in Settings > Speech to text. An address on this Mac, or an address on your local or private network that you typed in (local network, tailnet, a host you saved as a private server; the app cannot tell whose machine it is, so only enter one you trust), receives the audio without a question; this includes audio you add to a chat. That device is not run by a cloud service, but it is another machine: it receives the audio, and the app cannot see what that machine does with it. Any other address must use https, needs your data consent for that host, asks before every upload, and leaves a receipt in the spend ledger; it is not used for chat attachments (the chat window always asks for local-only, and the app refuses an uploading engine for such a request). The app keeps no access key for this kind of server. The Test button sends one second of generated silence, nothing of yours.
- Cloud speech recognition and video generation services, only if you configure your own account and choose them. Audio is uploaded for cloud transcription only after you confirm, each time, naming the service. The question can be switched off only in Settings > Speech to text, in a separate confirmation that names the service; that choice belongs to that one service, requires your data consent for it, and changing the service or revoking it in Settings > Privacy & data asks again. It is off by default. If you have switched that question off for a service, a coding tool that asks the app to read a recording can also cause audio to be uploaded to that service, and the answer carries a receipt. A video request sends the prompt and, if you picked one, an image.
- Model downloads: when you press Download for a model, the app contacts registry.ollama.ai (language models) or huggingface.co (speech, decision and image models). Next to every Download button the app first says which host the file comes from, how big it is and that the host, and the download servers it hands the transfer over to (large files are served from a content delivery network), can see your IP address. They can see your IP address and which file you requested. Only model names from the registry’s own library can be typed in; the app does not follow a name that points at another registry. No conversation data is sent.
- Your own coding tools and what they send: Claude Code, Codex and other tools you connect are run by their own vendors. Whatever they read or receive, including what they take from this app, is sent by them to their own providers under those vendors’ terms; the app cannot see or control that.
- “Open in Codex”: a coding tool can leave a reading job for Codex on a card in the app. Nothing is opened or sent until you click “Open in Codex”. Codex then fills its own input box and does not send; only when you press Return in Codex are the job text and whatever Codex reads for it sent by Codex to OpenAI, under your own ChatGPT account and OpenAI’s terms. The app does not see or control that.
Third-party services are run by their providers. Beehive Cluster has no affiliation with them, does not endorse them, and does not provide professional advice. You are responsible for the data you send: avoid putting identity, social-security or bank numbers into conversations. When you add an API connection of your own for the first time, the app shows a short reminder to this effect; you can tick “Don’t remind me again” and switch the reminder back on in Settings > Privacy & data. That choice never affects the confirmations the app asks before an action (device actions, “never by AI” actions and per-action approvals). If the newest message you type to a cloud model through one of your own direct API connections looks like a US social-security number or a payment-card number (the card check is the Luhn rule plus a card issuer’s number range), the app may hold the first such send of a conversation back once with a warning; sending the same message again sends it. This is a pattern check that runs on your Mac only, after you have allowed that destination. It can miss numbers: it does not look at earlier messages, attachments, pictures, other kinds of connection, numbers written without separators, or other countries’ identity numbers. The number is not saved, logged, counted or uploaded; the app remembers only in memory, until you quit, that a conversation was warned (and a short fingerprint of the message so that sending it again goes through).
These services have their own privacy policies and terms. Please read them. The developer does not receive or control what they do with your data. If you point the app at an Ollama you installed yourself, that program’s own behavior is outside this app.
Camera, Microphone, Bluetooth, Local Network and Speech Recognition
Each permission is requested only when you use the matching feature, and every one can be refused or revoked in macOS System Settings.
- Camera: used only for cameras you turn on in Settings > Devices > Cameras, and only while a preview, a snapshot you allowed, a watch you set up, gesture recognition or a paired Mac that you confirmed is using it. While a camera is in use the app window shows “Camera in use” with a Stop button. Pictures are processed in memory and are not recorded. A picture is written to disk only by a watch you set to save matching pictures (off by default). A picture goes to a cloud AI model only if you allowed that specific model; it is never uploaded to the developer. Gesture recognition is off by default, keeps only hand joint positions, not pictures, and does no face recognition.
- Microphone: used only while you hold or start voice input. Speech is turned into text on your Mac (the built-in Whisper engine with a model you downloaded or chose, or Apple’s on-device recognition), or by your own speech server (on this Mac or on a device you own, which then receives the audio). A cloud speech service is off by default and asks you before each upload.
- Speech recognition: Apple’s on-device speech recognition is used to turn your voice, or audio and video files you choose, into text.
- Bluetooth: used only after you click Scan, and only to read standard sensor data (battery, temperature, humidity, pressure, device information and, if you turn it on for a device, heart rate) from devices you pick. The app never writes to them.
- Local network: used to reach servers, smart-home devices, cameras, other Macs and Home Assistant that you add, and to find them with Bonjour. It is never used to reach anything you did not add.
- USB serial: only for a serial port you pick, for industrial sensors (Modbus RTU).
- Local interface for your own tools: an optional API and MCP endpoint for tools such as Claude Code or Codex. It is off by default; while it is off nothing listens. When on, it listens only on 127.0.0.1 (this Mac), checks the Host and Origin headers of every request so that web pages cannot use it, and requires a secret access key on every request. Tools that you connect see what you let them see. Through the MCP endpoint a connected tool can, for example, search the memory notes you confirmed, suggest a new memory (always waits for your confirmation), read files inside folders you added to the app, ask a model on your Mac, hand reading and editing jobs to a model on your Mac, and run automations you allowed. It cannot grant itself permissions or answer an approval card. By default, external tools cannot use cloud models through it; this is a separate switch. Two further optional bridges (to let a coding tool see the state of a task and, only if you switch on each action, act on it) listen on 127.0.0.1 as well and are off until you turn them on.
- Connecting a coding agent by pairing code: the Connect page can copy a text for your own coding agent. It holds a one-time pairing code (valid for 5 minutes, single use) and never your access key; the clipboard copy is marked as concealed and is cleared after about 90 seconds. The app keeps only a hash of the code, in memory. When the agent redeems the code, a card appears in the app (“wants to connect: Allow / Deny”, 60 seconds); only if you press Allow does the agent receive an access key of its own. Five wrong codes within a minute pause pairing for a minute. The app stores a hash of each key with a label and the created and last-seen times; you can revoke each agent separately and a revoked key stops working at its next request. The key is handed to the agent program you pasted the text into; that program (such as Claude Code or Codex) writes it into its own configuration file, where it is kept in readable form, and some of the program’s own commands can print it, so treat that file as secret and revoke the agent if it may have been exposed. The agent, not this app, edits its own configuration, with your approval. Per-agent keys are not limited to a subset of the tools of the interface. Nothing about pairing leaves your Mac.
- Hooks and the token saver: if you paste the hook text into your coding tool, the tool asks the app, on 127.0.0.1, a question before it reads a file or after a long test or build output (“may I read this in full?”). The app answers with a pointer to a cheaper way to read it, or with no opinion, and never approves anything for the tool. For this the app looks only at the path, the size and the kind of file inside a folder you added. If the app is closed or does not answer, the tool carries on. These helpers help agents spend fewer tokens when they read files. They act only when your coding tool reads a file through its own tools or uses this app’s tools; a picture pasted straight into a coding tool’s prompt box, or uploaded in a chat app’s web or desktop app, never passes through this app and cannot be intercepted. Nothing leaves your Mac because of the hooks, the request log, the daily tally, the receipts, the sessions panel, output compression or the Codex hand-over record. The “Saved today” figure, the weekly receipts and the money amounts shown (only if you tell the app you pay by API and have entered a price) are estimates computed on your Mac; they are not a bill from any provider, and the weekly receipt is written to a file only if you press “Export as text” and choose where to save it.
- Reading files for your coding tools (the tool read_material, optional): reading is done on your Mac in this order, stopping at the first step that works. First, parsing without a model (PDF text, Word, Excel, PowerPoint, tables, JSON, logs). Then the first reader you chose: an open-source model on your Mac (a picture or scanned page is drawn and read there and sent nowhere), or Codex (the app never starts Codex; it only hands your coding tool a command and says first that the file goes to OpenAI under your own Codex account and that Codex could read other files on your Mac as well). Then, for pictures and scanned pages only, and only if you chose one of your own API connections for this and allowed that service to receive data, the picture and your coding tool’s question go to that service, and the answer carries a receipt saying how many pictures were sent and where; with no choice or no consent record, nothing is sent. Audio and video are turned into text by the speech engine on your Mac (a cloud speech service is used only as described under “Third-party services you choose”). Chat and mail exports are indexed and searched on your Mac as described above, with no model and nothing sent. Web pages are described under “Third-party services you choose”. Scanned pages in the Library are read by the same on-device model; the app does not use a system text-recognition framework.
- Handoff brief: a button in Project changes and on the agent connection card, and a tool of the local interface (handoff_brief) that a coding agent you have already connected can call. It writes a short plain-text note of the current work so that another coding agent can continue (for example when one runs out of quota): the project name and goal, the paths and counts of uncommitted changes (never file contents), your unresolved review comments, the newest snapshot, the project-map lines for the changed files, your confirmed memories of the project and the side tasks agents left. It is made on your Mac from the app’s own records and is never sent by the app: you choose where the text goes (the copy button), and the tool only answers an agent that is already connected through the local interface and only for a folder you added as a project. Lines that look like a secret are withheld and protected files (such as .env or key files) are listed by name only. Whatever the receiving agent does with the note is between you and that agent’s provider.
- Folders in the cloud: when you add a project, the app checks whether the folder is under Desktop, Documents, iCloud Drive or another cloud provider’s folder, because macOS can replace files there with online-only placeholders. The check reads file flags, counts and file names inside the folder you picked and nothing else; no file content is read or sent. If you press “Download these files”, the app asks macOS to bring the placeholders back (a bounded number of files per press) or, if macOS declines, opens the file and reads one byte, which it discards, so that the cloud provider fetches it (the byte is not kept or sent); the transfer is done by macOS and your cloud provider under their own terms, not by the app.
- Media reader: risky decoding of videos, audio, PDFs and web or mail HTML runs in a small helper program that is part of the app bundle. It runs under the app’s own sandbox, starts no program from outside the app, opens no network connection and writes no file; if a faulty file crashes it, only the helper ends and the app says the file could not be read. It stores nothing.
- Instruction-file presets: the app can add a ready-made section to a CLAUDE.md or AGENTS.md at the root of a project folder you added, only after it has shown you the exact change and you click “Agree, add it”; the old file is first copied to a backup next to it. The section holds no personal data and no access key.
- Execution consistency check: see “What Is Stored on Your Mac”.
- Approval page: an optional web page to approve device actions from your phone. It is off by default and listens on one Tailscale or private local-network address that you choose, never on the internet. It requires a one-time pairing, signed single-use answers and expires in 5 minutes. On a local-network address it uses plain http, so a request marked “Never by AI” can only be denied from this page; on a Tailscale address (an encrypted tunnel) such a request can be approved there only if you switched off the setting “Approve “Never by AI” actions such as unlocking only on this Mac”.
- Receiving tasks from your other Mac: an optional listener, off by default, for tasks from another Mac running this app on the same network. It requires one-time code pairing and an encrypted session.
Your Choices and Data Controls
- Revoke consent: Settings > Privacy & data lists every cloud destination you allowed, with a Revoke button. You can also revoke Telegram access in the Chatbot settings, and remove any web site you allowed for page reading.
- Turn things off: the local interface, each connected agent (Revoke), the token-saver switches, the execution consistency check, automatic saving of memories, remote approval and every optional feature above are separate switches in the app.
- Forget an index: the index of exported chats or mail can be forgotten per folder or all at once; the project map and the document cache can be cleared; the request log and the consistency record can be cleared. The daily tally is removed with “Delete all local data”.
- Delete a conversation: the conversation, its messages, drafts, summaries, sub-conversations, files made in it and pre-upgrade copies are deleted. Memory notes and library items that came from it are listed and are kept unless you delete them.
- Delete memory and library items: each can be deleted in its own page. Memories saved automatically can be undone or deleted from the “Recently saved automatically” list.
- Export a copy of your library: Settings > Context & memory > “Export my library…” writes one zip (Markdown files of your conversations, your memory notes and a JSON index) to the place you choose in the system Save panel. It is made on your Mac and is not uploaded anywhere. It leaves out model keys, settings, attachment files and deleted conversations, and replaces text that looks like an API key or bearer token with “[key removed]”. That check cannot recognise everything, and nothing else in the chats is scanned (for example a password you pasted), so look through the copy before you share it. The copy is yours; the app does not track where you put it.
- Remove attachments: attachments you added can be removed from the message.
- Delete all local data: Settings > Privacy & data > Delete all local data deletes the database, files, logs, backups, settings, camera pictures, web-view data and every Keychain item the app created, and then quits the app. You can choose whether the downloaded models are deleted too. It does not delete files you exported or saved elsewhere, your own project folders (including a “.saiw-codex” folder or a backup of CLAUDE.md or AGENTS.md inside them), the configuration files of tools that you connected (which hold their own copy of an access key), data you already sent to a third-party service, or Time Machine copies made earlier.
- Asking the developer to delete data: the developer holds no data about you. If you sent us an email or a diagnostics file, write to the support address and we will delete it.
- Uninstalling: deleting the app from the Applications folder does not delete its data container. Use “Delete all local data” before you uninstall. If you already removed the app, you can delete the app’s container folder for com.sharokku.superaiworkspace in your Library > Containers folder in Finder, and any items whose name contains “superaiworkspace” in Keychain Access.
- macOS permissions: camera, microphone, Bluetooth, local network and speech recognition can be switched off at any time in System Settings > Privacy & Security.
Diagnostics and Reports
Settings can export a diagnostics file. It does not include chat content, prompts, project file contents, keys or passwords, and secrets are masked. It is saved to your Downloads folder and is never sent automatically. If you choose to attach it to an email to support, the developer receives it and uses it only to fix the problem.
AI-Generated Content
Beehive Cluster uses generative AI models that can produce wrong, offensive or inappropriate content. Images made by the built-in engine are marked as AI-generated in the app and in their file metadata, and the prompt is not written into the file unless you turn that on. Each reply and generated image has a Report action that opens a pre-written email to support. The app is intended for adults and is not suitable for children.
Children’s Privacy
Beehive Cluster is not directed to children under 13 and is not intended for users under 18. We do not knowingly collect personal information from children; the developer collects no personal information from anyone.
Data Sharing
Beehive Cluster does not sell your data and does not share your data for advertising or tracking. The only transfers are those to the services and machines you choose, described above.
Changes to This Policy
If this policy changes, this page will be updated with a new “Last updated” date. The app will not start collecting data without this policy being changed first and the Mac App Store privacy information being updated.
For questions about this policy, contact:
- GitHub Issues: https://github.com/gallifre/gallifre-privacy/issues
- Email: starlight.ripple@gmail.com
(Developer: YABO WANG.)