Privacy Policy
io.github.ber4444.chessAI Chess Coach 3D is free. It has no purchases, no accounts, no sign-in, no advertising, and we have added no analytics or crash-reporting SDKs. Your games, settings, and history are stored on your device and are never uploaded.
Two things leave your device, and only in the situations described below:
Everything else — the chess engine, the 3D board, the move coach, the game summary, and the answering itself in rules Q&A — runs on your device.
The app is open source. If you would rather read the code than take our word for any of this, it is all on GitHub.
01
The app saves the following locally, in the platform's own app storage — SharedPreferences on Android, UserDefaults on iOS:
This data is never sent to us. It is removed when you delete the app, or on Android when you clear the app's data in Settings; on iOS, Offload App keeps it, and only deleting the app removes it. If device backup is turned on — Android's backup to your Google account, or iCloud or computer backup on iPhone — this data is included in your own backup, which Google or Apple store under your account; we have no access to it. If you use Share PGN, the game text is handed to the app you pick — mail, messaging, a file — and that destination's own privacy terms then apply.
02
Two features send data to our AI service, which runs on Fly.io.
Opening Explainer — after a game ends, sends the board position (FEN), the first 20 moves in standard notation, the opening's ECO code, and your language preference.
Position Chat — sends the same position data, your recent messages in that conversation (bounded to the last several turns), and the message you type, which is limited to 500 characters.
Please do not type personal information into the chat box. It is a free-text field, so anything you write there is sent to our service and on to the model provider named below. Keep it to chess.
To compose the wording of an answer, our service forwards the position and your question to Google's Gemini API, which generates the response text. We use the API's paid tier, through a Cloud project with active billing. Under the Gemini API terms for paid services, Google does not use prompts or responses to improve or train its models, and processes them as a data processor under its Data Processing Addendum. The human review Google applies to its free tier does not apply to paid requests, and we do not use the free tier.
Google does, however, log prompts and responses for a limited period — solely to detect and prevent abuse of its usage policy, and for any legally required disclosure. That logging happens on Google's systems; it is not visible to us and we never receive it. Google states this data may be stored or cached in any country where it maintains facilities. See also Google's privacy policy.
If the model is unavailable or its answer fails our validation, the app falls back to text composed from our own reference corpus, and nothing further is sent.
These features are optional: they only run when you open the Chat screen or ask for an opening explanation.
03
The Move Coach, Game Summary, and Rules Q&A features run entirely on your device.
The Move Coach does not use an AI model on either platform: its text is computed deterministically from the chess engine's own analysis of your game.
ML Kit is a Google library built into the Android app, and Google collects the following from it for its own diagnostics and usage analytics of ML Kit, as Google describes in its ML Kit data disclosure:
This goes directly from the library to Google over HTTPS; we never receive it. Google states that it does not transfer this data to third parties. It is governed by Google's privacy policy. In this app, ML Kit runs only when you use Rules Q&A on Android, so not using Rules Q&A means none of this is sent. The iOS app does not include ML Kit.
The app downloads no AI model of its own. Apart from the ML Kit diagnostics above, none of these on-device features sends anything anywhere.
Nothing about your games is uploaded for these features, and they work with no network connection.
04
| Destination | When | What it sees |
|---|---|---|
| Our AI service on Fly.io | You use Opening Explainer or Position Chat | Position and your typed message; IP address |
| Google Gemini API, via our service | The same request, to compose the answer | Position and your typed message; not your IP |
| Google ML Kit (Android only) | You use Rules Q&A | The diagnostics and identifiers listed in section 03; not your question or the answer |
| Android's AICore service (Google), Android only | A Rules Q&A question on a supported device that lacks the model | A model download made by Android itself, under Google's terms |
The app never shows a permission prompt. On Android it declares only permissions that Android grants automatically at install: internet access, viewing network connections, vibration (declared by the 3D board library), and access to Android's own on-device AI service; on iOS it declares none. It does not ask for contacts, location, camera, microphone, photos, or storage access on either platform, and it has no access to them. Apart from the two Android-only rows, the connections above are the same on Android and iOS.
05
The iOS app is currently distributed as a beta through Apple's TestFlight. Apple runs TestFlight under its own terms and privacy policy, and may make some information about your use of the beta available to us in App Store Connect:
We use this only to find and fix problems in the beta. It is not combined with anything else, and the app itself sends nothing beyond what this policy describes. To stop, remove the beta in the TestFlight app; data Apple holds is governed by Apple's policy.
06
AI Chess Coach 3D is not directed at children under 13, or the equivalent minimum age in your country, and we do not knowingly collect personal information from children. Since we receive no identifying information at all, there is nothing for us to delete on request.
07
Depending on where you live — for example under the GDPR in the EU and UK, or the CCPA/CPRA in California — you may have rights to access, correct, delete, or port your personal data, and to object to its processing. We do not hold data that identifies you, so in most cases:
We do not sell or share your personal information as those terms are defined under California law, and we do not engage in targeted advertising.
Our AI service is hosted in the region configured on Fly.io, and Google may process model requests outside your country — its terms allow prompts and responses to be stored or cached in any country where Google maintains facilities. Where data leaves the EEA or the UK, transfers rely on the standard contractual clauses those providers maintain.
08
| Data | Kept for |
|---|---|
| Games, history, settings | Until you delete them or uninstall the app — stored only on your device |
| ML Kit diagnostics (Android) | Held by Google under its own policies; never received by us |
| TestFlight feedback, crash reports and usage data | Held by Apple in App Store Connect under Apple's own retention rules |
| Cloud AI requests | Not stored. Processed in memory to produce the answer, then discarded |
| Abuse-detection logs at Google | A limited period set by Google, for enforcing its usage policy and legal disclosure only — see section 02 |
| Rate-limiting IP counters | A rolling 60-second window, in memory only |
| Server error logs | A short operational period, then rotated out |
09
Traffic to our AI service and to the Gemini API, and ML Kit's diagnostics to Google, use HTTPS. Requests to the AI service are size-limited and rate-limited. Because the app stores no credentials and holds no account, there is no login to compromise. No system is perfectly secure, but the amount of data at risk here is deliberately kept near zero.
10
If we change how the app handles data, we will update this page and the "last updated" date above. Material changes will be noted in the app's release notes. Continuing to use the app after a change means you accept the revised policy.
11
Questions about this policy or about your data: open an issue on GitHub. The tracker is public, so please do not include personal details.