Privacy Policy
Last updated: August 30, 2026
1. Introduction
Burin Code ("we," "our," or "us") is a Mac-native desktop application for software development. This Privacy Policy explains how we collect, use, and protect information when you use the Burin Code application or visit burincode.com (the "Service"). Data flow depends on the feature and model route described below.
2. Information We Collect
Information You Provide
- API Keys: If you provide your own API keys for AI model providers (e.g., Anthropic, OpenAI), the application stores them in your operating system's credential store: the login Keychain on macOS, the system keyring (Secret Service) on Linux, and the Credential Manager on Windows. A file readable only by your user account is used only where no keyring is available; that file is not encrypted, and the application shows when that fallback is in use. Direct-provider requests use those credentials locally; Burin's managed route uses a separate short-lived inference grant rather than uploading your personal provider key.
- MCP Server Configuration: If you connect to Model Context Protocol (MCP) servers, connection details including OAuth tokens are stored locally on your device. If you enable settings sync, your MCP server list is uploaded to your account; secret values are removed before upload.
- Account Information: If you create a Burin Code account (for premium features), we collect your email address and display name. If you sign in with GitHub or Google, we also receive and store that provider's account identifier, the email address on that account, and access and refresh tokens for it.
- Usage Records: For each request made on the managed route, we store the model, the provider, token counts, and cost. We do not store the prompt or the response.
Optional Diagnostics
- Activation Events: If you opt in, the application sends a limited set of events such as app launch and first successful agent turn. An event includes a persistent random installation identifier, app version, operating-system major version, locale, event name, and optional title-generation route. It excludes code, prompts, and account data. You can change consent in Settings > Telemetry.
- Crash Capture: If enabled, crash capture writes JSON reports to your Mac for your review. Burin does not automatically upload those files.
- OpenTelemetry: If enabled, Harn exports traces to the collector endpoint you configure. That collector's operator controls its retention and access.
- Website Requests: Our website hosting and network providers process ordinary request metadata, such as IP address, user agent, requested path, and timestamp, to deliver and protect the site. The website code does not install a separate product-analytics tracker and does not set cookies.
- Website Feature Flags: The website generates a random identifier, stores it in your browser's local storage, and sends it with an unauthenticated request on each page load so that feature flags can be evaluated consistently. It is not linked to an account and carries no other information. Clearing site data removes it.
3. How We Use Your Information
We use collected information to:
- Provide and maintain the Burin Code application
- Process account creation and manage premium subscriptions
- Send important service notifications (e.g., security alerts, billing)
- Improve application performance, stability, and features
- Respond to support requests
- Comply with legal obligations
4. Your Code and Files
Burin Code reads and edits project files locally. Model requests contain the prompts and selected code context needed for the task. Their route depends on the model selection:
- A Local route sends the request to the endpoint you configured.
- A Direct route sends the request from Harn to the third-party provider associated with your personal key.
- A Managed route sends the request through the authenticated Burin API and Harn Cloud to platform-managed model supply.
The model picker labels the effective route. Review the privacy terms for any independently operated model endpoint or connected service you use.
On the Managed route, the Burin API streams the model's response to you as it arrives and does not store the prompt or the response. Harn Cloud, which makes the provider call, stores the request and result for that task and deletes them after a retention period that defaults to seven days.
The agent loop, your file edits, and your tools run on your device. A session record is written to your project's local `.harn` and `.burin` directories, including the full text of tool calls and their output. Detected credentials are removed before that record is written. Those files are not encrypted; the retention controls described below govern their deletion.
Connected MCP servers. When the model calls a tool on a connected MCP server, Burin sends that server the tool's name and the arguments the model chose. It does not send your conversation, system prompt, session history, or file contents. If the server requests your project roots, it receives the absolute path of the project directory, which may contain your account name. Tool arguments and tool results may also contain absolute file paths when sent to a model provider.
5. Third-Party Services
Burin Code integrates with or relies on the following third-party services:
- AI Model Providers (e.g., Anthropic, OpenAI): Direct routes send prompts and selected context from Harn to the provider. Managed routes send that material through Burin's service to platform-managed model supply.
- MCP Servers: If you connect to external MCP servers, data is exchanged directly between your device and those servers according to their policies.
- Harn Cloud: Executes managed-route model requests and, if you use it, hosted agent runs. Stores the request and result for each task under your tenant.
- Render (render.com): Hosts our website, backend services, and databases. Our production infrastructure is located in the United States (Oregon).
- Cloudflare (cloudflare.com): Provides DNS and domain management for burincode.com.
- Stripe (stripe.com): Processes payments. Checkout and card entry are hosted by Stripe; card numbers do not reach our servers. We send Stripe your email address when your customer record is first created, and your account identifier.
- GitHub and **Google:** Provide optional sign-in. If you use one, we receive your account identifier and email address from them.
- Google Fonts (fonts.googleapis.com, fonts.gstatic.com): Serves the typefaces used on burincode.com. Loading a page requests those files from Google, which receives your IP address and user agent.
We are not responsible for the privacy practices of third-party services.
6. Model Training
We do not use your prompts, code, or files to train models, and we do not provide them to anyone for that purpose.
Burin does not set retention or training-related options on your behalf when calling a model provider. On a Direct route, your request reaches the provider under your own account, and that provider's terms and settings govern whether it is retained or used for training. Review the terms of any provider whose key you configure. On a Local route, nothing leaves your device.
Our provider registry records, for each provider, whether it offers a per-request control over retention or training, what that provider's documented default is, and the date we last checked it. Where a provider has not been researched, the registry says so rather than leaving it blank. The model settings panel shows that entry for the provider you have selected, quoted from the provider's own published answer with a link to it.
7. Data Storage and Security
- Provider API keys are stored in the operating system's credential store: the macOS login Keychain, the system keyring (Secret Service) on Linux, and the Credential Manager on Windows. Where no keyring is available, they are stored in an unencrypted file readable only by your user account, and the application shows when that fallback is in use. Other local application state is stored in Burin configuration and data directories on your device and is not encrypted.
- Account data (if applicable) is stored by our hosted backend and database providers. Traffic between your device and our services uses TLS.
- Account passwords are stored as argon2id hashes. Sign-in session tokens are stored only as one-way hashes, never in their original form, and expire after 30 days.
- Where we hold a credential on your behalf — a provider API key you saved to your account, an OAuth token, an MCP authorization token, or a two-factor seed — it is encrypted at rest with AES-256-GCM. Other account fields, including your email address, are not separately encrypted at the column level.
- Managed inference grants are short-lived (six hours) and scoped to the inference endpoint; platform provider credentials are not sent to the Mac.
- No security system is impenetrable; we cannot guarantee absolute security.
8. Data Retention
Stripe webhook payloads are processed in memory and are not stored. We retain the event identifier, type, processing outcome, and timing needed for idempotency and replay; replay fetches the event from Stripe by its identifier.
A scheduled job runs once a day and applies the following to the records we hold:
- Per-request usage records: kept for 13 months, then replaced by monthly totals per provider and model. The totals remain; the record of each individual request does not.
- Account administration records: kept for 13 months, then deleted. Until then the database refuses changes and removal, except that account deletion irreversibly removes the deleted account's identifying fields while preserving the non-identifying operator receipt.
Other data is kept as follows:
- Local Data: Application data stored on your device, including your session records, prompt history, and tool output, stays on your device. Burin removes a project's session records and tool output older than your retention window (30 days by default; configurable, including keep-forever) when the Mac app opens the project or a terminal/headless session starts. The Mac app's privacy settings and the terminal/headless controls can clear that project's history on request. Everything else persists until you delete it or uninstall the application.
- Account Data: If you create an account, we retain your information for as long as your account is active. You may request deletion at any time. When we fulfill the request, we delete the account, credentials, settings, collaboration state, per-request usage, and identifying session records. We cancel Stripe subscriptions, expire checkout sessions, refund settled one-time payments, and remove account identifiers from financial and operator-audit records that must remain.
- Managed Route: The Burin API does not store the prompts or responses it relays. Harn Cloud stores the request and result for each task and deletes them after a retention period that defaults to seven days.
- Optional Diagnostics: Queued activation events remain local until accepted by the telemetry endpoint and are cleared when you withdraw consent. Crash files remain local until you delete or share them. OpenTelemetry retention is controlled by the collector you configure.
9. Your Rights
You have the right to:
- Access the personal information we hold about you
- Request correction of inaccurate information
- Request deletion of your account and associated data
- Withdraw activation-event consent through Settings > Telemetry
- Export your account data
To exercise these rights, contact us at privacy@burincode.com.
10. California Privacy Rights (CCPA)
If you are a California resident, you have additional rights under the California Consumer Privacy Act (CCPA), including the right to know what personal information we collect, request deletion, and opt out of the sale of personal information. We do not sell personal information.
11. Canadian Privacy Rights (PIPEDA)
If you are a Canadian resident, you have rights under the Personal Information Protection and Electronic Documents Act (PIPEDA), including the right to access and correct your personal information. Contact us at privacy@burincode.com for requests.
12. Children's Privacy
Burin Code is not directed at children under the age of 13. We do not knowingly collect personal information from children. If you believe a child has provided us with personal information, please contact us at privacy@burincode.com.
13. Changes to This Policy
We may update this Privacy Policy from time to time. We will notify you of significant changes by posting a notice on burincode.com or within the application. Your continued use of the Service after changes constitutes acceptance of the updated policy.
For questions about this Privacy Policy, contact us at privacy@burincode.com.
See also our Terms of Service.