Last updated: 5 September 2026
Rilo is a Chrome extension with a single purpose: it reads web pages and PDFs aloud. This policy describes exactly what data that requires, where it goes, and how long it is kept.
Short version: the sentences you ask Rilo to read are sent to Rilo's own speech server to be turned into audio, and are not kept afterwards. Your notes and your reading position never leave your browser. Nothing is sold, and nothing is used to train AI models.
When you start a read-aloud session, Rilo sends the text of the sentences being read — one sentence at a time, as playback reaches it — to Rilo's server at https://extension.rilo.dev, which turns it into audio.
Synthesis happens in one of two places:
Reading aloud requires signing in with Google. Rilo requests the openid scope only — the narrowest one available. That means Google gives Rilo an opaque account identifier (the sub claim) and nothing else. Rilo does not request, receive, or store your email address, name, profile picture, or contacts, and has no access to any other Google service.
That identifier is sent with each synthesis request and is used for exactly one thing: counting characters against a daily cap, so that one account cannot exhaust the shared service. It is not used to build a profile and is not shared with anyone.
Why sign-in is required. The speech service is paid for by Rilo, per character. Without a verifiable identity there is no way to tell one user from another, and the service would be usable by anyone who found its address — at Rilo's expense, and to the point of breaking it for everyone. An extension cannot hold a secret to prove itself, because every installation ships the same inspectable code. Delegating to Google is the least invasive option we found that actually works.
You can revoke Rilo's access at any time at myaccount.google.com/permissions.
Rilo has a Report a problem form in its popup. Nothing is sent from it unless you write a message and press Send.
Before you send, the form shows you the complete contents of the report — not a summary. What you see is exactly what is transmitted:
This is the one case where a page address leaves your browser. Everywhere else in this policy — during reading, and at all other times — the page URL is never transmitted, and that remains true. Sending a report is a deliberate act you take, having seen the contents, and only when you choose to include it.
Reports are emailed to Rilo's developer and are not stored in any database or used for any purpose other than fixing the problem you described.
As with any request to any website, our server receives your IP address at the network level. We do not store it in application logs or associate it with the text you read.
| Data | Where it is stored | Leaves your device? |
|---|---|---|
| Notes you save (text, page title, date) | chrome.storage.sync | Never sent to Rilo |
| Reading position per page | chrome.storage.local | Never sent to Rilo |
| Settings (PDF preference) | chrome.storage.sync | Never sent to Rilo |
Notes and settings use Chrome's sync storage, so if you are signed in to Chrome they follow you to your other Chrome installs through your Google account, in the same way as bookmarks. That transfer is between you and Google; Rilo has no access to it and no copy of it.
PDF files are never uploaded. Rilo renders PDFs locally in your browser using pdf.js. The file itself never leaves your machine. Only the sentence text being read aloud is transmitted, exactly as with a web article.
Text you select is read only to offer the "Save note" button. Rilo checks your selection locally to decide whether to show that button. Selected text is stored only if you click it, and is stored only in your browser.
Our server holds two things, both only in memory, and both lost whenever the server restarts:
There is no database. We do not write the text you read to disk, and we keep no history of pages you have read.
Rilo is operated from the United Arab Emirates, and the server that synthesizes speech runs there. When the fallback is used, that sentence text is processed by Amazon Web Services in Ireland instead.
In both cases the text is transient: it is turned into audio and discarded, is never written to disk, and is not retained beyond the in-memory cache described above.
Rilo relies on three infrastructure providers. None of them receives more than is listed here.
Amazon Web Services hosts Rilo's server in Ireland, provides the Amazon Polly fallback voice, and delivers bug reports by email. Polly receives sentence text only when the fallback is in use, and receives nothing identifying you — not your account identifier, and not the page address.
Cloudflare carries traffic between your browser and Rilo's servers and terminates the encrypted connection. As with any site behind a network provider, it processes your IP address and the requests passing through it.
Google receives a sign-in request when you authenticate, as it would for any site you sign in to. Rilo requests only the openid scope, so Google returns an opaque account identifier and nothing more.
Beyond these, nothing. Rilo contains no analytics, no advertising, no trackers, and no crash reporting, and loads no remote code.
openid scope only, which does not include them.This reflects the Chrome Web Store's Limited Use requirements: the data Rilo handles is limited to what is strictly necessary for its single disclosed purpose of reading pages aloud.
| Permission | Why Rilo needs it |
|---|---|
| Access to the page you are reading | To extract the article text and paint the read-along highlight. Rilo reads a page's content only when you press play. |
storage | To keep your notes, settings, and reading position. |
offscreen | To play audio in a hidden document, so playback is not blocked by a site's content security policy. |
tabs | Solely to notice when you navigate to a .pdf and open it in Rilo's viewer instead. Chrome's built-in PDF viewer cannot be read aloud by any extension. |
scripting / activeTab | To load Rilo into the current tab when you click the toolbar button. |
identity | To sign you in with Google, so the speech server can tell one user's usage from another's. Requests the openid scope only. |
https://extension.rilo.dev | To reach Rilo's speech server. |
Opening PDFs in Rilo's viewer can be turned off at any time with the "Open PDFs in Rilo" toggle in the extension popup; Chrome's own viewer then handles them as before.
chrome://extensions erases all notes, settings, and reading positions held in browser storage.Because our server keeps nothing on disk, and the only identifier it holds is an in-memory character counter that resets daily, there is no stored account for us to export or delete on request. If you would like the in-memory cache of a specific sentence cleared, contact us and we will confirm when it has been.
Rilo is not directed at children under 13 and we do not knowingly collect data from them.
If we change how Rilo handles data, we will update this page and the "last updated" date above. Material changes — for example, beginning to store anything on disk — will be announced in the extension's Chrome Web Store listing before they take effect.
Questions about this policy or about your data:
Email: eslam.m.awad96@gmail.com
Rilo is published by Eslam Anwar as an individual developer. Rilo is currently offered free of charge and is not operated as a business. Should that change, this page and the Chrome Web Store listing will be updated with the required trader details beforehand.