Privacy Policy

Last updated: 13 November 2026

Close Reader is a local-first e-book reader. Your books and everything you do with them stay on your device unless you use an AI feature or choose to sign in and sync. We don’t show ads and don’t sell your data. Only if you allow it, the app tells Google, and this website tells Google and OpenAI, which of our ads brought you.

In short

  • No account is needed. Without one, our servers keep only your installation’s energy balance, a record of its AI usage (no content), the days it was used and the purchases made in it, usage statistics under a separate identifier unless you turn them off, what’s needed to send notifications if you allow them, plus technical request logs for up to 7 days.
  • The app asks your permission before its first AI request. When you use an AI feature, the text needed for the answer is sent through our server to our AI providers, Anthropic and OpenAI. We don’t store it, and in “No spoilers” mode the chat and “Who’s this?” don’t get the book’s title or author (explanations always do).
  • If you sign in, your books and reading data are synced through private storage in the EU (Frankfurt) that only your account can access.
  • If you add your own book catalog (OPDS), the app connects straight to that server; its address and password stay on your device.
  • To see how the app is used, it sends us usage statistics (which screens and features are used, for how long, how the introduction and our prompts go) under a separate random identifier that isn’t linked to you, your account or your purchases unless you choose to link it. They never include your books, notes or anything you select or type. You can turn them off in Settings → Privacy.
  • Only if you allow it, the app tells Google Analytics for Firebase that it was installed and opened, when you finish the introduction, open a book, get an AI answer or open the plans, and when you start a trial or a purchase or make one, with a device identifier, so that we can see which of our ads work; this website, also only if you allow it, uses Google Analytics and OpenAI’s measurement pixel for the same purpose. Your books, notes and AI requests never go to Google or to OpenAI’s ad measurement.
  • Notifications come only if you allow them, and news and offers only if you turn them on as well.
  • You can delete your account and all synced data in the app at any time.

1. Who we are

The controller of your personal data is Ilia Ilinskii PR Novi Sad, Mite Ruzica 3, Novi Sad, Serbia (“we”, “us”). Contact us about privacy at ilia@oshn-ai.com.

This policy covers the Close Reader app for iOS, iPadOS and Android and this website.

2. Data that stays on your device

The books you import and the data you create while reading are stored in the app’s private storage on your device: the book files, reading positions, highlights, bookmarks and notes, vocabulary and flashcard progress, chat history, cached AI answers and your settings. We have no access to this data unless you sign in to sync it (section 5) or send part of it to an AI feature (section 3).

Your own catalogs. If you add an OPDS catalog, such as your own Calibre, Kavita or Komga server, the app connects directly to the server whose address you entered to browse, search and download books. These requests don’t go through our servers, and we don’t learn which catalogs you use or what you download from them. Like any server, that server receives your IP address and the requests; the person who runs it (usually you) is responsible for it. To search and filter a catalog, the app may also use that server’s own interface (for example Calibre’s, Komga’s or Kavita’s), again directly. The catalog’s name, address and login are stored only on your device, the password in the system’s secure storage (Keychain on iOS, Keystore on Android); catalogs are not synced. If you turn on fast offline search for a catalog, the list of its books (titles, authors, descriptions, topics) is kept on your device too, and is deleted when you turn it off or remove the catalog; it is never sent to us. The books you download become ordinary books in your library and, if you are signed in, are synced like any other (section 5).

3. AI features

When you translate a word, ask “Who’s this?”, request an explanation, chat about a book or when the app prepares chapter summaries for the chat, the app sends the text needed for the answer to our server, which forwards it to an AI provider to generate the answer: Anthropic (its Claude models) or OpenAI. Our server chooses which of the two answers, and the choice may change. Depending on the feature, this can include:

  • the text you selected and the sentences or paragraphs around it;
  • passages from the book, limited to the part you have already read unless you switch to “Whole book”;
  • your question and earlier messages of that chat (its first question and answer, and the latest messages);
  • in a book’s chat, while “My notes” is on: your own notes and excerpts on that book (the passages you highlighted and what you wrote), limited to the part you have already read unless you switch to “Whole book”, and notes not tied to a place in the book;
  • the book’s language and your translation language; for explanations and in “Whole book” mode, also its title and author.

Questions about the world outside the book. When a chat question needs facts from outside the book (for example, real history, science or the author’s life), or you tap “Check sources” under an explanation, the provider that answers may search the web for them, and the answer links to the pages it used. The search queries are made from your question and a short passage before your place; in “No spoilers” mode they don’t include the book’s title or author. The search is run by that provider (Anthropic or OpenAI) as part of its service. A source you open is shown by its website, which receives your IP address like any website you visit. You can turn web search off in Settings → Privacy → Search the web when needed.

Short checks by OpenAI. Whichever provider answers, three quick yes-or-no checks are made by OpenAI. To tell whether a chat question needs facts from outside the book, it gets your question with the last two messages and a short passage before your place. To tell whether a word you selected is a name, it gets the word, its sentence, the book’s language and how often the book has written the word with a capital letter. For a book too long to send whole, to tell which chapters your chat question is about, it gets your question with the last two messages and the titles and summaries of the chapters you have read. We don’t add the book’s title or author to these checks.

Our server does not store the text of your requests or of the answers. Anthropic and OpenAI process this data as our service providers; under their API terms they do not use it to train their models. We call OpenAI with response storage turned off; it may keep the data for a limited time (currently up to 30 days) to detect abuse. Anthropic may keep requests and answers for up to 30 days, and longer (currently up to 2 years) when its automated systems flag them as violating its usage policy. Answers are cached on your device so that repeating a request doesn’t send it again.

Before the first AI request, the app explains what is sent, says that it goes to the third-party AI companies named in this policy, and asks for your permission. Nothing is sent to either provider until you allow it, and you can withdraw your permission at any time in Settings → Privacy → AI help.

Reporting an answer. You can report an AI answer in the app (the flag under the answer). The report sends us the answer, the question or selected text it answered, the reason you chose, the feature, your translation language, the app version, your installation identifier and, if you are signed in, your account identifier. We use reports only to check answers and improve our safeguards.

Don’t use the AI features on text you are not allowed to share with a service provider.

4. Energy and purchases

AI features use energy (⚡). To keep track of it, the app creates a random installation identifier that is not derived from your device’s hardware or advertising identifiers and sends it with AI requests. If you are signed in, your account identifier is used instead. On iOS the installation identifier is kept in the device’s Keychain, so it stays the same if you reinstall the app. For each identifier we store your plan, your energy balance and a record of spending: for every AI request, its type, the AI model, the number of tokens, its cost, the energy charged and the time. These records contain no content of your requests.

We also note each day the app contacts our server, which it does when you open it or return to it: the platform (iOS or Android) and the app’s version, the region set in your device’s settings (for example, Serbia; it is a setting, not your location), and whether a book was opened that day. We use these days of use only for the statistics below.

To prevent abuse of the free energy, when a new installation first contacts our server we count new installations per network. For this we store a keyed one-way hash of your IP address (for IPv6, of its network prefix) with a counter for that day, never the address itself, and delete it after two days. If one network opens an unusually large number of new installations in a day, further ones start without the free starter energy; purchases and signing in still work.

When you buy a subscription or energy in the App Store or Google Play, the app attaches your identifier to the purchase and sends the purchase’s identifier to our server, which checks it with Apple or Google. We receive and store what the store reports: the product, its status and dates, whether it renews, a trial or refund if any, the country of your store account, the price and currency, the transaction or order number and the identifier attached to it. The stores also notify our server when a subscription renews, is cancelled or refunded. We never receive your payment details: Apple and Google handle the payment as independent controllers.

From the energy and purchase records, the days of use and, if you are signed in, the dates your reading position was last synced, we compile aggregate statistics: for example, how many installations open the app and use AI features each day, in which countries and on which platforms, how many buy a plan, and how the cost of AI compares with what energy brings in. These are counts and totals; apart from choosing who gets a notification (below) and the usage statistics you choose to link to your account (above), we don’t build profiles of individual people. To keep prices right and prevent abuse, we may look at the installations whose AI requests cost the most, by their identifier. Apart from ad measurement below, which you can allow or refuse, we don’t use third-party analytics services.

Usage statistics (you can turn them off). To understand how Close Reader is used and where it can be better, the app sends us statistics about its use. For this it creates a second random identifier, kept on your device apart from the installation identifier: it is never sent together with the installation identifier, your account identifier or the identifiers Firebase uses, we don’t link it to them, to your purchases or to you unless you allow it (below), and the app replaces it every 12 months. With it, a few times a day, the app sends: when the app is opened (and whether from a notification, a link or a file) and goes to the background, and how long it was in use; which screens were opened; the steps of the introduction and the choices made in them; which of our windows and prompts were shown (for example, the offer of a free trial or the request for notifications) and the answer; taps on a few marked buttons; that a book was added or opened (its format only), how long it was read, how many pages were turned and how much of it has been read, in tens of percent; which kinds of actions were used on selected text, the type of an AI answer and whether it came from answers saved on your device; that a word was saved, a review finished, notes exported or a quote shared; that the plans screen was opened and a purchase started, with the product and its outcome; changes of settings that have a fixed set of values (for example, the theme); and about the app and device: the platform, the operating system’s version, whether it is a phone or a tablet, the device model, the app’s version and whether it is a test version, the app’s language and the region set on the device. They never contain the text of your books, their titles, your notes, what you select, search for or ask the AI, your device’s name or its advertising identifier. To prevent misuse, our server counts these messages per network with a keyed hash of your IP address, as above, kept for two days; the address itself is not stored with the statistics. We use them only in aggregate: for example, how long people read or at which step they leave the introduction. You can turn them off at any time in Settings → Privacy → Usage statistics: the app stops sending them and our server deletes the statistics kept under that identifier; if you turn them on again, the app creates a new identifier.

Linking the statistics to your account (only if you turn it on). In Settings → Privacy → Help improve Close Reader you can let us link your usage statistics to your account or, if you aren’t signed in, to your installation. Then the app sends the statistics identifier once together with your installation identifier and, if you are signed in, your account identifier, and we link the statistics collected from that moment on, never earlier ones, with your plan, purchases and energy use, to see which features help people read and what they pay for. While linked, these statistics are personal data about you and are no longer only aggregate. You can turn the link off at any time: it is deleted, and the app goes on under a new statistics identifier. Deleting your account deletes the link and the statistics collected under the linked identifiers.

Measuring our ads (only if you allow it). We advertise Close Reader on Google. To learn which ads bring readers, the app asks you once whether you allow ad measurement; on iOS, this is Apple’s request to allow tracking. Until you allow it, nothing is sent. If you allow it, the app uses Google Analytics for Firebase, a Google service, which receives: that the app was installed and opened; when you finish the introduction, open a book, get an AI answer, open the plans screen or start a purchase (only the type of the answer or the product); when you start a free trial or buy a subscription or energy (the product and its price); basic information about the app and device (app version, device model, operating system, language, and the country and region derived from your IP address); an app instance identifier created by Firebase; and your device’s advertising identifier where the device allows it (on iOS only if you allow tracking; on Android it can be reset or deleted in the device settings). Google uses this to show us which ads led to installs, trials and purchases and to deliver our ads better, and may combine it with what it knows about your interactions with Google’s ads. Your books, notes, AI requests and answers, email address and account identifier are never sent to Google. From version 1.3, if you allow ad measurement, we also keep the app instance identifier Firebase created on your device next to your usage statistics identifier and, on Android, the campaign Google Play reports for your install (its source, medium and campaign name, never the ad click identifier) with your usage statistics, and we may receive from Google which campaign each app instance identifier came from, so that we can see which ads bring readers who keep reading and buying. If you allowed ad measurement in an earlier version, we do this only after you allow it again. You can withdraw your permission at any time in Settings → Privacy → Ad measurement: the app stops sending, deletes the identifier Firebase created on your device, and we delete the link we kept. Google processes this data under its own terms and privacy policy.

Push notifications (only if you allow them). The app asks you about notifications once, and your device asks for permission. Without that permission we receive nothing for this. With it, we store together with your installation identifier (and your account identifier, if you are signed in): a push token issued by Apple or Google, your platform, the app’s language and version, your time zone, when you last opened the app (updated at most once a day), and for each notification when it was sent and whether it was opened. We send two kinds: notifications about your account, your purchases or the service; and, only if you also turn on “News and offers”, news and offers about Close Reader, including a reminder when you haven’t opened the app for a while. We choose who gets a notification by these details and by your plan and how you use the app. Apple (Apple Push Notification service) and Google (Firebase Cloud Messaging) deliver notifications: they receive the token and the notification’s text, which says nothing about your books, notes or AI requests. Firebase Cloud Messaging is separate from ad measurement and doesn’t depend on it. You can turn off “News and offers” at any time in Settings → Privacy. If you turn all notifications off in your device’s settings, the app removes this record from our server the next time you open it.

5. Account and sync (optional)

You can sign in with Apple, Google or a one-time code sent to your email. We then receive and store:

  • your email address (with Apple, possibly a private relay address) and the identifier the sign-in provider gives us;
  • your name and profile picture link, if Google or Apple shares them.

We use your email address to sign you in and, rarely, to tell you about something important for your account, your purchases or the service, such as an outage. We don’t use it for advertising.

While you are signed in, the app syncs between your devices: the book files you add, book details (title, author, language, cover), reading positions and progress, highlights and notes with the passages they refer to, bookmarks (the place and the first words of the page), chat messages, vocabulary with example sentences, the chapter summaries the app has prepared for you (so that another device doesn’t have to prepare them again), and your reading and translation settings. The book index used for search is not synced; each device builds its own.

Synced data is stored with Supabase in the European Union (Frankfurt, Germany). Book files are kept in a private storage bucket, and every record is protected by access rules that allow only your account to read or change it.

6. Sample books

If you tap “Load sample books”, the app downloads a few public-domain books (from Project Gutenberg and Wikisource) from this website. As with any download, our hosting provider receives your IP address; we don’t keep a record of who downloaded them.

7. Emails to us

If you write to us, we use your email address and message to answer you and keep the conversation for as long as needed to handle your request.

8. This website

This website loads no external fonts. Our hosting provider, Vercel, processes technical request data (such as IP address, browser and time of request) to deliver the site and protect it from abuse, and keeps these logs for a short period.

Measuring our ads (only if you allow it). A banner asks whether you allow ad measurement on this site; your answer is kept in your browser’s local storage, and “Cookie settings” at the bottom of every page asks again. Until you allow it, the site loads no third-party scripts and sets no cookies. If you allow it, the site loads Google’s tag for Google Analytics, which sets cookies (such as _ga and _gcl_au) and sends Google the pages you open and how you use them (scrolling, links you follow, whether you tap a store button), information about your browser and device, the country and region derived from your IP address and, if you came from one of our Google ads, the ad click identifier. When you then tap the Google Play button, the site passes that ad click identifier and the campaign to Google Play, so that the app, if you also allow ad measurement in it (section 4), can tell Google that the install came from the ad. Google uses this to show us which ads bring visitors and installs and to deliver our ads better, and may combine it with what it knows about your interactions with Google’s ads. We also advertise in ChatGPT, so the site also loads OpenAI’s measurement pixel, which sets the cookies __obref (a random identifier of your browser, kept for a year) and, if you came from one of our ads in ChatGPT, __oppref (that ad click’s reference, kept for 30 days), and sends OpenAI the address of the page you open, the time and whether you tap a store button, with these identifiers and, as with any request, your IP address and browser information. OpenAI uses this to show us which of our ads in ChatGPT bring visitors to the stores. The pixel keeps your answer in its own cookie __oaiq_consent. If you withdraw your permission, the site deletes these cookies and stops loading Google’s tag and OpenAI’s pixel.

9. Server logs

Every request the app makes to our server (AI requests, energy and purchases, sign-in and sync) carries technical data: your IP address, the approximate location that can be derived from it (country, region, city), the app’s user agent, the time, and the address and result of the request. Supabase, which hosts our server, records this in technical logs and keeps them for up to 7 days. We use them only to run the service, fix errors and prevent abuse, for example to see how many requests fail or are refused for lack of energy. The logs don’t contain the text of your AI requests, your books or your notes.

10. Why we process your data (legal bases)

We process personal data under the Serbian Law on Personal Data Protection and, where it applies, the EU General Data Protection Regulation (GDPR):

  • to provide the service you asked for — AI answers, energy and plans you bought, your account and sync, and important messages about them (performance of a contract);
  • for our legitimate interests — keeping track of energy, keeping the service secure, preventing abuse and fraud, answering your messages, and compiling aggregate statistics and usage statistics, which you can turn off (section 4), to understand how Close Reader is used, improve it and set its prices;
  • to meet legal obligations, such as keeping records of purchases where accounting and tax law requires it;
  • with your consent — ad measurement through Google Analytics for Firebase and, on iOS, tracking (section 4), Google Analytics cookies and OpenAI’s measurement pixel on this website (section 8), “News and offers” notifications, and linking usage statistics to your account (section 4); you can withdraw it at any time in the app’s Settings → Privacy or the site’s “Cookie settings”, which doesn’t affect what was sent before.

Apart from measuring our own ads and sending “News and offers” with your permission, we don’t use your data for advertising, and we don’t make automated decisions that have legal or similarly significant effects on you.

11. Service providers

We share data only with providers that help us run Close Reader, under contracts that require them to protect it:

ProviderPurposeLocation
Supabase, Inc.Accounts, sync database, book file storage, our server functions and their logsEU (Frankfurt, Germany)
Anthropic, PBCGenerating AI answersUSA
OpenAI, L.L.C.Generating AI answers and the short checks described in section 3USA
ResendSending sign-in codes and service messages by emailUSA
Google LLC (Google Cloud Pub/Sub)Passing Google Play purchase notifications to our serverUSA / global network
Google LLC, Google Ireland Limited (Google Analytics, Google Analytics for Firebase)Measuring which of our ads bring visitors, installs, trials and purchases, only if you allow it (sections 4 and 8)USA / global network
OpenAI, L.L.C. (OpenAI Ads)Measuring which of our ads in ChatGPT bring visitors to the stores, only if you allow it (section 8)USA
Apple Inc. (Apple Push Notification service), Google LLC (Firebase Cloud Messaging)Delivering push notifications, only if you allow them (section 4)USA / global network
Vercel Inc.Hosting this websiteUSA / global network

Apple and Google act as independent controllers when you download the app from their stores or use Sign in with Apple or Google; their privacy policies apply to that. We may also disclose data when required by law or to protect our rights and users’ safety.

12. International transfers

Some providers process data outside Serbia and the EU, mainly in the USA. Where this happens, we rely on safeguards recognised by applicable law, such as the European Commission’s Standard Contractual Clauses or the EU–US Data Privacy Framework.

13. How long we keep data

  • On your device: until you delete it or the app.
  • Account and synced data: until you delete it or your account. When you delete a book, a highlight, a note, a word or a chat, its text is erased from our servers at the next sync, and a book’s chapter summaries with it; only a record that it was deleted remains, so that your other devices remove it too. Deleting the account removes your book files and synced records at once; copies in our database provider’s backups are overwritten within its backup cycle (currently up to 7 days).
  • AI request content: not stored by us; kept by Anthropic and OpenAI as described in section 3.
  • Reports of AI answers: up to 12 months; the ones sent while signed in are deleted with your account.
  • Network counters for new installations: two days.
  • Days of use: 14 months; deleting your account deletes its days of use.
  • Usage statistics: 90 days under the statistics identifier, unless you turn them off earlier, which deletes them; counts without any identifier up to 25 months; their network counters two days. A link to your account or to Firebase’s identifier: until you turn it off, withdraw ad measurement or delete your account, and no longer than the statistics it links.
  • Ad measurement: Google Analytics keeps the events for two months; turning ad measurement off deletes the identifier on your device, and withdrawing it on the website deletes its cookies (otherwise they expire after up to two years).
  • Push notifications: the token and the details kept with it until you turn notifications off or remove the app, and no longer than 180 days after you last opened it; records of notifications sent for 90 days.
  • Server logs: up to 7 days.
  • Energy and purchase records: while you use Close Reader. Deleting your account deletes its energy balance and spending records; records of store purchases are kept without the link to you for as long as accounting and tax law require.

14. Your rights

You have the right to access your personal data, correct it, delete it, restrict or object to its processing, and receive it in a portable format. You can delete your account and all synced data yourself in the app (how to delete your account). For any other request, write to ilia@oshn-ai.com. We answer within 30 days.

You also have the right to lodge a complaint with the Serbian Commissioner for Information of Public Importance and Personal Data Protection (poverenik.rs) or, if you live in the EU, with your local data protection authority.

15. Children

Close Reader is not directed at children under 13, and we don’t knowingly collect their personal data. If you are younger than the age at which you can consent to the processing of your data where you live (15 in Serbia; between 13 and 16 in EU countries), use Close Reader only with the permission of a parent or guardian. If you believe a child has given us personal data, contact us and we will delete it.

16. Security

Data is encrypted in transit. Server access keys are kept on the server, synced records and files are isolated per account, and we keep the data we hold to a minimum. No system is perfectly secure, but we work to protect your data and will inform you and the authorities of a breach where the law requires it.

17. Changes

We will post any changes on this page and update the date above. If a change materially affects how we use your data, we will also tell you in the app or by email before it takes effect.

18. Contact

Ilia Ilinskii PR Novi Sad, Mite Ruzica 3, Novi Sad, Serbia. Email: ilia@oshn-ai.com.