Skip to content

🔒 AMBA Privacy Policy ​

Last Updated: October 13, 2026
Contact: [email protected]

AMBA is a local-first desktop application: your projects, files and analysis run on your own computer. AMBA is not a zero-network application, though. Some features send data over the internet — to the AI provider you choose, and to a small set of AMBA-operated cloud services (on Cloudflare) for the free trial, feedback, crash reports, update checks and the agent catalog.

This page lists every one of those flows, what each one sends, and where it goes.


1. What stays on your device ​

  • Your project files: source files in Sources (sources/), and workpapers and deliverables in the rest of the project folder (for example workings/ and reports/), are read and written on your computer. AMBA does not upload whole files to AMBA servers.
  • App database: projects, conversations, run history, settings and a local copy of any feedback you submit are stored in a local SQLite database. Analytical tables created during processing live in your project folder (for example workings/.analytics.db). You can inspect or delete them at any time.
  • Memory: the app database also keeps knowledge notes you save (or that an agent saves while working), and searchable excerpts of documents a connector delivers into a project. Each item belongs to one project — and to one agent unless it is shared with the project — and an agent never sees another project's memory. Your conversations are not copied into memory. On upgrade from an older version, conversations that earlier versions had copied into memory are exported once to ~/.amba/exports/memory-<date>/ (with API keys, tokens and card numbers removed) and then deleted from memory; that folder stays on your device and you can delete it.
  • API keys and connector credentials: stored in your operating system's credential store (macOS Keychain, Windows Credential Manager, or the Secret Service API / libsecret on Linux). Release builds do not fall back to plaintext or database storage: if no keychain is available, the key is not saved. In addition, backups created by AMBA exclude secrets. A key is only ever sent to the provider it belongs to.
  • Crash files: if AMBA crashes, a redacted crash report is written locally to ~/.amba/last_crash.json. It stays on your device unless you agree to send it (see section 2).
  • Scanned files and images: text in scanned PDFs and in images (PNG, JPG, TIFF …) is recognised on your computer with Apple Vision on macOS, and the result is cached in the project's workings/.cache/ocr/ folder. The images themselves are never sent to the AI provider or to AMBA; only the recognised text can reach the model, as part of the file excerpts in section 2, and identifier masking applies to it. On Windows and Linux AMBA has no built-in text recognition yet: a scanned page without a text layer is reported to the agent as unreadable instead of being sent anywhere.
  • No analytics or ad tracking: AMBA has no advertising identifiers, tracking pixels or usage analytics that record which files you open or which prompts you run.

2. What leaves your device and when ​

FlowTriggerData sentDestinationRetention
AI requests (your own key, BYOK)You run a task with a provider you configuredYour prompt, conversation history, and the file excerpts or tool results the task needs, as text only (images and page images of your files are never sent)Directly from your computer to the provider you chose (e.g. OpenAI, Anthropic, Google, OpenRouter, a cloud platform, or a local/self-hosted endpoint)Governed by that provider's API terms; AMBA receives nothing
Free trial (AMBA Cloud Trial)You run a task with the built-in trial model (used when no API key is configured)Your prompt, conversation history and file excerpts the task needs (text only, no images); a random device ID generated on first useAMBA's Cloudflare Worker (api.ambadesk.com), which relays the request to Google Gemini using AMBA's API keyAMBA does not store prompt or response text. The device ID is stored with a run counter, token counter and first/last-seen times, and is deleted automatically after 90 days without use. A salted hash of your IP address is stored for rate limiting and pruned after about 2 days. Google processes the request under its Gemini API terms
FeedbackYou press Send in the Feedback dialogYour title, message and steps (after automatic redaction of user folder paths, email addresses, phone numbers, national ID numbers, and API keys, tokens, passwords and private keys), category, rating, optional contact address (sent as a separate field, not inside the message), optional run context (playbook, mode, model, failed tool, error text), app version, OS and architecture, and window size if diagnostics are enabledAMBA's Cloudflare Worker → stored in Cloudflare D1; may open an issue in AMBA's GitHub issue tracker (containing the message, steps, diagnostics and stack trace — never your contact address); a short alert (title, category, OS, version) is sent to the team's Telegram/Discord channel. Your contact address is stored only in D1Deleted automatically 180 days after the issue is marked resolved or closed, and in any case 365 days after submission. GitHub issues are kept as part of the public project history. A salted hash of your IP address is used for rate limiting and pruned after about 2 days
Crash reportsOnly with your consent. On the next launch after a crash, AMBA shows what would be sent and asks: Send, Don't send, or Always send. You can change this any time in Settings → Vault & Security → Crash reports (Ask / Always send / Never)Panic message, code location and stack trace (after the same redaction), app version, OS and architecture. After an unexpected exit without a recorded error (for example a crash inside the system web view), only the app version, OS, architecture and the time the session started. No contact details; file contents and prompts are not intentionally included, though a panic message can quote the value that caused the crashSame as Feedback (D1, GitHub issue, Telegram/Discord alert)Same as Feedback. The local last_crash.json is deleted after you send or decline it
Update checksOn app launch (if automatic checks are on) and when you click "Check for updates"Current app version, OS target and CPU architecture; your IP address is visible to Cloudflare as with any web requestapi.ambadesk.com/v1/update/… (Cloudflare); update packages download from r2.ambadesk.com (Cloudflare R2)AMBA does not store update-check requests. Cloudflare may keep standard request logs
Agent catalogWhen you open or refresh the template catalog and no cached copy is usedA plain download request; no project data or identifiers are sentr2.ambadesk.com (Cloudflare R2)Not stored by AMBA. Cloudflare may keep standard request logs
Services you connectOnly when you enable them: web search, Google Drive, Telegram, Zalo, MCP servers, experimental routingThe queries, files or messages needed for that integration, using your own account or keyDirectly from your computer to that serviceGoverned by that service's terms

Processes and "Send me a test". Messages a process sends (reminders, questions, reports) go through your own Telegram bot, directly from your computer to Telegram, only to the chats listed when you turned the process on. When you test a process step by step, nothing is sent unless you press Send me a test: that sends one copy of the message, labelled [Test], directly from your computer to Telegram through your own bot, and only to your own chat — never to your team. It is recorded in Data leaving this device with the purpose process_test and is not counted as a run.

AMBA does not use your documents, prompts or feedback to train AI models.


3. Third-party processors ​

ProcessorRole
Cloudflare (Workers, D1, R2)Hosts api.ambadesk.com and r2.ambadesk.com; stores feedback, crash reports, trial counters and hashed-IP rate limits; serves updates and the catalog; sees your IP address for these requests
Google (Gemini API)Generates responses for the free trial only, using AMBA's API key
GitHubHosts the issue tracker where feedback and crash reports may be filed
Telegram / DiscordReceive short internal alerts about new or recurring reports
The AI provider you chooseProcesses your requests when you use your own API key; AMBA is not in that path

4. Your choices ​

  • Use your own API key (BYOK): once you configure a provider, requests go directly from your computer to that provider and do not pass through AMBA's servers. If you do not want trial requests relayed through AMBA and Google, add your own key before running tasks.
  • Don't submit feedback: feedback is only sent when you press Send. You can leave the contact field empty and turn off diagnostics. Avoid pasting confidential content into feedback — redaction is automatic but pattern-based, not exhaustive. After sending, AMBA shows the reference ID issued by the server (for example AMBA-FB-3F2A9C1B); if the server cannot be reached, it shows that the feedback was only saved on your device.
  • Automatic update checks: you can turn automatic update checks off in Settings; you can still check manually.
  • Crash reports: nothing is sent unless you agree. Choose Ask (default), Always send or Never in Settings → Vault & Security → Crash reports.
  • Review what left your device: each project's Project Configuration → Permissions & Security lists, under Data leaving this device, every outbound request (AI model calls, web searches, remote MCP servers, deliveries, feedback, crash reports, update checks) with destination, region, size and what was masked — never the content — and can export it as evidence into the project's reports/compliance/ folder. The log stays on your device and is kept for 365 days.
  • Mask identifiers before AI calls: in a project's Project Configuration → Permissions & Security you can turn on masking, which replaces emails, phone numbers, ID and tax numbers, bank accounts and terms you list (such as client names) with placeholders before a request goes to the AI model, and restores the real values on your device. It is off by default, pattern-based rather than exhaustive, and can reduce answer quality for tasks that need the exact values. Masking covers everything AMBA sends to the model, because files are sent as text only (see Scanned files and images in section 1).
  • Local data: you can delete projects, the local database and ~/.amba/ at any time.

5. Contact and deletion requests ​

To ask what we hold about you, or to have feedback, crash reports or trial data deleted, email [email protected]. Include the reference ID shown after sending (for example AMBA-FB-3F2A9C1B), the contact address you used, or the approximate date and title of your feedback, so we can find the records. The same address handles security reports and other privacy questions.


6. Changes to this policy ​

We will update this page when AMBA's data flows change, and change the date at the top.

Last updated: October 13, 2026.