ScreenTextGrab is a local-first macOS menu bar OCR app for turning anything visual into usable text without leaving the app you are already working in.
It is built for:
- on-screen text capture
- video subtitles
- code snippets and terminals
- spreadsheet-like tables
- copied screenshots, image files, and PDFs
OCR runs locally with Apple's Vision framework, so screenshots and recognized text stay on the device.
The app UI supports both English and Turkish. You can keep it on System or switch it inside Settings > General. The screenshots below use the English UI for consistency.
Latest notarized release: GitHub Releases
| Area | What it does |
|---|---|
| Inputs | Screen regions, clipboard images, local images, PDFs, Finder imports |
| Modes | Standard, Subtitle, Code, Table |
| Outputs | Smart, Plain Text, Cleaned, Office, Markdown, JSON |
| Reuse | Saved regions, app profiles, snippets, snippet collections |
| Automation | stg, URL scheme, Shortcuts |
| Privacy | Local OCR with Apple's Vision framework |
- Capture from any screen region without changing apps
- Use purpose-built OCR modes for text, subtitles, code, and tables
- Paste as plain text, cleaned text, Markdown, JSON, or rich Office output
- Keep table structure for Excel, Numbers, Word, and Pages workflows
- Reuse saved regions, snippets, and app-specific capture profiles
- OCR images and PDFs from the clipboard, Finder, or local files
- Stay inside a compact menu bar workflow instead of a heavy desktop app
curl -fsSL https://raw.githubusercontent.com/batu3384/ScreenTextGrab/main/scripts/bootstrap_install.sh | bashThis installs:
ScreenTextGrab.appinto/Applications- the
stgterminal helper - the latest release when one is available
- cleanup rules so Spotlight points to the canonical app copy
After installation:
stg openOr open ScreenTextGrab from Spotlight.
On first launch, macOS asks for Screen Recording permission once. After you allow it, reopen the app and continue normally.
Fastest path:
- Install with the command above
- Grant Screen Recording permission
- Open the menu bar panel
- Pick a mode
- Capture and paste
./scripts/install.sh- Open the menu panel.
- Pick the capture mode that matches the content.
- Click
Capture Text. - Select the screen region.
- Paste the result into the target app.
Recommended presets:
| Content | Mode | Output |
|---|---|---|
| General text | Standard |
Smart |
| Subtitles | Subtitle |
Cleaned |
| Code / terminal | Code |
Markdown |
| Tables / lists | Table |
Office |
If you already copied an image:
- Copy the image to the clipboard.
- Open the
Importmenu in the menu panel. - Choose
Read Clipboard Image.
You can do the same from Terminal:
stg clipboard-image --mode standard --output cleanedUse this when the source already exists as a PNG or JPG on disk.
Options:
Import > Read Image File- drag the image onto the menu panel
Open With > ScreenTextGrabin Finder- Finder Services:
OCR with ScreenTextGrab
Terminal:
stg file-image --path ~/Desktop/table.png --mode table --output officeFor scanned or image-based PDFs:
Import > Read PDFcopies OCR text from the documentImport > Searchable PDFcreates an exportable searchable PDF
Terminal:
stg pdf-file --path ~/Desktop/sample.pdf --mode standard --output cleaned
stg pdf-searchable --path ~/Desktop/sample.pdf --destination ~/Desktop/sample-searchable.pdfScreenTextGrab is designed for repeated work, not just one-off OCR.
You can:
- save a screen region and run it again later
- create app-specific capture profiles
- save reusable OCR results as snippets
- group snippets into named collections
- let the panel surface the right region or snippet when the related app becomes active
If you spend all day in the same apps, this is where the product starts to feel more like a workflow tool than a one-off OCR utility.
| Mode | Best for |
|---|---|
Standard |
documents, UI text, dashboards, general copy |
Subtitle |
video subtitles, overlays, repeated lower-third text |
Code |
code blocks, logs, terminals, developer tools |
Table |
spreadsheets, price lists, multi-column layouts |
| Output | Use case |
|---|---|
Smart |
best default output for the selected mode |
Plain Text |
raw text paste |
Cleaned |
cleaned OCR output from noisy captures |
Office |
rich paste for Excel, Numbers, Word, and Pages |
Markdown |
notes, docs, code blocks |
JSON |
automation and structured post-processing |
For spreadsheet-style capture:
- Choose
Tablemode. - Choose
Officeoutput. - Capture the table.
- Fix cells in the built-in table review window if needed.
- Paste into Excel, Numbers, Word, or Pages.
Use saved regions when you repeatedly OCR the same part of the screen.
Typical examples:
- the same table inside Excel
- a fixed dashboard tile
- a repeated subtitle area
- a recurring terminal panel
Saved regions can also become smarter:
- the panel can suggest them when the related app becomes active
- window-title matching improves the suggestion when accessibility access is enabled
Smart Startcan run the best matching region directly from the main button
If different apps need different OCR defaults, create an app profile.
Profiles can store:
- capture mode
- output format
- OCR language selection
Optional Smart Panel Sync keeps the visible menu panel settings aligned with the frontmost app profile.
The app keeps recent capture history locally and lets you turn useful results into reusable assets.
You can:
- pin important history items
- save named snippets
- tag snippets
- search by name, text, app, and tag
- save filters as named snippet collections
- reopen those collections later from the UI, Terminal, URL scheme, or Shortcuts
When the related app becomes active again, ScreenTextGrab can:
- suggest the best saved region
- suggest the best snippet collection
- offer the single best matching snippet directly in the menu panel
- learn repeated snippet choices for the same app or window
ScreenTextGrab supports image and PDF OCR beyond on-screen capture.
Available entry points:
- clipboard image OCR
- local image file OCR
- local PDF OCR
- searchable PDF export
- drag and drop onto the menu panel
- Finder
Open With > ScreenTextGrab - Finder Services:
OCR with ScreenTextGrab
ScreenTextGrab exposes lightweight automation entry points for shell tools, launchers, and Apple Shortcuts.
stg capture --mode table --output office
stg repeat-last --mode code --output markdown
stg saved-region --name "Safari • Revenue Table"
stg active-snippet
stg snippet --name "Price List"
stg snippet-collection --name "Excel Reports"
stg clipboard-image --mode standard --output cleaned
stg file-image --path ~/Desktop/table.png --mode table --output office
stg pdf-file --path ~/Desktop/sample.pdf --mode standard --output cleaned
stg pdf-searchable --path ~/Desktop/sample.pdf --destination ~/Desktop/sample-searchable.pdf
stg versionopen 'stg://capture?mode=table&output=office'
open 'stg://repeat-last?mode=code&output=markdown'
open 'stg://saved-region?name=Safari%20%E2%80%A2%20Revenue%20Table'
open 'stg://active-snippet'
open 'stg://snippet?name=Price%20List'
open 'stg://snippet-collection?name=Excel%20Reports'
open 'stg://clipboard-image?mode=standard&output=cleaned'
open 'stg://image-file?path=/absolute/path/to/table.png&mode=table&output=office'
open 'stg://pdf-file?path=/absolute/path/to/sample.pdf&mode=standard&output=cleaned'
open 'stg://searchable-pdf?path=/absolute/path/to/sample.pdf&destination=/absolute/path/to/sample-searchable.pdf'Supported query parameters:
name=Saved Region or Snippet Namemode=standard|subtitle|code|tableoutput=smart|plain-text|cleaned|office|markdown|jsonlanguages=tr,enocr-auto=true|false
For scripts and launchers, the URL scheme is the recommended stable entry point because it also works while the app is already running.
The menu panel is the day-to-day workspace for capture, mode switching, output control, quick import actions, and contextual suggestions.
The General tab covers interface language, capture defaults, output presets, shortcut setup, launch-at-login, watch behavior, and app profile controls.
The OCR tab controls automatic language detection and the recognition language set used by the capture pipeline.
The History tab is the operational archive for recent captures, saved regions, reusable snippets, and saved snippet collections.
The Diagnostics tab helps verify permissions, runtime state, version details, and troubleshooting metadata.
The table review window lets you correct OCR output cell by cell before copying it back as Office, Markdown, JSON, or plain text.
- Copy a subtitle from a video without pausing your workflow
- Turn a copied screenshot into editable text
- Pull a table out of a web page and paste it into Excel
- Convert a scanned PDF into a searchable document
- Save a recurring dashboard area and rerun it later with one click
- Keep reusable OCR results as snippets for the apps you use every day
ScreenTextGrab does not upload screenshots or OCR results to a remote service. OCR runs locally with Apple's Vision framework. The app requests Screen Recording permission because macOS requires it for region capture.
- macOS 14 or newer
- Xcode 15 or newer only if you are building from source





