Privacy Policy
Last updated: 9 August 2026
Compresso is a macOS app that routes Claude Code and Codex through a local optimization proxy so that redundant context is removed before it is billed. This policy describes exactly what leaves your Mac, why, and who else handles it.
Compresso is an independent project. Its founder, Arman Nourifar, is the data controller, the person who decides what is collected and why. For any question about this policy, or to exercise any of the rights described below, email support@compresso.ai.
What Compresso never collects
This list is a design constraint, enforced in the code, not a promise of good behaviour:
- Your prompts, your code, file contents or file names. Usage figures are numeric counters only.
- Your API keys, OAuth tokens or subscription credentials. They are never logged and never transmitted to us. The local intercept copies the
Authorizationbytes through untouched; it reads the token on your Mac, in memory only, solely to work out which Claude or ChatGPT plan you are on, so the app can offer you the matching tier. That plan stays on your Mac, with one exception: when you open checkout, the app tells us which tier to bill you for, because that is what a purchase is. It is a single field, sent when the checkout page opens rather than when you pay, and the Subscribe button in the app opens the same checkout. Nothing else about the plan is ever sent, and the tier is never sent on any other request. - Request or response bodies. The intercept parses only the request head, for routing and counting.
- Hardware identifiers. There is no device fingerprinting. Your device ID is a random identifier the app generates and stores in your Keychain.
- Anything about your Mac beyond the fields listed below. No browsing history, no file system inventory, no other applications.
What Compresso does collect
1. Account information
When you sign in: your email address, your subscription status, plan and trial end date, and, once you subscribe, a customer identifier issued by our payment provider.
When you open checkout, the app also sends the tier it is buying and the billing cycle. The tier is the one matched to the Claude or ChatGPT plan detected on your Mac, so the checkout page arrives with the right plan already selected; our checkout cannot price a subscription without it. This is the only request that carries anything derived from that detection, and it is sent when checkout opens, whether or not you go on to pay.
Why: to authenticate you, to decide whether optimization is enabled, and to charge you for the tier you are buying. Lawful basis: performance of a contract.
2. Device registration
| Device ID | A random identifier generated by the app. Not derived from hardware. |
|---|---|
| Device name | Your Mac’s computer name. This often contains a real name, since macOS defaults it to something like “Jane’s MacBook Pro”. You can change it in System Settings → General → About before signing in. |
| Platform and app version | For example darwin-aarch64 and 0.1.0. |
| Last seen | Timestamp of the most recent contact. |
Why: to enforce a limit of two devices per account and to support you. Lawful basis: performance of a contract, and our legitimate interest in preventing account sharing.
3. Usage figures, always on
Once a day, for each signed-in device, Compresso sends counters describing how much it saved: tokens before optimization, tokens after, tokens saved, number of requests optimized, which agent they came from (Claude Code or Codex), and the engine and app versions in use.
There is no setting to turn this off. We are telling you plainly rather than burying it: these numbers are how the product proves it works, and an opt-out would bias them. They are counters and nothing else, no prompts, no code, no file names, no payloads of any kind.
Why: to show you your savings, to publish an aggregate total across all users, and to inform pricing. Lawful basis: our legitimate interest in billing-adjacent aggregate data from authenticated customers.
4. Onboarding progress
During setup the app records which step it reached, against a random installation identifier that is not linked to your account. There is no third-party analytics service involved.
Why: to find out where setup breaks. Lawful basis: legitimate interest.
5. Crash reports
If the app crashes, a report is sent to Sentry. Crash reports only, no session tracking, no usage logs, no performance metrics.
Before a report leaves your Mac:
- Personal-information collection in the Sentry SDK is disabled.
- Your computer’s hostname is removed.
- File paths under your home directory are replaced with placeholders, as are any values that look like credentials,
Authorizationand API-key headers, bearer tokens, and JWT-shaped strings.
Redaction happens on your machine before sending, not as a server-side rule, because a report that arrives unredacted cannot be un-sent.
Why: to find and fix crashes. Lawful basis: legitimate interest.
Who else handles your data
These are our processors. We do not sell data to anyone, ever.
| Supabase | Database and sign-in. Holds your account, devices and usage figures. |
|---|---|
| Polar | Merchant of record. Handles checkout and subscriptions, and is the seller of record for your purchase. Card details never reach us, and we never see or store them. |
| Cloudflare | Hosts this site and the API. |
| Resend | Sends your sign-in code by email. |
| Sentry | Receives crash reports, redacted as described above. |
| GitHub | Hosts the app download and update files. Downloading is subject to GitHub’s own privacy policy. |
The engine, and what stays local
Optimization runs entirely on your Mac. Your prompts go from your agent, through the local proxy, to Anthropic or OpenAI directly, and they never pass through our servers. The open-source engine Compresso runs has its own telemetry, and we leave it at its default, which is off. We do not enable it on your behalf.
The plan check is local too, with one exception worth naming: to read your Claude plan, the app asks Anthropic’s own account endpoint about it, using the session your agent is already signed in with, at most once a day for each of those sessions. That request goes from your Mac to Anthropic and nowhere else — we are not in the middle of it, and we never see the answer. Your ChatGPT plan needs no request at all: it is already in the token on your machine, and the app reads it there. Compresso never opens the credential files your tools store on disk.
How long we keep things
- Account and device records: for as long as your account exists, and deleted when you delete it.
- Usage figures: 24 months.
- Crash reports: 90 days.
- Onboarding progress: 12 months.
Aggregate totals, such as the “tokens saved” counter on our home page, are sums that identify no one and are kept indefinitely.
Your rights
If you are in the EU or UK, the GDPR gives you the right to access your data, correct it, delete it, receive a copy of it, restrict how we use it, and object to processing we base on legitimate interest, including the usage figures described above. Email support@compresso.ai and we will respond within one month.
Uninstalling Compresso removes everything it stored on your Mac, including your device identifier. It does not by itself delete your account on our servers, but ask us and we will.
You also have the right to complain to your data protection authority. In Norway that is Datatilsynet.
Changes
If we change what we collect, we will change this page and update the date at the top before the change ships, not after.