Enterprise Manifest V3 Chromium Extension for Multi-Engine Visual Search, Tab Audio Music Recognition & On-Screen Translation
Engineered by Farhan Muh Tasim (AKA frnAlt / Gtajisan)
Circle to Search + Song Finder brings Google's Android-exclusive Circle to Search gesture interaction and real-time tab audio music recognition to desktop Chromium browsers (Google Chrome, Microsoft Edge, Brave, Opera, Vivaldi).
- Google's Circle to Search: Google introduced Circle to Search exclusively for select Android flagship devices. However, it locks users into Google Search, lacks local OCR privacy, and cannot recognize tab audio.
- The Android Open-Source App: Developer Farhan Muh Tasim (@frnAlt) created the open-source Android app
frnAlt/CircleToSearchto provide multi-engine visual search and offline OCR for any Android device. - The Web Extension Port: This project ports the visual drawing overlay into a high-performance Manifest V3 Browser Extension, integrating tab audio music identification inspired by
fillwithjoy1/circle-to-search.
- β Freehand Circle & Box Drawing Overlay:
- Injects a high-performance transparent canvas overlay upon pressing hotkeys (
Alt+S/Cmd+Shift+S). - Supports smooth glowing Freehand Circle / Lasso drawing and Rectangular Drag selection modes.
- Automatically calculates selection bounds with high-DPI display scaling (
window.devicePixelRatio).
- Injects a high-performance transparent canvas overlay upon pressing hotkeys (
- π Multi-Engine Reverse Image Search:
- Instantly search selected regions using Google Lens, Bing Visual Search, Yandex Images, or TinEye.
- π΅ Tab Audio Music Recognition (
Alt+M):- Captures tab audio streams using
chrome.tabCapture. - Displays a live animated audio spectrum visualizer during sampling.
- Identifies songs using AudD & Shazam APIs and renders track cards with album art, artist details, and direct links to Spotify, YouTube, and Apple Music.
- Captures tab audio streams using
- π On-Device Local OCR:
- Extracts text from images, videos, canvas, or locked web elements without cloud tracking.
- π Instant On-Screen Translation:
- Translates foreign text from selected screen regions into target languages (English, Spanish, German, French, Chinese, Japanese, etc.).
- π¨ Shadow DOM Style Isolation:
- Encapsulated inside
#cts-extension-overlay-rootshadow root so host web page styles never interfere with extension drawing or modals.
- Encapsulated inside
- βοΈ Customizable Aesthetics & Preferences:
- Custom stroke color presets (Google Blue, Emerald Green, Crimson Red, Cyberpunk Cyan, Neon Purple), glowing aura toggles, and hotkey configurations.
flowchart TD
User([User Keypress Alt+S / Alt+M]) --> BG[background.js Service Worker]
BG -->|Injects / Messages| CS[content.js Shadow DOM Overlay]
CS -->|Draw Circle / Drag Box| Canvas[HTML5 Canvas 2D]
Canvas -->|Sends Bounds & DPR| BG
BG -->|Capture Viewport| Screenshot[chrome.tabs.captureVisibleTab]
BG -->|Sends Screenshot & Path| Offscreen[offscreen.js Canvas Worker]
Offscreen -->|Crop Snippet| CroppedImg[PNG Image Blob]
CroppedImg -->|Search Action| Lens[Google Lens / Bing / Yandex]
CroppedImg -->|OCR / Translate Action| OCRWorker[Local Tesseract & Translate API]
BG -->|Tab Audio StreamId| OffscreenAudio[offscreen.js Audio Recorder]
OffscreenAudio -->|Query Audio Sample| AudD[AudD / Shazam Music API]
AudD -->|Song Metadata| MusicWidget[Content Script Spectrum Widget]
| Feature | Windows / Linux | macOS | Action |
|---|---|---|---|
| Circle to Search | Alt + S | Cmd + Shift + S | Open visual selection overlay on active tab |
| Song Finder | Alt + M | Cmd + Shift + M | Sample tab audio and identify playing song |
| Close Overlay | Esc | Esc | Dismiss active overlay or music widget |
| Feature | Official Google CTS (Android) | Standard Extensions | Circle to Search Web Extension |
|---|---|---|---|
| Cross-Platform (Win/Mac/Linux) | β | β | β |
| Supported Browsers | N/A | Chrome Only | Chrome, Edge, Brave, Opera, Vivaldi |
| Freehand Circle Drawing | β | β | β |
| Multi-Engine Visual Search | β (Google Only) | β | β (Google Lens, Bing, Yandex, TinEye) |
| Tab Audio Song Recognition | β | β | β
(Alt+M) |
| Instant On-Screen Translation | β | β | β |
| Offline Local OCR | β (Cloud Only) | β | β |
| Copy Snippet to Clipboard | β | β | β |
| Open Source | β | β | β (MIT License) |
CircleToSearch/
βββ manifest.json # Manifest V3 configuration & permissions
βββ background.js # Background service worker (commands, tabCapture, IPC)
βββ content.js # Shadow DOM overlay, canvas drawing & action bar
βββ content.css # Encapsulated CSS styles for overlay, widgets & modals
βββ offscreen.html # Offscreen DOM context for canvas & audio
βββ offscreen.js # Canvas cropping, freehand clipping, audio recorder & OCR
βββ options.html # Customization settings interface
βββ options.js # Settings persistence via chrome.storage.sync
βββ options.css # Options page design system
βββ popup.html # Extension toolbar popup
βββ popup.js # Extension toolbar popup logic
βββ popup.css # Toolbar popup styling
βββ icons/ # 16px, 32px, 48px, 128px PNG icons
βββ docs/screenshots/ # Showcase graphics & documentation assets
βββ CONTRIBUTING.md # Open-source contribution guidelines
βββ .github/workflows/ # CI/CD Release Automation (release.yml)
- Download either
circle-to-search-extension.zipor the non-zip tarballcircle-to-search-extension.tar.gzfrom the Latest Release. - Extract the archive to a local folder.
- Open your browser's extensions page (
chrome://extensions,edge://extensions, orbrave://extensions). - Toggle Developer mode in the top right corner.
- Click Load unpacked and select the unzipped
circle-to-search-extensionfolder.
- Clone the Repository:
git clone https://github.com/frnAlt/CircleToSearch.git cd CircleToSearch - Open Extensions Page:
chrome://extensions/edge://extensions/brave://extensions - Enable Developer Mode: Toggle Developer mode in the top right corner.
- Load Unpacked: Click Load unpacked and select the
CircleToSearchdirectory containingmanifest.json. - Start Using: Press
Alt+Sfor Circle to Search, orAlt+Mfor Music Search!
The project includes an automated GitHub Actions workflow (.github/workflows/release.yml).
When a release tag is pushed:
git tag v1.1.0
git push origin v1.1.0The GitHub Actions runner automatically:
- Performs JavaScript syntax verification.
- Bundles all extension assets into standard
.zip(circle-to-search-extension.zip) and non-zip.tar.gz(circle-to-search-extension.tar.gz) release archives. - Creates a published GitHub Release and attaches both release assets automatically via
softprops/action-gh-release@v2.
This open-source project is developed and maintained by Farhan Muh Tasim, known across developer platforms as frnAlt and Gtajisan.
- Lead Developer: Farhan Muh Tasim
- Primary GitHub Account: frnAlt (
https://github.com/frnAlt) - Developer Handle / Alias: Gtajisan (
https://github.com/gtajisan) - Primary Source Base: frnAlt/CircleToSearch
- Feature Reference: fillwithjoy1/circle-to-search
We welcome open-source contributions! Please review our CONTRIBUTING.md guide for details on local development setups, syntax checks, and pull request guidelines.
Distributed under the MIT License. See LICENSE for details.



