explaingit

notune/textgrab

Analysis updated 2026-05-18

4KotlinAudience · generalComplexity · 2/5LicenseSetup · easy

TLDR

An offline Android app that lets you select and copy text from any image, built for de-googled phones without Google Play services.

Mindmap

mindmap
  root((TextGrab))
    What it does
      Selects text from images
      Fully on device OCR
      No internet needed
    Tech stack
      Kotlin
      Android
      ML Kit
    Use cases
      Quick settings screenshot OCR
      Share image to app
      Works without Google Play
    Audience
      GrapheneOS users
      Privacy focused Android users
    Setup
      Add quick settings tile
      Enable instant capture
      Install via Obtainium

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Take a screenshot and copy text out of it directly from a quick settings tile.

USE CASE 2

Share a photo or screenshot from another app to TextGrab to make its text selectable.

USE CASE 3

Use on-device text recognition on a de-googled Android phone with no Google Play services.

USE CASE 4

Verify a downloaded APK's signing certificate before installing an update.

What is it built with?

KotlinAndroidML KitGradle

How does it compare?

notune/textgrabblindman81/snippetsfigurophobia/milk-filter-mobile
Stars444
LanguageKotlinKotlinKotlin
Setup difficultyeasymoderateeasy
Complexity2/52/51/5
Audiencegeneralgeneralgeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires manually adding the OCR screenshot tile to quick settings and granting screenshot accessibility for the instant capture feature.

In plain English

TextGrab is an Android app that lets you select and copy text out of any image, working like the text selection features built into iOS or Pixel phones, except it runs entirely on your device with no internet connection needed. It was made specifically for de-googled Android systems such as GrapheneOS, CalyxOS, and LineageOS, phones that do not have Google Play services installed, so users of those systems can still get this kind of text recognition. There are two main ways to use it. The first is a quick settings tile you add once: swipe down from the top of your screen, tap the OCR screenshot tile, and it takes a screenshot and lets you tap or drag over any text on it to select and copy it. You can also turn on instant capture so the tile takes the screenshot automatically without an extra step. The second way is sharing an existing image to TextGrab from any app, such as your gallery, a browser, or a messaging app, or opening an image file directly with it from a file manager. Under the hood, the app includes Google's ML Kit text recognition model bundled directly inside the app itself, the same type of model that powers Pixel's Live Text feature. Because the model ships inside the app, recognition happens fully on the device, the app requests no internet permission at all, and it works without any Google Play services. It typically recognizes text in under a second. Out of the box it supports English and most other languages that use Latin script, along with digits and common punctuation. Chinese, Japanese, Korean, and Devanagari script are not included yet, since each needs its own separate downloadable model pack of around 20 megabytes, though the developer says adding them is easy on request. The app's own source code is released under the MIT license and can be built from source using Gradle. The bundled Google text recognition model itself is proprietary software from Google, included under Google's own terms, and is downloaded separately at build time rather than stored in this repository. Release builds can be verified against a published signing certificate, and the app can also be installed and kept updated through a tool called Obtainium.

Copy-paste prompts

Prompt 1
Walk me through installing TextGrab on GrapheneOS and setting up the OCR screenshot quick settings tile.
Prompt 2
Explain how to build a signed release APK of this app using Gradle and a keystore.
Prompt 3
Show me how to verify the TextGrab APK signature using apksigner before installing it.
Prompt 4
Help me set up Obtainium to install and auto-update TextGrab from this GitHub repo.

Frequently asked questions

What is textgrab?

An offline Android app that lets you select and copy text from any image, built for de-googled phones without Google Play services.

What language is textgrab written in?

Mainly Kotlin. The stack also includes Kotlin, Android, ML Kit.

How hard is textgrab to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is textgrab for?

Mainly general.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.