Clear SMS

app.clearsms
by Zapstore _@zapstore.dev

Privacy-first SMS app with smart inbox, finance dashboard and bill reminders

Republished from GitHub / F-Droid by the Zapstore main account.

Clear SMS is an open-source, privacy-first SMS app that automatically organizes your inbox - completely offline, on your device. **Smart inbox** - Messages are automatically sorted into Important, Promotional, Personal, OTP and Unknown using a transparent, regex-based rules engine - no ML black box, every rule is human-readable JSON you can inspect and edit. - 390+ community-maintained rules plus a 715k sender-ID directory. - Full-text search with category and time filters, heuristic scam-awareness flagging. **Finance dashboard** - Debit/credit transactions are extracted from bank SMS into accounts, credit cards and spend summaries with hand-rolled charts. - Balance tracking with an optional biometric balance lock. **Bills and alerts** - Upcoming bills, autopay, insurance and credit-card due dates in one Alerts view. - Train and flight journeys, package deliveries with courier and tracking id. **Messaging** - Full SMS send and receive (default-SMS-app role), MMS send and receive with on-device image compression. - Dual-SIM support, message scheduling, drafts, delivery reports, pinned conversations. - Recycle bin with 30-day retention, undo for delete and archive, blocked senders and keywords. **OTP handling** - Big, copyable OTP notifications, optional auto-copy and configurable auto-delete. **Private by design** - No INTERNET permission - no servers, no telemetry, no analytics, no trackers. - No Firebase, no Play Services - pure AOSP compatible. - Local backup and restore for messages and settings; your data never leaves your device. - The only network activity is the Android system's own MMS transaction with your carrier - inherent to how MMS works. **Material You** - dynamic color on Android 12+, light/dark/system themes. Categorization rules are maintained by the community and bundled into every release. Contribute rules or report gaps at the project repository.

First release: Aug 31, 2026, 10 total releases.

Most recent release: Oct 29, 2026.

Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Oct 29, 2026 0.25.0
    - Added Hinglish translation - Right-to-left messages now read correctly (Eg. Persian, Arabic, Hebrew or Urdu) - Attaching a photo from the camera works again (the app was not declaring that it looks for a camera) - Picture messages now download on the SIM that received them, instead of always using the phone's default SIM - "Sort messages again" moved from Inbox to Messages in Settings - Added more diagnostics for picture messages that fail to download --- Thanks to @ehsankhorasani1364-del for reporting the right-to-left text issue (#139), and to @diptenkrom for reporting the camera attachment failure (#140).
    More…
    Thanks also to @snappyapple632, whose diagnostic reports on #135 led to the dual-SIM download fix in this release and the grant-target fix in 0.24.1 — neither of which was the problem on his own phone, which is still being investigated.
  • Oct 24, 2026 0.24.1
    A patch release with one fix for picture messages that fail to download, and the diagnostics to work out why when they still do. ## Fixed - **Picture messages could fail to download on some phones.** Clear SMS asks Android to save an incoming picture message into a file of its own, and when granting permission to write there it named two system components by hand. On a phone whose messaging service lives somewhere else the write was refused and the download failed — and a Pixel is one of those phones: a diagnostic log from a Pixel 7 Pro showed **seven** components needing that permission, including `com.shannon.rcsservice`, where the old code granted to two. Sending has resolved this correctly since 0.22.0; downloading now does the same, through one shared piece of code so the two cannot drift apart again. ([#135](https://github.com/itsluminous/ClearSMS/issues/135), thanks @snappyapple632) - **A failed download now records why.** Until now it logged only Android's bare error number. It now also records whether that permission was granted and to which components, whether the phone was on mobile data or WiFi, and which SIM was used. Only system component names are recorded — never message text, numbers or addresses. ## Also Code-style checking was restored in the build. It had silently stopped inspecting the app's sources during the Android Gradle Plugin 9 upgrade — still running, still reporting success, checking nothing — which went unnoticed across two releases. The build now fails outright if that ever happens again, rather than passing quietly. No behaviour changed; 52 files were reformatted.
  • Oct 20, 2026 0.24.0
    Mostly repairs, including one crash that hit almost everyone outside India. ## Fixed - **Switching the SIM for a conversation crashed the app.** It happened on the **first tap** for anyone whose number is not ten digits — which is to say almost everyone outside India — and it had been there since 0.22.0. If you hit this, it was not your phone. Remembering which SIM to use for a contact can also no longer bring the app down if it fails for any other reason. ([#111](https://github.com/itsluminous/ClearSMS/issues/111), thanks @drsanusi) - **Picture messages you had sent from another app were missing.** Clear SMS was reading only the received half of the phone's message store, so a conversation showed replies without your own side of it. Both halves are now imported, and a phone that already imported the received ones will pick up the sent ones on this update. ([#112](https://github.com/itsluminous/ClearSMS/issues/112), thanks @malerocks) - **The compose screen ignored the "delay before sending" setting.** A message sent from a new-message screen went straight out with no pause and no Cancel, while the same message sent inside a conversation waited as it should. ([#119](https://github.com/itsluminous/ClearSMS/issues/119), thanks @ehsankhorasani1364-del) - **A contact could appear more times than it has numbers.** A number saved through two accounts — a Google account and the phone itself, say — is stored twice with different punctuation, and the two spellings were shown as two contacts. Numbers that differ only in spacing or dashes are now one row. Two genuinely different numbers are deliberately still kept apart, even if one is the international form of the other, because silently losing a number you can text is the worse fault. ([#127](https://github.com/itsluminous/ClearSMS/issues/127), thanks @RudzLong) - **Four kinds of message were sorted as Promotional when they are not**: a delivery notice from Blue Dart, an Aadhaar service notice from UIDAI, a credit-card statement with nothing to pay, and an insurance premium asking for payment by a date. The real fault was more general: a message carrying a bill or a payment date was being filed as marketing simply because its sender usually sends marketing. That no longer happens — while a dated insurance *pitch* still stays promotional.
    More…
    ## Added - **On a dual-SIM phone each message now carries a small SIM mark beside its timestamp**, so you can see which SIM it used without opening the message. A message from before the app recorded SIM information, or one on a SIM that is no longer in the phone, shows nothing rather than guessing a slot. ([#109](https://github.com/itsluminous/ClearSMS/issues/109), thanks @sandyy-cpu132 and @RudzLong) - **Picking a contact you already have a conversation with opens that conversation**, instead of leaving you on an empty screen with no history. Anything you had already typed or attached comes with you, and going back returns you to the compose screen with it intact. ([#119](https://github.com/itsluminous/ClearSMS/issues/119)) ## Changed - **Moving between tabs and opening a conversation are quicker** — the animation was 700ms, the length Android reserves for large, ambient movement, and is now 300ms. If you would rather have no animation at all, Android's own **Accessibility → Remove animations** switches it off for every app, today. ([#115](https://github.com/itsluminous/ClearSMS/issues/115), thanks @SaeediMahdi)
  • Oct 11, 2026 0.23.0
    Clear SMS now speaks five more languages, and picture messages that were already on your phone finally show up. Almost all of this came from user reports and contributions - thank you @xmha97, @ThePatientLion, @RudzLong, @wizzwuz, @ashed (who also reviewed the Russian translation as a native speaker) and @t4nk3rchu (the Vietnamese rules). Added - The app is translated into German, Spanish, Hindi, Polish and Russian. On Android 13 and newer you can set the language for Clear SMS alone, without changing the rest of your phone - useful if you want an English phone and a Hindi inbox, or the reverse. Translations are community work and partial ones are welcome; anything untranslated falls back to English. - Long-press the app icon for shortcuts to a new message and to your pinned and recent conversations. The same conversations appear in the share sheet when another app shares a photo or some text, so it goes straight into the right thread. Blocked, muted, binned and spam conversations are never offered, and you can turn the conversation shortcuts off in Settings - Messages. ([#81](https://github.com/itsluminous/ClearSMS/issues/81), thanks @xmha97) - Message notifications now file under the system's Conversations section, so you can give an individual thread its own priority or silence it from Android's own settings. - Copy part of a message instead of the whole thing. Long-press a message to select it, then long-press it again: the whole text is marked with handles you can drag inwards to whatever you want, and Copy takes exactly that. Leave the handles alone and it still copies the entire message. ([#103](https://github.com/itsluminous/ClearSMS/issues/103), thanks @wizzwuz and @ThePatientLion) - Call is now one of the notification action buttons you can choose in Settings, so a message from a number you want to ring is one tap away. It opens the dialer with the number filled in; you still press call. A short code or a sender name like HDFCBK never gets the button, because a phone cannot ring them. ([#99](https://github.com/itsluminous/ClearSMS/issues/99), thanks @ThePatientLion)
    More…
    - If you would rather skip that extra step, Settings - Messages - Direct call makes both the notification button and the one in a conversation place the call immediately. It is off by default. - Settings - Messages - Send picture messages lets you hide the attach button entirely, for a carrier that has stopped carrying MMS without saying so in its settings. Receiving is unaffected. ([#94](https://github.com/itsluminous/ClearSMS/issues/94), thanks @ThePatientLion) - Vietnamese banks, carriers and services are now recognised: BIDV and TPBank transactions and OTPs, VinaPhone balance and data notices, Vietnam Airlines and Traveloka, and couriers including Viettel Post - 489 rules in total. Fixed - Received picture messages that were already on your phone now appear. Until now Clear SMS could only see an MMS that arrived while it was your default messaging app, so anything older - or anything that arrived while another app held the role - was invisible, even though other apps on the same phone could still show it. They are read out of the phone's own message store on first run, with their text and images. ([#94](https://github.com/itsluminous/ClearSMS/issues/94), thanks @ThePatientLion) - Automatic OTP copying did nothing on Android 10 and newer, which is to say on almost every phone. The setting is on by default, so it had been quietly failing for most people. ([#95](https://github.com/itsluminous/ClearSMS/issues/95), thanks @RudzLong) - The OTP size you choose in Settings had no effect on the notification. Android discards text sizing from a notification's title, so the setting only ever changed the in-app card; the notification now draws the code at the size you picked. - A long OTP no longer wraps onto a second line in the inbox banner - it shrinks to fit, and never cuts a digit off. - In landscape on a large font size, the compose button could sit on top of the OTP banner's dismiss and copy buttons, and swallow the tap. Compose moves into the title bar when the window is too short to hold both. - A long contact name in a conversation's title had too much space between its two lines, so one name read as two. - Tapping an ordinary word in a message that contained a link could open the link instead. A link's tappable area was being quietly enlarged to the minimum size Android wants for a touch target, which spilled it over the words above, below and beside it; a link now responds only where its own text is. - Amounts, dates, times and category names now follow the app's language instead of staying in English. - A failed picture message said the phone "would not have sent it" about something that had already failed. Changed - Clear SMS now lists the phone-call permission. Android gives no way to ask for it only when needed, so it appears for everyone - but it is used only by Direct call, which is off unless you turn it on. With it off, every Call button opens the dialer and the permission is never used. **Full Changelog**: https://github.com/itsluminous/ClearSMS/compare/v0.22.0...v0.23.0
  • Oct 2, 2026 0.22.0
    The app now does not assume your currency, your thread, your short codes. Nearly all of this came from user reports - thank you @leoossa, @Khaztaroth, @ThePatientLion, @RudzLong and @gavcloud. Fixed - The same person could appear as two separate conversations. Clear SMS matched phone numbers by their last ten digits, which is right for India and wrong almost everywhere else - a nine-digit Polish number, for instance, ended up with two different identities depending on whether the country code was written out. Conversations are now matched the way Android itself does it, and threads that were already split are merged when you update. ([#42](https://github.com/itsluminous/ClearSMS/issues/42), thanks @leoossa) - Amounts are no longer assumed to be rupees. In Chile, 1.000 pesos was read as one peso, because a full stop was taken to be a decimal point - so recorded amounts and every total built from them were wrong. The app now reads the currency from the message itself, falling back to your SIM's country, and you can set one by hand in Settings - Finance - Currency. Totals are never added up across different currencies. ([#65](https://github.com/itsluminous/ClearSMS/issues/65), thanks @Khaztaroth) - You can now reply to carrier short codes, like texting WEITER to re-enable data on a German plan. The app used to refuse any sender shorter than seven digits and claim the sender did not accept replies, which it had no way of knowing. A short code you have saved as a contact gets a message box straight away; otherwise the app says replies might not be accepted and lets you send anyway. A sender name like HDFCBK still cannot be replied to, but now explains that a reply needs a number. ([#75](https://github.com/itsluminous/ClearSMS/issues/75), thanks @ThePatientLion) - Older conversations showed their first message as the inbox preview instead of their most recent one. Scrolling the inbox is noticeably smoother as a result. - MMS picture messages are now shrunk to the size limit your own carrier allows, rather than a fixed size that could still be too large - which some phones rejected instantly, before even contacting the carrier. ([#51](https://github.com/itsluminous/ClearSMS/issues/51), thanks @gavcloud)
    More…
    - The inbox no longer flashes the default filter pills before loading yours. It also reaches your messages a little quicker, because it now runs one query instead of two. ([#63](https://github.com/itsluminous/ClearSMS/issues/63), thanks @RudzLong) - Delete now tells the truth: with the recycle bin on, it says your messages move there and can be restored for 30 days, instead of claiming the deletion is permanent. - Bank of Baroda credit cards appeared under bank accounts, because the card detection did not recognise brands written as one word like BOBCARD. SBICARD and ONECARD are covered too. - Salary and transfer deposits from HDFC were titled "clearing", picked out of the boilerplate sentence at the end of the message, instead of showing what the payment was for. - Message details name the carrier beside the SIM slot, and the SIM row is left out entirely when the message arrived on a SIM that is no longer in the phone. Added - More details is now a button in the row that appears when you select a message, instead of being hidden behind the three dots. You can also drag those actions into the order you want, in Settings - Messages - Message action order, so whichever you use most sits in the bar. ([#61](https://github.com/itsluminous/ClearSMS/issues/61), thanks @ThePatientLion) - The main Settings page has an icon beside each entry. Changed - Change category moved from the conversation's title bar into its three-dot menu; the muted bell beside a contact's name is the same size as the other buttons now, and a long contact name wraps onto two lines instead of being cut short. ## What's Changed * fix(conversation): Change category moves into the overflow menu in https://github.com/itsluminous/ClearSMS/pull/66 * fix(mms): compress to the carrier's size limit, and resolve who reads the PDU in https://github.com/itsluminous/ClearSMS/pull/67 * fix(finance): descriptor titles for HDFC deposits, and BOBCARD typed as a credit card in https://github.com/itsluminous/ClearSMS/pull/64 * fix(threads): one thread per person, via the platform thread_id (#42) in https://github.com/itsluminous/ClearSMS/pull/68 * fix(finance): derive the currency instead of assuming INR (#65) in https://github.com/itsluminous/ClearSMS/pull/69 * feat(settings): icons on the main Settings page in https://github.com/itsluminous/ClearSMS/pull/70 * docs(readme): add a Get it on Obtainium badge in https://github.com/itsluminous/ClearSMS/pull/71 * feat(conversation): More details in the selection bar, and user-ordered actions (#61) in https://github.com/itsluminous/ClearSMS/pull/72 * fix(inbox): preview each thread's newest message, not its newest row in https://github.com/itsluminous/ClearSMS/pull/73 * fix(ui): delete confirmations match the recycle-bin setting in https://github.com/itsluminous/ClearSMS/pull/74 * chore(deps): bump org.robolectric:robolectric from 4.16.1 to 4.17 in the test-libraries group across 1 directory by @dependabot[bot] in https://github.com/itsluminous/ClearSMS/pull/34 * fix(conversation): name the carrier in the details SIM row in https://github.com/itsluminous/ClearSMS/pull/77 * fix(reply): allow replies to numeric short codes in https://github.com/itsluminous/ClearSMS/pull/78 * docs: split the README, audit the feature checklist, correct stale KDoc in https://github.com/itsluminous/ClearSMS/pull/79 **Full Changelog**: https://github.com/itsluminous/ClearSMS/compare/v0.21.0...v0.22.0
  • Sep 29, 2026 0.21.0
    Big release: a Spam category, a Settings screen you can navigate, contact muting, and diagnostic logs you can share when something goes wrong. Added - A real Spam category, with its own pill, its own notification setting (silent by default, because spam should be), and selectable when you create a rule. A verification code or a bank message can never be sorted as Spam, even if you tell the app to sort that sender as Spam. - Mute a sender. Its messages still arrive and still appear in your inbox, they just never notify - including OTPs. Scam warnings still come through, because muting a sender is not the same as trusting it. A small icon on the conversation and in the inbox shows you which threads are muted, so a quiet thread never looks like a lost one. - Choose which filter pills you see, on the Inbox, Finance and Alerts tabs, and drag them into the order you want. The Unread switch can be hidden too, and now sits on the title line rather than taking a row of its own. - Tap "Clear SMS" at the top of any tab to jump back to the top of a long list. - Settings is now organised into sections instead of one long screen - Messages, Appearance, Notifications, OTP, Inbox, Finance, Alerts, Backup, Support, About - and search still finds settings inside them. - Share diagnostic logs, from Settings, About. If something goes wrong you can send a report without knowing what adb is. It only ever contains what the app deliberately records - never your messages, contacts, phone numbers, OTPs or account numbers - you see exactly what will be sent before you send it, and you choose whether sender names like HDFCBK are included or masked. - One-step rules. Pick a message, choose "Always sort as", pick a category, done - no regular expressions, and that sender's existing messages move at once. When the full rule editor does reject something, it now tells you which field is wrong and why.
    More…
    - Message details for any message: whether it was SMS or MMS, who it was to or from, when it was sent and received, when it was delivered, and why a send failed. - The sender's own send time is now stored and shown to the second, and you can sort your messages by it instead of by when your phone received them - useful when several messages arrive together after a spell with no signal. - Single and double ticks on messages you send, for sent and delivered. - Clear SMS now opens sms:, smsto:, mms: and mmsto: links from other apps, with the recipient and text filled in. - Messages from senders the app does not recognise get their own notification category, on by default - they used to arrive silently. Fixed - The rules screen could crash for anyone who had created their own rule, leaving them unable to open Manage rules at all - so they could not even delete the rule that caused it. A rule that cannot be read now shows up as one you can delete, and an app update can no longer overwrite or re-enable your own rules. - Cash withdrawals at an ATM were not recorded against your bank account. The rule shipped in 0.20.0 but never reached anyone who updated rather than reinstalling - that is fixed too, and cannot happen again. - The contact picker crashed while typing certain names. A contact saved twice, or stored in two accounts, was enough to do it. - Your place in the inbox is kept when you come back from a conversation. It used to jump to the top after reading an unread thread, and drift by a page otherwise. Search does the same now. - The last message in the inbox is no longer hidden behind the bottom bar after returning from a conversation. - After making the compose box full screen, the shrink button did nothing on some phones. It now sits on the box itself, where it always responds, and it only appears once your text runs past one line. Holding the cursor and dragging scrolls the box too. - An MMS no longer says "Sent" while it is still being sent. The phone can spend minutes trying, and the app was calling that a success after four seconds; it now says "Sending" until the network actually reports back, and explains why if it failed. (thanks @gavcloud for the report that led here) Changed - "Show extracted message details" is now off by default. If you had switched it on, it stays on. - The typing box in a conversation is wider. ## What's Changed * feat: a lot of improvements in the app and settings screen restructure by @itsluminous in https://github.com/itsluminous/ClearSMS/pull/50 * feat(diagnostics): capture and share app logs, with redaction by construction by @itsluminous in https://github.com/itsluminous/ClearSMS/pull/52 * fix(conversation): quieter message details for unknown sent and delivery times by @itsluminous in https://github.com/itsluminous/ClearSMS/pull/54 * fix(inbox,search): keep the scroll position when returning from a thread by @itsluminous in https://github.com/itsluminous/ClearSMS/pull/53 * feat(inbox): mute senders so they never notify by @itsluminous in https://github.com/itsluminous/ClearSMS/pull/55 * fix(settings): default "Show extracted message details" to off by @itsluminous in https://github.com/itsluminous/ClearSMS/pull/56 * feat(mms): make MMS failures diagnosable, and say why they failed by @itsluminous in https://github.com/itsluminous/ClearSMS/pull/57 * fix(mms): an in-flight MMS no longer reads as Sent by @itsluminous in https://github.com/itsluminous/ClearSMS/pull/60 **Full Changelog**: https://github.com/itsluminous/ClearSMS/compare/v0.20.0...v0.21.0
  • Sep 20, 2026 0.20.0
    A big release: six reported issues fixed, delayed sending, message details, and a smaller, leaner APK. Thank you to everyone who filed an issue - @RudzLong, @paras03, @leoossa, @xmha97 and @Zokii0 all appear below. Added - Delayed sending. Turn it on in Settings and pressing Send holds the message for a few seconds - long enough to catch a typo - with a Cancel that puts your text straight back in the box for editing. It survives the app being closed, so a message you did not cancel still goes out. Off by default. (#40, thanks @leoossa) - Message details. Select a message, open the three-dot menu and choose More details to see whether it was SMS or MMS, who it was to or from, when it was sent or received, when it was delivered if a real delivery report came back, and the reason if sending failed. (#44, thanks @Zokii0) - Clear SMS now opens sms:, smsto:, mms: and mmsto: links from other apps, with the recipient and message text filled in for you. (#32, thanks @xmha97) - Messages from senders the app does not recognise now get their own notification category, switched on by default. Previously they arrived silently, so a text from someone not in your contacts could go unnoticed until you opened the app. - A "Customise notifications" shortcut in Settings that opens Android's own settings for Clear SMS, where you can tune the sound, vibration and importance of each category separately. Fixed
    More…
    - Cash withdrawals at an ATM were not recorded against your bank account, so the money left without showing up in Finance. (#43, thanks @paras03) - The bottom bar no longer flashes across a conversation as you press back to the inbox; it now arrives exactly as the inbox does. (#39, thanks @RudzLong) - After expanding the compose box to full screen, the shrink button did nothing on some phones and only the back gesture would close it. The button now sits on the compose box itself where it always responds. (#30, thanks @RudzLong) - Imported messages had no SIM information, so only messages that arrived after installing showed which SIM they came in on. Existing messages are filled in once, in the background. Changed - The app no longer bundles an HTTP client it never used, which makes the download smaller and the "no network access" promise easier to verify for yourself. - The typing box in a conversation is wider, reclaiming space that was empty padding around the attach and SIM buttons. **Full Changelog**: https://github.com/itsluminous/ClearSMS/compare/v0.19.1...v0.20.0
  • Sep 17, 2026 0.19.1
  • Sep 5, 2026 0.16.1
  • Aug 31, 2026 0.15.0