# CircleToSearch, reverse image search on any Android phone with local OCR

> AKS-Labs/CircleToSearch brings the circle to search gesture to any Android device, adding multiple search engines, on-device OCR with Tesseract, a floating bubble trigger and the option of registering as the system assistant, all under GPL-3.0 with no dependency on Google Play Services.

**AKS-Labs/CircleToSearch** — CircleToSearch with multi search engine support for all android

- Repository: https://github.com/AKS-Labs/CircleToSearch
- Stars: 754 · Forks: 44
- Language: Kotlin
- License: GPL-3.0
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/aks-labs-circletosearch

## What the app does and what it replaces

CircleToSearch is an Android application that brings the circle to search gesture to any device. You draw a circle around what you are looking at on screen and get results from a search engine of your choice, with the README describing it as having Google Lens, Bing Visual Search, Yandex and TinEye all in one place.

The README spends a lot of its space on what is wrong with Google's own implementation of the feature, and the complaints are specific rather than generic. Forced cloud syncing, meaning your selection is uploaded to servers even when the only thing you wanted was to copy some text. The gesture getting accidentally triggered, which exposes the content on screen to a server without you meaning to select it. Ecosystem lock-in, since it only works with Google Search and offers no support for Bing, Yandex or AI models. Missing features, with Share and Save named as things that were removed. And hardware exclusivity, since it is described as available only on expensive flagship devices such as the Pixel 8 and the Galaxy S24 and later.

The answer the project gives is a set of specific design choices rather than a general claim of being better. Only what you circle gets processed, with nothing else captured. True offline OCR, where text recognition works entirely on the device with no internet needed. Offline QR detection and offline smart scan. Support for any search engine, naming Google, Bing, Yandex, TinEye and ChatGPT. The Share and Save features restored. Operation on any Android device rather than only flagships. Operation on de-Googled devices with no Google programs needed. And no background tracking or logs, which the README frames as a privacy-first position of pure on-device selection.

The licensing is GPL-3.0, the language is Kotlin, and the badges say it targets API 29 and above with Jetpack Compose for the interface. The last push was on 2026-10-19, with releases v0.3 and v0.4 in January 2026 and v0.5 in April.

## The feature set, from search through to the interface

The feature list is organised into a few groups and the search group is the largest.

Multi-engine support covers instant reverse image search through Google Lens, Bing, Yandex and TinEye, and it also lists ChatGPT and Perplexity, which is a different kind of choice from the image engines because they can answer a question about an image rather than find copies of it.

The text side is where the on-device work shows. Smart native copy text extracts and copies text from any screen using offline OCR with Tesseract, or a hybrid assist mode. Customizable OCR models means you can import external high-accuracy Tesseract language models for specialized detection, which matters when the default model handles a script badly.

Smart entity extraction is described as on-device scanning to detect and manage smart content such as barcodes or key information, which is the offline smart scan the earlier section refers to.

The operating system integration is the part that makes the gesture feel native. There is a universal trigger by double-tapping the status bar, or a floating bubble that can be configured to appear over any app. The app can be set as the default Android Assistant, which means it triggers on a home button long press or a diagonal swipe. And the selection itself is a circle or a scribble on the screen, which is then cropped and used as the query.

The interface section lists a modern design built from the ground up with the current Android design components, smooth animations and a polished interface, plus customizable aesthetics where you can toggle UI elements, gradient borders, dark mode and a desktop mode for rendering search results. There is also a deliberately playful note about friendly and humorous messages appearing whenever you use the app, which is a small thing but says the project is not trying to impersonate a system feature.

The quick actions section begins with fast sharing, whose description cuts off mid-sentence, so the rest of that group is not yet documented.

## The project structure and how it is built

The repository is a standard Android Gradle project, and the top level listing shows the usual parts. There is an app/ directory holding the application module, a build.gradle.kts at the root alongside settings.gradle.kts and gradle.properties, the gradle/ directory with the wrapper, and gradlew and gradlew.bat for the wrapper scripts.

There are also several directories that are not typical of an Android application. A docs/ directory holds documentation, and a guide.md sits at the top level, presumably the user guide. An OCR-translation/ directory is present, which is consistent with the custom OCR language model feature and suggests the translation of OCR resources is tracked separately from the code. There is a fastlane/ directory, which is the conventional tool for automating store submissions and release notes, and a .kotlin/ directory for the Kotlin plugin's own state.

The .idea/ directory is checked in, which is unusual but common for projects where the IDE configuration carries something meaningful. The .github/ directory holds the workflows, and a .gitignore and a LICENSE sit alongside.

Two top level files are worth mentioning because they describe project practice. There is a logs.md and a guide.md, and the presence of a logs file at the root of a project that claims to keep no logs is either a legacy artefact or a record of a development practice. Either way it is a small oddity that someone reading the repository will notice.

The release process appears to be driven through the releases page, since the README links a downloads badge straight to the GitHub releases page, and the fastlane/ directory suggests the release metadata is generated rather than written by hand each time.

The last push was on 2026-10-19 and the most recent release listed is v0.5 from April 2026, so the repository is being worked on more recently than the releases suggest, which is a common pattern for a project where most of the work lands on the default branch between tagged versions.

## How it fits against the alternatives

The alternatives divide into three kinds, and it is worth being clear about what each does.

The first is the system feature on a phone that has it. If your device ships circle to search, the built-in implementation is faster to reach and already integrated with the system. The argument against it, which the README makes at length, is about where your selection goes and which engine answers.

The second is a general purpose screen search or OCR application. There are many of these, and they do the text extraction and the web search but not the gesture, and they usually send the crop to a server to search for matches. The CircleToSearch proposition is that the gesture and the search belong together, because the gesture is what makes the selection cheap and the search is what makes it useful.

The third is a desktop style lens or search tool, brought to the phone. The distinctive addition here is the system assistant registration, which puts the app in the same place the system's own assistant lives, so the trigger is a long press on the home button rather than a gesture you have to learn.

The offline OCR claim is the one that would make this app genuinely different rather than merely more flexible, and it is the one to test. The README says text recognition works entirely on the device with no internet needed, and that the Tesseract models can be swapped for better ones for a specific script. If that holds, then the copy-text case never touches the network at all, which for a screen that might contain a password or a private message is a meaningful property.

The other differentiator is the de-Googled device support. The README says the app is 100 percent independent and works on any Android phone from Android 10 upwards without requiring Google Play Services or OEM-specific software. For a privacy-minded user on a device with no Google services at all, that is the whole reason to install it, and it also means the app is not a thin skin over Google's implementation.

The cost is that a third-party app cannot be as integrated as a system feature. A floating bubble over other apps is visible and can be interrupted, the assistant registration takes a setting that some users will want back for something else, and a third-party app asking for accessibility and screenshot permissions is a meaningful ask. Those are the trade-offs to think about before installing, and they are the reason to test the release build rather than assume it behaves like the original.

## Conclusion

Adopt CircleToSearch if you want the circle to search gesture on a device without it, or if you want a search flow that does not hand your selection to a vendor's servers. Skip it if your phone already ships the feature and you are happy with the built-in behaviour, since the app is a replacement rather than an addition. Verify first by installing the release build and testing the offline OCR path with aeroplane mode enabled, since that is the claim that most distinguishes it from the original.

## FAQ

### What does CircleToSearch do?

It is an Android app that adds a circle to search gesture to any device. You draw a circle or scribble on the screen, the selection is cropped, and you get results from a search engine of your choice, with Google Lens, Bing, Yandex, TinEye, ChatGPT and Perplexity all supported.

### What does CircleToSearch do differently from Google's own circle to search?

The README lists the problems with Google's version as forced cloud syncing of your selection, accidental triggering that exposes screen content, lock-in to Google Search with no Bing, Yandex or AI support, the removal of Share and Save, and availability only on expensive flagships. The app's answers include local processing of only what you circle, offline OCR, multiple engines, restored Share and Save, and operation on any Android device from Android 10 upwards without Google Play Services.

### How is CircleToSearch triggered?

By double-tapping the status bar, or by configuring a floating bubble over any app. It can also be set as the default Android Assistant, in which case it triggers on a home button long press or a diagonal swipe.

### Is the text recognition really offline?

The README says text recognition works entirely on the device with no internet needed, using Tesseract, and that external high-accuracy Tesseract language models can be imported for specialized detection. QR detection and smart scan are also described as working offline.

### What licence is CircleToSearch released under and what does it need?

GPL-3.0, written in Kotlin with Jetpack Compose, targeting API 29 and above, meaning Android 10 and later. The releases are v0.3 and v0.4 in January 2026 and v0.5 in April 2026, with the last push on 2026-10-19.

## Sources

- [AKS-Labs/CircleToSearch on GitHub](https://github.com/AKS-Labs/CircleToSearch)
- [Issues](https://github.com/AKS-Labs/CircleToSearch/issues)
- [License: GPL-3.0](https://github.com/AKS-Labs/CircleToSearch/blob/main/LICENSE)
- [README](https://github.com/AKS-Labs/CircleToSearch/blob/main/README.md)
- [Releases](https://github.com/AKS-Labs/CircleToSearch/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/aks-labs-circletosearch
