Privacy policy — TCleanner

Last updated: 2026-09-30. Applies to version 0.1.0 and later until this page changes.

Principles

Privacy first. The same six points are in the app, under Settings › How it works, and on the sign-in screen, which you can read before you sign in.

  1. On your device. The index and every search are local, and search works offline.
  2. Only Telegram. The app talks only to Telegram’s servers, with your own session. There are no servers of ours.
  3. Nothing to third parties. No analytics, ads or trackers, and no analytics or tracking SDKs: the only libraries are Telegram’s own TDLib and the local database GRDB.
  4. You decide what is deleted. Only after you confirm an exact count, for everyone, never scheduled.
  5. Your session and index. The session is kept in TDLib’s encrypted data directory, with its key in the Keychain, and the index sits in the app’s private storage. Both are excluded from backups. The session key can be in an encrypted device backup, but it cannot be restored to another device. You can clear both from Settings.
  6. Diagnostics only if you export them yourself, with no message text. The app has no crash reporter; Apple gives a developer crash logs only if you turned on “Share with App Developers” in iOS Settings.

The short version

TCleanner does not have a server. There is no account to create, no analytics, no advertising SDK, no crash reporter, and no analytics or tracking service that receives anything. Nothing you search is transmitted. The app does not automatically send personal data to the developer; the developer receives diagnostics only if you choose to send them.

What the app stores, and where

  • A local message index containing message text, sender names, chat titles and types, account, chat and message identifiers, timestamps, whether each message is yours, deletion permissions, synchronization progress and the chats you excluded — from your chats, and from channels you subscribe to only if you turn that on — on the device only, so it can be searched offline. It is kept in the app’s private storage, excluded from device and cloud backups, and removed entirely when you delete the app or clear its storage. It is never uploaded.
  • Your Telegram session is stored in TDLib’s encrypted data directory in the app’s private storage, excluded from backups. Its encryption key is kept in the iOS Keychain with “this device only” protection: it may be part of an encrypted device backup but cannot be restored to another device, so you sign in again there. It is what lets Telegram recognise the app as you. It is never uploaded.
  • Preferences and saved search templates — including your language, appearance, lock, channel and history settings, template names and regular expressions, and application API credentials if you enter your own. The app creates no advertising or tracking identifiers.

The developer cannot read any of it. It does not leave the device.

You can export a diagnostics report yourself, from Settings › Developer. It holds the app version and build, the iOS version, the device model identifier (not the name you gave your device), the app’s language and appearance, which Telegram environment it uses, the authorization state, whether the lock is on, whether the device is connected, the free storage and the size of the index, counts of chats and messages, counts of fully indexed chats and chats whose sync failed, the sync phase, the error code of each chat whose sync failed, and the app’s own session, sync and update log lines, filtered so that only lines made of known words, numbers and identifiers remain. Chats in it appear only as numbered labels such as “chat-1 (private)”, assigned afresh for each report and meaningless outside it. It holds no message content, names, usernames, chat titles, phone number, session data, Telegram user, chat or message ids, account id or application api_id. The app never sends it by itself. The page shows the whole report first; from that page you can email it to support, share it or copy it, and only then does anything leave the device, through your own mail app, share sheet or clipboard. GitHub issues are public: do not attach a diagnostics report there.

What the app sends, and to whom

Only to Telegram, and only what you ask it to: it signs in to your account, downloads the text of messages in your chats (and in channels you subscribe to, if you turn that on), and deletes the messages you confirm. That traffic goes to Telegram’s servers under Telegram’s own privacy policy. It goes nowhere else.

The demo mode built into the app contacts nothing at all.

Deletion

Deletion is always “for everyone”, always confirmed with an exact count beforehand, and cannot be undone. There is no scheduled or background deletion: nothing is ever deleted without you confirming that specific batch.

Children

The app is not directed at children and collects nothing from anyone.

Contact

App support and diagnostics: support@kudravets.com. General questions: info@kudravets.com. Public bug reports and feedback: open an issue at https://github.com/ilya-kudravets/tcleanner-feedback/issues.

© 2026 Ilya Kudravets