Privacy Policy
Last updated: 10 April 2026
Summary
railreader2 does not collect, transmit, or store any personal data. No analytics, no telemetry, no accounts, no crash reports. The application runs entirely on your device by default.
The only exception is the optional Vision Language Model (VLM) integration, which is disabled by default and, when enabled, sends data only to an endpoint you explicitly configure. See Vision Language Model integration below for details.
Data stored locally
railreader2 stores the following data on your computer only, in the platform-standard application data directory:
- Configuration — your settings (zoom thresholds, colour effects, UI preferences) in a JSON file. No personal information is included.
- Annotations and bookmarks — highlights, notes, and bookmarks you create on PDF documents, stored as JSON files in the application data directory.
- Recent files list — paths to recently opened PDFs, stored in the configuration file for convenience. These are local file paths only.
- VLM settings (if configured) — the endpoint URL, model name, and API key you enter in Settings > VLM are stored in the same local configuration file. The API key is not transmitted to any party other than the endpoint you configured.
None of this data leaves your computer. You can delete all stored data at any time via Help → Clean Up Temp Files in the application, or by removing the configuration directory manually:
- Linux:
~/.config/railreader2/ - Windows:
%APPDATA%\railreader2\ - macOS:
~/Library/Application Support/railreader2/
Network access
By default, railreader2 makes no network requests. PDF rendering, layout analysis (via the bundled ONNX model), and all other features run entirely on your device. The application does not check for updates, send crash reports, or communicate with any server.
The only network activity that can occur is when you explicitly enable and invoke the optional Vision Language Model integration described below. Until you configure a VLM endpoint in Settings, no network requests are made.
Vision Language Model integration
railreader2 provides an optional Copy as LaTeX feature (keyboard
shortcut Ctrl+L) and a corresponding CLI subcommand
(railreader2-cli vlm) that send cropped images of detected layout blocks
(equations, tables, figures) to an OpenAI-compatible Vision Language Model API for
transcription. This feature is disabled by default and requires
explicit user action to enable:
- Open Settings > VLM and enter an endpoint URL, model name, and (optionally) an API key.
- Press
Ctrl+L, use the context menu, or invoke the CLI subcommand to send a block to the configured endpoint.
You choose the endpoint. It may be a fully local server (such as Ollama or vLLM running on your own machine), in which case no data leaves your device, or a cloud API (such as OpenAI, Google Gemini, or any other OpenAI-compatible provider), in which case the cropped block image and prompt text are transmitted to that provider.
railreader2 is not affiliated with, and is not responsible for, any third-party AI service you choose to use. Before enabling this feature with a cloud endpoint, you should:
- Review the privacy policy and terms of service of the specific AI provider you intend to use. Different providers have very different policies regarding data retention, model training on user inputs, and data sharing.
- Consider the sensitivity of the documents you are reading. Cropped images may include copyrighted material, confidential content, or personally identifiable information visible on the page.
- Check whether your institution or employer permits sending document content to external AI services.
If you want the benefits of the feature without sending any data off your machine, use a locally hosted endpoint (Ollama, vLLM, LM Studio, or similar). See the VLM setup guide for options.
To disable the feature entirely, leave the VLM settings blank (or clear them via Settings > VLM > Reset). With no endpoint configured, railreader2 makes no VLM network requests and the keyboard shortcut becomes a no-op.
Third-party services
railreader2 does not integrate with any advertising networks or analytics platforms. The only third-party integration is the user-configurable VLM endpoint described above, which is disabled by default.
Children's privacy
railreader2 does not collect any data from any user, including children.
Changes to this policy
If this policy changes, the updated version will be posted at this URL. Since railreader2 collects no data, substantive changes are unlikely.
Contact
For questions about this privacy policy, open an issue on GitHub.