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:

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:

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:

  1. Open Settings > VLM and enter an endpoint URL, model name, and (optionally) an API key.
  2. 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:

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.