Why Basta! asks for the accessibility permission
Android shows a stern warning when you turn it on, and it is right to: this is a powerful permission. This page explains what it can really do, what Basta! does with it, and how to check without taking our word for it.
What the accessibility service is
It is the API Android created for screen readers and other assistive technology. It lets an application receive events about what appears on screen — which window opened, which elements it contains — and perform system actions on the user's behalf, such as pressing Back.
Those two capabilities are exactly what closing the Reels viewer requires: knowing it opened, and leaving it.
Why there is no other way
Android exposes no other API that says which specific screen of another application the user is looking at. You can find out which app is in the foreground, but that does not tell reading a direct message apart from being in the Reels loop — and that distinction is the entire point of Basta!.
An app promising to block only Reels without the accessibility permission is either not doing it, or blocking all of Instagram and calling it something else.
Exactly what Basta! reads
Three things, and none of them is content:
- The resource identifiers of interface containers — technical strings such as clips_viewer_view_pager, which Instagram assigns to the Reels viewer.
- The class name of the Activity or Fragment currently in the foreground.
- On Facebook (Pro only), the accessibility label of large, visible, full-screen containers. Facebook hides its identifiers, so the app checks whether that label contains the word “reel”. The comparison happens in memory and nothing is stored.
What it does not read
It does not read the text of your messages, or of posts, or comments, or the names of the people you talk to. It does not capture the screen, it does not access your photos, and it does not log what you type.
Nor does it send anything anywhere. There are no accounts, no analytics SDK and no ad SDK, and the Google Play listing declares “no data collected”. The manifest does declare the INTERNET permission, reserved for one narrow purpose: downloading an updated public list of detection identifiers, so blocking can be fixed without waiting for an app update. That request only brings data into the phone; it carries nothing about you. Pro purchases are handled by Google Play.
How to check for yourself
The source code is public on GitHub. If you want to verify it without being a programmer, there are two quick checks:
- Open AndroidManifest.xml in the repository: you will see the INTERNET permission and, right next to it, the comment saying what it is for. Then search the code for openConnection: it appears once, in HintConfig.kt, as a GET request that sends nothing.
- Open HintConfig.kt and look for DEFAULT_INSTAGRAM_REELS, DEFAULT_YOUTUBE_SHORTS, DEFAULT_TIKTOK_FEED and DEFAULT_FACEBOOK_REELS. Those are the literal lists of what the app looks for on screen. There is nothing else.
How to revoke it
At any time, from Android Settings → Accessibility → Basta! → turn off. There is no account to close and no data to delete from any server, because none ever left the phone. The only thing that happens is that your streak breaks and your mascot goes back to being an egg, which is precisely the point.