Marisco
How Marisco keeps your data on your Mac
What you own stays on your Mac, encrypted. We have no access to it. Here is how that works, piece by piece, and every request that crosses our gateway.
Last updated
Your Mac
🔒 Encrypted database
key in your Keychain
Marisco window · marisco command · your agent
Ledger, statements, holdings, reports, taxes, agent runs
Marisco gateway
Holds: email · sign-in · billing link
Everything else passes through and is forgotten
Providers
FMP · EODHD · SnapTrade · Enable Banking · AI model · Whop
1. The principle
Cloud trackers, and now the AI assistants that connect to your accounts, join up your money by keeping a copy on their servers. Encryption “at rest” on their side still means they hold the data and can read it. Marisco does not hold it. The ledger, the valuation, the reports and the tax engine run on your Mac, against a file on your Mac.
2. Encrypted on your Mac
- Each profile is a database file in Marisco's folder in your home directory. It holds your statements as imported, the ledger, your reports, records such as goals and budgets, tax years, and the agent's runs.
- The file is encrypted with a 256-bit key generated on your Mac when the profile is created. The key is stored in the macOS Keychain, not next to the file, so a copy of the file (a backup, a synced folder, a lost disk) is unreadable without your Keychain.
- Only one process opens it: the Marisco engine on your Mac. The window, the
mariscocommand and the MCP server all talk to that engine locally, over a socket only your macOS user can open. Nothing listens on the network. - Backups Marisco makes before an update are copies of the encrypted file. Back up the folder like any other, with Time Machine or by hand. To move to a new Mac, restore it together with your Keychain (a Time Machine restore or Migration Assistant brings both), and it opens there.
3. What our gateway holds
The gateway is a small service on Cloudflare that sells what a laptop cannot make itself: live market data, broker and bank connections, and AI compute. Its database has tables for accounts (your email), sign-in sessions (hashed), billing links, sealed connection keys, and the forms on this site. It has no table for transactions, holdings or balances, because it never receives them to keep.
4. Every request that crosses it
| Flow | What it carries | What it never carries | What happens to it |
|---|---|---|---|
| Market data | Instrument identifiers (ISIN or ticker), currency, dates | Quantities, values, portfolio or account ids | Not stored. A shared price cache is keyed by ticker only |
| Broker and bank sync | A sync request, with connection keys sealed by your Mac | Your broker or bank login (it goes to SnapTrade or Enable Banking, never us) | Passes through memory to your Mac; never stored or logged by content |
| Analyst question | Your question and the figures needed to answer it | Your name, email or account identity | Not logged, not retained, not used for training |
| Sign-in and billing | Your email, a sign-in token, your entitlement | Anything about your portfolio | Kept while your account exists |
| Usage analytics | Which screens and features were used, app version | Holdings, amounts, names, transactions, file contents | 12 months; off in Settings, off by default in Private mode |
| Error reports | What broke, where, in which version, scrubbed | Your data, and your IP (dropped before storage) | 12 months; viewable in Settings before sending |
| Update check | App version, Mac architecture, macOS version | Anything that identifies you | Counted, not stored per install |
5. Broker and bank connections
Connecting an account is optional; importing a statement works without it. When you connect, you sign in with SnapTrade (brokers) or Enable Banking (European banks), never with us, and the access is read-only. The secret a connection needs is sealed with a key only your Mac holds and sent with each sync, so the gateway cannot open your connection on its own, at rest or from a scheduled job. The balances, positions and transactions it fetches pass through to your Mac and are written to your encrypted file there.
6. The analyst, and your own agent
Asking the built-in analyst sends your question and the portfolio figures it needs to an AI model, through our gateway, without your name or email. The request is not logged and not retained, by us or by the model provider, and never used for training.
If you prefer your own agent, Claude Code, Codex or any MCP client, use the marisco command or the MCP server instead. Your agent reads the ledger on your Mac and sends what it needs to the AI company you chose, under your own account. None of it passes through us.
7. Private mode
On the first screen you can choose to set Marisco up yourself: your own market-data key, your own agent, statement imports, and no account. In Private mode nothing about you reaches Marisco. Usage analytics and error reports are off by default, your keys are kept in your Keychain, and the only request to us is the anonymous update check.
8. Analytics, counts not contents
With an account, the app sends usage analytics so we can see which screens and features are used, and error reports so we can fix what breaks. They describe what the app did, never what you own: no holdings, amounts, account names, transactions or file contents, and no recording of your screen. You can turn them off in Settings → Privacy, and you can see an error report before it is sent.
9. See it for yourself
Settings → Privacy → What left your Mac lists every request the app made to our gateway: when, what for, and how big. If something there surprises you, write to us.
10. Report a vulnerability
Write to [email protected], or pick the "Security vulnerability" topic on the contact form, before disclosing it publicly. We will not pursue anyone who reports a genuine issue in good faith. The legal detail of what we process, and your rights, is in the Privacy Policy.