Privacy & architecture

Your document stays local.
Know where context goes.

Platypus keeps reading and document processing on your device. Optional AI answers use your selected provider. Here is what happens at each step.

Updated September 28, 2026

Reading and retrieval are local

Original PDFs remain files on your device. Platypus stores document identities, highlights, notes, reading positions, chats, parsed text, and retrieval indexes in its local application profile.

When you choose Prepare for chat, Docling parses the document locally. EmbeddingGemma converts eligible passages in longer documents into numerical representations used to find relevant text. Shorter documents skip embeddings after their text is saved. Platypus retains page locations so citations can take you back to the source.

Preparation is explicit for each document. Opening a PDF does not automatically prepare or index it. Reading, notes, and already-installed parsing and retrieval can work offline.

Activity Where it happens
PDF display, search, annotations, notes Your device
Docling parsing Your device
EmbeddingGemma embedding and retrieval Your device
Answer generation via Codex or Claude Code Your selected CLI’s provider
Saved chats and citation references Your Platypus profile

What goes to your AI provider

When you ask a question, Platypus gives the selected CLI:

  • Your question.
  • The conversation so far.
  • Any attached PDF selections.
  • The document’s extracted text: all of it for documents up to about 50,000 tokens, or excerpts retrieved as supporting context for longer ones.

Platypus does not include the PDF file itself. The extracted text can still contain sensitive document content. Each chat continues one CLI session, so the CLI keeps the conversation and that text in its own session storage on your device and supplies them to its provider as the conversation continues. Provider handling and retention depend on your tool, account, and provider terms; Platypus does not control those services.

Rewind conversation removes the chosen question and later conversation from Platypus and continues from before that question. It cannot retract content already sent to the provider. Claude Code forks an independent retained conversation; Codex may still need earlier session files that include the discarded messages. Rewinding the first question or deleting a chat queues its current and retained CLI sessions for deletion. Cleanup waits for active work to stop and retries failed removals.

Local-first does not mean fully offline AI.

Use reading and notes without a provider. Before using chat with sensitive material, consider the document text and selections it can send and the terms of your chosen provider.

Connections and resource downloads

Your CLI sign-in

Settings → AI providers discovers supported CLI installations and reuses their existing sign-ins. Each CLI owns its credentials. Platypus does not persist provider credentials or expose them to the reader interface.

Model discovery requests metadata without sending an AI prompt. Viewing provider usage details can request account quota information. Codex supplies this through its app-server; Claude usage reads existing OAuth credentials in the main process, with a macOS Keychain fallback, to call its usage endpoint. Platypus does not refresh those tokens.

The optional Diagnostics → Test AI response action sends a sample prompt without document content and uses provider allowance.

Local resource setup

Settings → AI chat downloads Python and model archives from the configured Amazon CloudFront resource host. The app verifies them against bundled checksums. These download requests contain no PDF content; as with any HTTPS download, the host receives network request information, including your IP address.

CLI installation, sign-in, and provider requests have their own network activity. Initial downloads and cloud-generated answers need an internet connection.

Optional usage reporting

Usage reporting is off by default. If you opt in, basic counts help us improve reading and document chat. Reports exclude document content, filenames, notes, questions, and answers. A random app-profile ID links visits; this is pseudonymous data, not fully anonymous data.

Daily summaries include resource-setup, document-preparation, and update-check counts and outcomes. Update checking works independently of reporting, and checking for updates does not count as reading activity.

No analytics identity, collection, upload, or launch heartbeat starts before agreement. Core features work with reporting off. Use Settings → Privacy to share, stop sharing, or request deletion. Development builds and builds without a reporting connection can save your preference without collecting data. Configured internal test builds use a separate test service after you opt in.

When reporting is available, counts are grouped by UTC day. Updated summaries are sent after you opt in, when the app starts, and about once an hour while it is running, subject to connectivity and retries.

Learn more about usage reporting, including what is shared, Cloudflare storage, retention periods, and deletion controls.

Control your local data

  • Disable a provider to prevent new requests through it. An answer already in progress is allowed to finish.
  • Remove resources in Settings → AI chat to remove downloaded runtimes, models, and partial downloads. Documents, annotations, chats, and indexes are retained.
  • Open Settings → Saved data and export JSON or Markdown to keep a readable copy outside the app. Export files are unencrypted and can contain document excerpts and conversation history.
  • Remove the local profile only after quitting the app and preserving anything you need. This does not delete original PDFs, sign out the CLIs, or erase content already handled by providers.

Uninstalling the app may leave its profile behind. See profile locations and manual backup limitations.

Privacy questions or deletion help

Platypus is operated by RidingWaves LLC. For privacy questions or help with a deletion request, email support@ridingwaves.io.

This website

This version of the website serves static pages and local assets. It sends no website analytics and includes no advertising, third-party font requests, or account forms, and does not set tracking cookies. Image controls and approximate download suggestions run in your browser without contacting an AI provider.

Cloudflare hosts this website and its installer redirects. GitHub Releases (github.com) serves the desktop installers. Amazon Web Services (S3 and CloudFront) serves local AI resources. These services receive request information, such as IP addresses, to deliver pages and files and protect their infrastructure. See the Cloudflare Privacy Policy and GitHub Privacy Statement and AWS Privacy Notice. Following external links takes you to services with their own privacy practices.

Installer links use our Cloudflare redirects, which count download starts by release and platform. Daily totals are retained for 25 months. These counts are separate from app reporting and use no cookies or app identity. Retries, bots, and throttling affect counts; they do not establish completed downloads, installations, or unique people.

Next: keep a copy of your work

Exports & backups

Inside Platypus