Chess Advisor — Privacy Policy
Effective date: 21 October 2026
Chess Advisor ("the app") is published by ConeM Labs ("we", "us"). Contact: support@conemlabs.com · https://conemlabs.com
This policy covers the Chess Advisor app for Android and iOS. It is published at https://conemlabs.com/chessadvisor/privacy.html.
Summary
- You don't need an account. We never ask for your name or email address.
- Your games, analysis, training progress and settings are stored on your device, and the engine analysis runs on your device.
- The AI features (AI explanations with follow-up questions, AI Coach, board scanning and scoresheet reading) are optional and off until you agree. If you turn them on, the app sends an anonymized summary or aggregate statistics, never names, usernames or PGN; a follow-up question also sends the board position, the engine lines and your question; a board scan sends the photo or screenshot you pick; a scoresheet import sends the photo of the scoresheet, including whatever is written on it (usually the players' names). This goes to our server for AI processing; our server uses a third-party AI model provider, which may process it on servers outside your country. AI use is rate-limited (per-minute and daily limits) to prevent abuse. We don't store your photos.
- If you choose "Import to Lichess" for a game you recorded and confirm, the app uploads that game directly from your device to Lichess, where anyone with the link can view it.
- We use Google Firebase (Analytics, Crashlytics, App Check) to measure usage, fix crashes and protect our server from abuse. Google derives an approximate location (for example, country or city) from your IP address for analytics.
- Every feature is free. Optional supporter subscriptions are billed by Apple or Google; we use RevenueCat to check that a subscription is active, with an anonymous ID it generates. We never see your payment details.
- No ads. We don't use the advertising ID (Android Advertising ID or Apple IDFA), we don't track you across other companies' apps or websites, and we don't sell your data.
1. Data that stays on your device
The following stays on your device and is never uploaded by us: imported and recorded games (PGN), engine analysis and Deep Review results, insights, your opening repertoire and training progress, puzzle progress, cached AI commentary and follow-up answers, the chess username you enter (it is stored only on your device; it is sent to Chess.com or Lichess when you import games, see section 4), and your settings. A recorded game leaves your device only if you share it, or upload it to Lichess (section 4).
- Notifications and widget. The weekly recap notification (optional) and the home-screen widget are generated on your device from this local data.
- Backup and restore. "Export backup" creates a
.chessadvisorfile on your device and opens the system share sheet. You choose where it goes (for example, Files, a cloud drive or email). We never receive it. Anyone you give the file to can read your games and progress. - Sharing a recorded game. "Share PGN file", "Share as text" and "Copy PGN" in the over-the-board recorder hand the game (moves, clock times and the details you entered, such as player names) to the app you choose or to the clipboard. We never receive it.
- Follow-up conversations (questions you ask about a move and the answers) are kept in memory only while the app is open; answers are also cached on your device like AI commentary.
- Photos for board scanning and scoresheet reading. The app reads the photo or screenshot you pick or take. It doesn't save it to your photo library. The system picker may leave a temporary copy in the app's cache, which is deleted when the system clears the cache, you clear the app's data or you uninstall the app.
- Uninstalling the app, or clearing its data, deletes all of this.
2. AI features (optional)
The AI features are AI explanations (including follow-up questions about a move), AI Coach, board scanning and scoresheet reading. They are off by default. AI explanations, AI Coach and board scanning each ask for your consent separately before they are first used; follow-up questions are covered by the AI explanations consent. Scoresheet reading uses the same photo consent as board scanning and, before its first use, asks you again with its own explanation, because a scoresheet usually shows names. You can turn all of them off at any time with the AI explanations switch in Settings, and the app then stops sending AI requests.
What is sent:
- AI explanations (one game): a compact summary of the engine analysis, including the moves, move quality, evaluations and the opening name.
- Follow-up questions (one move): the board position before the move (FEN, including the side to move), the move played with its move quality and evaluations, the engine's top lines (moves and evaluations) computed on your device, the evaluation and best reply for any move your question names, tactical labels such as "fork", and the text of your question (up to 300 characters). Please don't type personal information into your question.
- AI Coach (many games): aggregate statistics about your recently reviewed games, including your win/draw/loss record and score, accuracy overall and by game phase (opening, middlegame, endgame), accuracy by month (year and month only, last three months), error counts by tactical motif, your most played opening families with your results in them, conversion and save rates, time-trouble statistics (blunder rates with low or normal clock time, average seconds per move) and "tilt" statistics (results after a win or a loss).
- Board scanning (one image): the photo or screenshot you pick or take, so the AI can read the position, and which side you said is at the bottom (if you chose one). Before it is sent, the app shrinks it to at most 1024 pixels on the long side and re-encodes it without metadata (no location, camera or time data). Only the image you choose is sent; avoid images that show people or personal information. The position read from it is shown to you to check and correct before it is used.
- Scoresheet reading (one image): the photo of a handwritten or printed scoresheet that you pick or take, so the AI can read the moves and the header. It is shrunk and re-encoded without metadata exactly like a board scan. The photo contains whatever is written on the scoresheet, usually the players' names, the event, date, round and result, and the moves; the AI reads those fields too. Only the image you choose is sent. The moves and details read from it are shown to you to check and correct before they are used.
- Apart from what is visible in a photo you choose to send, none of these contain player names, usernames, PGN headers, raw PGN, links, game IDs or exact dates. AI explanations and AI Coach also contain no board positions (FEN); follow-up questions contain the one position you ask about.
Sent with every request:
- A Firebase App Check token. This proves that the request comes from a genuine copy of the app.
- A one-way hashed device identifier. It is a SHA-256 digest of the platform identifier (Android ID on Android, identifierForVendor on iOS), and the raw identifier is never sent. We use it only for rate limiting and abuse protection.
- The app's display language (a code such as "es"), so the AI answers in your language. It is part of the instructions the AI model receives.
- Like any internet request, the request also carries your IP address.
What our server does: our server is a Supabase Edge Function. It checks the App Check token. For rate limiting, it computes a salted hash of your IP address; the raw IP address isn't stored. It then forwards only the summary, statistics, follow-up question with its engine facts, or image to the API of a third-party AI model provider used by our server, which writes the commentary, coach report or answer or reads the board or the scoresheet, and returns the result to your device. Your hashed device identifier, IP hash and App Check token are not sent to the AI model provider. To prevent abuse, each device and IP address can make only a limited number of AI requests per minute and per day.
What we keep on the server:
- Request counters keyed by the hashed device identifier and by the IP hash. Per-minute counters are deleted after about an hour. Daily counters are deleted once they are more than 7 days old.
- A total of AI spend per month (no identifiers).
- A cache of generated AI responses (commentary, coach reports and follow-up answers), so we don't have to pay for the same answer twice. The cache is keyed by a hash of the request text and contains no identifiers. Board scans and scoresheets are never cached.
We don't store the summary, statistics or questions you send, your games, or any profile data. We don't store your photos or screenshots, or the position, moves or names read from them: the image is passed to the AI model provider and discarded when the request ends.
AI model provider and international transfers. The AI model provider used by our server may process and store data on servers outside your country. That means your summary or statistics may be transferred to a country whose data-protection laws differ from yours and that may not be recognized as providing an adequate level of protection. The same applies to follow-up questions and to board-scan and scoresheet images. The provider's terms don't promise that API inputs won't be kept or used to improve its models, so you should assume that the provider may keep the text and images we send and use them under its own terms. This is why we send only anonymized text and strip image metadata; a scoresheet photo still shows the names written on it. We may switch to a different AI model provider at any time; the same rules apply to whichever provider we use, and no personal data such as your name, email, account, IP address or device identifier is ever sent to it. You can ask us (support@conemlabs.com) which provider we currently use.
AI-generated text can be wrong, and a scanned position or a read scoresheet can contain mistakes. Treat AI output as a study aid, not as fact.
3. Google Firebase
We use these Firebase services, provided by Google:
- Google Analytics for Firebase. We use it to see which features are used and how the app performs. It collects screen views, sessions and app lifecycle events; feature-usage events that we define (for example, that onboarding was finished or skipped, a Deep Review or puzzle session was started, or a board scan worked or failed), which contain only the feature, a coarse outcome and rounded ranges such as "10-24 games", and never usernames, board positions, moves or anything you type; in-app purchase events (if you buy a supporter subscription, it records the product and price, but not your payment details); device information (model, OS version, language); an app-instance identifier; and an approximate location (for example, country or city) that Google derives from your IP address. Collection of the advertising ID is disabled. We don't set a user ID, and we don't use Google Signals or link Analytics to advertising products.
- Firebase Crashlytics. If the app crashes, it sends a crash report so we can fix the problem. The report includes the stack trace, the app's state at the time of the crash, device metadata (model, OS version, free memory and disk space, orientation), a Crashlytics installation identifier, and the recent Analytics events that came just before the crash.
- Firebase App Check. It confirms that requests to our AI server come from the genuine app. It uses Play Integrity on Android, and App Attest (or DeviceCheck as a fallback) on iOS. The resulting tokens are used only to authorize requests to our AI server.
Google processes this data on our behalf. Google's privacy policy is at https://policies.google.com/privacy, and its explanation of how it uses data from apps that use its services is at https://policies.google.com/technologies/partner-sites.
4. Services the app contacts directly from your device
These requests go straight from your device to the service. We don't receive a copy.
- Chess.com and Lichess. When you import games or prepare against an opponent, the app sends the username you entered to the public Chess.com API (https://api.chess.com) or the Lichess API (https://lichess.org) and downloads that player's public profile and games. Their privacy policies apply: https://www.chess.com/legal/privacy and https://lichess.org/privacy.
- Lichess game import (optional). When you tap "Import to Lichess" for a game in the over-the-board recorder and confirm, the app sends that game's PGN (the moves, clock times if you used the clock, and the details you entered, such as player names, event, site, date, round, result and Elo) directly from your device to Lichess (https://lichess.org/api/import), without an account or token, and opens the game page Lichess returns. Lichess publishes it as an imported game that anyone with the link can view. Nothing is sent until you confirm. Lichess's privacy policy applies: https://lichess.org/privacy.
- Lichess opening explorer. This is an experimental feature, and it is turned off in the store versions of the app. If it is turned on, the app sends the board position you are viewing to Lichess.
- Lichess endgame tablebase. In the endgame trainer, the app sends the board position you are practising (a FEN: only the pieces and whose move it is, nothing about you) to the public Lichess tablebase (tablebase.lichess.ovh) to look up the perfect moves. Nothing is sent unless you use the endgame trainer. Lichess's privacy policy applies.
- Narration voice (optional download). Narration uses an on-device voice that you download only if you ask for it (Settings > Voice, or the download button where narration is offered). The app then downloads the voice model and voices from Hugging Face (huggingface.co, which serves the files through its content delivery network). This is a plain file download: nothing about you, your games or the text being read is sent, but, as with any download, Hugging Face sees your IP address. Speech is then generated entirely on your device; nothing you hear is sent anywhere. Hugging Face's privacy policy applies to the download.
- Fonts. Some screens use a font that the app downloads from Google Fonts the first time it's needed.
For the font downloads, no personal data is sent, but, as with any download, Google sees your IP address.
5. Voice input (over-the-board recorder and blindfold mode)
When you tap the microphone to speak moves, the app uses your device's built-in speech recognition. On Android that is usually Google's speech service, and on iOS it is Apple's. Depending on your device and settings, these services may send the audio to Google's or Apple's servers to turn it into text. Their privacy policies apply: https://policies.google.com/privacy and https://www.apple.com/legal/privacy/.
The app itself never records, stores or uploads audio. It only receives the recognized text, which it turns into moves on your device. Microphone and speech-recognition permissions are requested only when you open the over-the-board recorder, or when you first tap the microphone in blindfold mode (Play). You can decline them and enter moves by tapping the board (or, in blindfold mode, by typing them) instead. Blindfold mode reads the engine's replies aloud with the same on-device voice as game narration; nothing is sent anywhere for that.
6. Supporter subscriptions (optional)
Every feature of the app is free. You can optionally buy an auto-renewing supporter subscription, which adds a supporter badge and extra board themes. Subscriptions are sold and billed by Apple (App Store) or Google (Google Play) under their terms. We never see your card or payment details.
We use RevenueCat (RevenueCat, Inc.) as a service provider to validate purchases, restore them after a reinstall or on another device, and know whether your supporter subscription is active. The RevenueCat software in the app contacts RevenueCat's servers when the app starts and when you buy or restore a subscription. RevenueCat receives:
- an anonymous app user ID that RevenueCat generates for your installation. We don't set our own user ID, and it is not linked to your name, email address or chess username;
- the purchase and transaction data the store provides for your subscription (for example, the product, purchase and renewal or expiry dates, price and currency, the store country, transaction identifiers and the store receipt or purchase token) and the resulting subscription status;
- device and app information that comes with each request, such as the platform and OS version, app and SDK version, language and country settings, and your IP address.
RevenueCat processes this data on our behalf, only to provide this service. It doesn't receive your games, your chess username or anything you type, and we don't use this data for advertising or tracking. RevenueCat's privacy policy is at https://www.revenuecat.com/privacy. The app also keeps a note on your device of whether your subscription is active, so the perks work offline. See section 3 for the purchase event that Analytics records.
7. Feedback email
If you tap "Send feedback", the app opens your own email app with a message to support@conemlabs.com. The message is pre-filled with the app version and, if you have connected one, your chess username. You can edit or delete any of this before you send it. If you send it, we receive your email address and whatever you wrote, use them only to reply, and delete the conversation when it is no longer needed.
8. How we use data
We use data to:
- provide the app's features
- understand which features are used, and fix crashes and performance problems
- validate, restore and keep track of supporter subscriptions and their perks
- keep the AI server available and within budget (rate limits), and block abuse
We don't use data for advertising, profiling or selling.
9. Who receives data
- Service providers acting for us: Google (Firebase), Supabase (which hosts our AI server) and RevenueCat (supporter subscriptions, section 6).
- A third-party AI model provider used by our server: receives the AI summary, statistics, follow-up questions and board-scan and scoresheet images described in section 2, possibly on servers outside your country, but only if you turn the AI features on.
- Services you choose to use: Chess.com, Lichess (including games you upload with "Import to Lichess"), Google Fonts, your device's speech service, and Apple or Google for purchases, as described above.
- Legal requirements: we may disclose data if the law requires it.
We never sell personal data or share it for advertising.
10. Retention
- Data on your device: kept until you delete it, clear the app's data or uninstall the app.
- AI rate-limit counters: per-minute counters are deleted after about an hour, and daily counters once they are more than 7 days old. Cached AI responses contain no identifiers.
- Board-scan and scoresheet images: not stored by us; discarded when the request ends.
- Games you upload to Lichess: kept by Lichess under its own terms; we have no copy and cannot delete them.
- Firebase Analytics: event-level data is kept for 2 months, the shortest retention setting. Aggregated reports may be kept longer.
- Crashlytics: crash reports and their identifiers are kept for 90 days.
- Supporter subscriptions: RevenueCat keeps the purchase records and the anonymous ID while we use its service, so subscriptions can be validated and restored, unless you ask us to delete them. Apple and Google keep their own purchase records under their policies.
- Support emails: kept only as long as needed to handle your request.
11. Your choices and rights
- AI features: you can turn AI explanations (and follow-up questions), AI Coach, board scanning and scoresheet reading off at any time in Settings. Revoking consent stops all further AI requests.
- Camera and photos: the camera is used only when you choose to take a photo for a board scan or a scoresheet, and you can deny or revoke camera access in your device settings. Picking a photo uses the system photo picker.
- Voice input: you can deny or revoke microphone and speech-recognition permissions in your device settings.
- Analytics identifiers: uninstalling the app resets them.
- Supporter subscriptions: you can manage or cancel a subscription at any time in your App Store or Google Play account settings. To have the RevenueCat record deleted, email us the approximate purchase date and the store's order number.
- Requests: depending on where you live, you may have the right to access, correct or delete your data, or to object to its processing. To make a request, email support@conemlabs.com. We don't know who you are, so please tell us what to look for (for example, the date and time of a crash). We may not be able to find pseudonymous data without that. You can also complain to your local data-protection authority.
12. Children
Chess Advisor is not directed to children under 13, and we don't knowingly collect personal information from them. If you believe a child has sent us personal information, contact us and we will delete it.
13. Security
All network traffic uses HTTPS (TLS). Our AI server accepts only requests that carry a valid App Check token. Its database can only be reached by the server's own service role, and it stores no game or profile data and no images.
14. Changes
If we change this policy, we will post the new version at the same address with a new effective date. If the changes are significant, we will also point them out in the app or in the release notes.
15. Contact
ConeM Labs — support@conemlabs.com — https://conemlabs.com