How to copy text from anywhere on your Mac's screen
By Ziad Ziadeh, Snapline’s developer · Published 20 September 2026
The short version
- Free and built in: press ⌃⇧⌘4 to put a screenshot of the words on the clipboard, open it in Preview with File → New from Clipboard, drag across the text and choose Copy Text. That's Live Text, and nothing gets saved to your desktop.
- If you do it several times a day, a one-shortcut OCR tool turns it into one drag: TextSniper, Shottr, the free and open-source TRex, or the text modes in CleanShot X and Capso. Drag a rectangle over anything and the words are on the clipboard.
- Snapline's Capture Text (⌥⌘E) is that drag plus what OCR usually breaks: wrapped lines paste as paragraphs, a table can be copied as cells for a spreadsheet, code keeps its indentation, and each read is kept in History as a searchable text clip, or not kept at all if you'd rather.
Why some text can't be selected
If you can't select it, it isn't text any more: it's a picture of text. Words in a paused video, a slide in a screen share, a remote desktop, an image on a web page, a scanned page, or an app that draws its own interface reach your screen as pixels, and the cursor has nothing to grab. Getting them back takes OCR, optical character recognition, which reads the pixels and returns characters you can paste. Every Mac on macOS 14 or later has it built in, as Live Text.
Every route on this page uses OCR. What separates them is how many steps sit between you and the clipboard, what happens to the layout on the way (paragraphs, tables, code), and whether the text is kept anywhere once you've pasted it. If the text is selectable, you don't need any of this: drag across it and press ⌘C.
The free route: Live Text, no file saved
macOS has no single shortcut for copying text off the screen, but two built-in pieces add up to one without leaving a screenshot file behind. Apple documents both: adding Control to a screenshot shortcut puts the picture on the clipboard instead of the desktop, and Live Text in Preview copies the words out of any image it has open.
- Press ⌃⇧⌘4 and drag over the text. With Control added, macOS puts the screenshot on the clipboard instead of saving a file.
- Open Preview and choose File → New from Clipboard. The screenshot opens as an untitled image.
- Drag across the words you want. If they won't select, choose Tools → Text Selection first.
- Control-click the selection and choose Copy Text, then paste with ⌘V. Close the Preview window without saving, and nothing was written to disk.
When the picture is already in front of you, skip the screenshot. Live Text works directly on images in Safari, Photos and Quick Look, and since macOS Ventura it recognizes text in paused video frames in apps that support it. The same Control-click menu offers Look Up, Translate and a web search. Apple notes that Live Text "isn't available in all regions or languages." For a screenshot you've already saved, the steps are in how to extract text from a screenshot on Mac.
Where the free route stops
- Four steps, every time. Screenshot, Preview, select, copy. Fine for an address once a week; a chore when you're lifting error messages out of a video call all afternoon.
- The screen's line breaks come with the text. OCR reads line by line, so a paragraph that wrapped in a narrow window tends to paste as short lines, broken where the window ran out of room rather than where the sentence ended. Shottr's site offers a button that removes line breaks after recognition for exactly this reason.
- Nothing is kept. The words live on the clipboard until the next copy. If you'll want them next week, paste them somewhere now.
- Small or blurry text misreads. OCR is only as good as the pixels: select text at the size you read it, and enlarge tiny text first where you can.
One-shortcut OCR tools
These turn the four steps into one: press a shortcut, drag a rectangle over anything on screen, and the recognized text is on the clipboard, with no screenshot step in between.
TextSniper
TextSniper does only this. Its site says to "press CMD+Shift+2 to start or select Capture Text from the menu bar," and that you can set any keyboard shortcut instead. It reads QR codes and barcodes, can read the text aloud, and recognizes the languages your macOS version supports. It is candid that it "can have misreads when there are a lot of symbols such as you might find in computer code." It's a one-time purchase from its site or the Mac App Store, it's also in Setapp, and it supports macOS Catalina and newer.
Shottr
Shottr is a free-to-use screenshot app with OCR one hotkey away: "Press a hotkey and select an area," and the text goes to the clipboard. It reads QR codes, supports Chinese once that's set as the primary language in its preferences, and is the one tool in this section that deals with line breaks on its own site: "A button to quickly remove linebreaks from the OCR text after it was recognized, and a setting to remove linebreaks by default." It runs on macOS 10.15 and up.
TRex
TRex is free and open source (MIT license), and its README sums it up: "Copy any text on your screen, stop retyping." Start it from the menu bar or a shortcut you choose and the text lands on the clipboard; it can also pass the result on to a Shortcut, a URL or a URL scheme. It reads QR codes and barcodes and needs macOS 11 or later.
The text modes in CleanShot X and Capso
Two full screenshot apps offer the same gesture as one capture mode among many. CleanShot X puts it in one line: "Simply select an area that contains the text and it will be copied to your clipboard!" It lists 30+ languages, reads QR codes too, and says its recognition is "performed completely on-device." It requires macOS 13.0 or newer, and the app is a one-time purchase with a separate subscription for its cloud. Capso, free with its source on GitHub, has Instant OCR ("select area, text copied to clipboard"), a Visual OCR mode that highlights the text regions so you can click the blocks you want, and Capture & Translate. It needs macOS 15.
All five share a model: one selection, and the text's home is the clipboard. That's exactly right for a tracking number or a verification code you'll paste once.
One drag: Snapline's Capture Text
Snapline is a screenshot app, and Capture Text is its answer to the same job: the one-drag read, with the layout put back and the text kept, if you want it kept.
- Press ⌥⌘E, or choose Capture Text from the menu bar icon. You get the same crosshair as a screenshot, captioned "Capture Text", so a drag that won't save a picture is recognizable before you start.
- Drag over the text: a paragraph in a paused video, a slide in a call, a table on a web page, a block of code in a screen share. The mode reads a region, so Space doesn't switch to picking a window here, and the caption says so if you press it.
- Let go. The area is read once, recognized on your Mac, and the text goes to the clipboard. A small confirmation shows the first line it read, so you can tell it got the right thing without pasting to check. An area with no text says "No text found in that area" and saves nothing.
- Paste with ⌘V. A card for the text clip appears in the corner (if Quick Access cards are on) with Copy Text, View Text, Star, Save, Reveal in Finder and Delete, and the clip is filed in History.
No screenshot is written at any point. Recognition runs through Apple's Vision framework in your Mac's preferred languages, always with English, so it works offline and nothing is uploaded. Which languages depends on the macOS version: macOS 14 reads fourteen, Chinese, Japanese, Korean and Russian among them, and macOS 15 adds eleven more, including Arabic, Turkish and Polish. Capture Text needs the Screen Recording permission every screen capture needs, and it's a capture mode, so after the 14-day trial it is part of what the one-time license unlocks; reading the text of captures you already have stays open without one.
Paragraphs, tables and code
Plain OCR returns the lines it saw, in the order it saw them. That's the right raw material and the wrong thing to paste, so Capture Text puts three kinds of layout back.
Paragraphs come back whole
A paragraph that wrapped on screen pastes as one paragraph. The rule
is measured on the text itself: where the next line's first word would
not have fit on the line above, the break was the window's, so it
becomes a space; where it would have fit, the break was meant, and it
stays. Short lines (menus, labels, table cells), list items, and lines
ending in {, }, ; or
: keep their breaks, a blank line comes through only
where the source had one, and scripts written without spaces join
without one.
What OCR reads (↵ is a line break):
The meeting moved to Thursday ↵
at ten, so please update ↵
the invite before Friday.
What you paste, one paragraph:
The meeting moved to Thursday at ten, so please update the invite before Friday.
It's a setting, Join lines into paragraphs (Settings → History, on by default), and it applies to every Copy Text in the app, screenshots included. In the Text View, holding Option over Copy All offers the other layout, as lines or as paragraphs, for that one copy.
Tables: Copy as Table
When what you read is a grid (two or more columns, and three or more rows whose cells line up), Copy as Table appears right after Copy Text in the menu of the clip's card and History tile, and as a button in its Text View. It puts tab-separated values on the clipboard: one row per line, cells separated by tabs, and a blank cell as an empty one, so every later value stays in its own column. Numbers and Excel paste it as cells, and a Markdown table converter turns it into a Markdown table.
| City | Time zone | Offset |
|---|---|---|
| Lisbon | WEST | UTC+1 |
| Dubai | GST | UTC+4 |
| Tokyo | JST | UTC+9 |
Copy as Table (⇥ is a tab):
City⇥Time zone⇥Offset
Lisbon⇥WEST⇥UTC+1
Dubai⇥GST⇥UTC+4
Tokyo⇥JST⇥UTC+9
It's offered only where the text really reads as a grid, so it's absent rather than wrong: a two-row table, or one whose cells don't line up, gets plain Copy Text. A heading above the grid comes through as one cell on a row of its own. The same button sits in the Text View's footer for any screenshot whose text reads as a table, with Index text in screenshots on.
Code: Copy as Code
Recognition drops indentation: Apple's Vision framework returns each line without its leading spaces. When the lines read as code (braces, semicolons, arrows, keywords at the start of lines), Copy as Code takes Copy as Table's place in the same menus: one output line per line on screen, never joined, with each line's indentation rebuilt in spaces from where it starts.
Plain OCR:
func greet(name: String) {
if name.isEmpty {
return
}
print("Hello, \(name)")
}
Copy as Code:
func greet(name: String) {
if name.isEmpty {
return
}
print("Hello, \(name)")
}
What no OCR can promise is every symbol: a zero read as an O, or an l read as a pipe. Check the paste before you run it.
Keeping what you copied, or not
The clipboard forgets. Capture Text doesn't, unless you ask it to.
- Every read is a text clip. It's saved as a small plain-text file where your screenshots go, named the way your screenshots are, so Finder and Quick Look open it without Snapline. In History it gets a tile drawn from its first lines and a Text chip beside Screenshots, Recordings and GIFs.
- Search finds it by any word in it, next week or next month, alongside every screenshot whose text matches. A star keeps a clip for good, and Collections hold clips like any other capture.
- The Text View opens a clip as text alone: copy one block or all of it, and translate it on device on macOS 15.
- Copy-only is a setting. Turn off Keep text clips in History (Settings → History) and a read is copied and confirmed, and that's all: no file, no History entry, no card. Clips you already have stay. It's the setting for license keys, passwords and one-time codes you'd rather not leave on disk.
One thing worth knowing: a clip is text you asked to keep, so it's treated like a capture, not like background OCR. Turning off Index text in screenshots removes what Snapline read from your screenshots but leaves clips alone, and the setting says so. Delete a clip the way you delete any capture.
Every option side by side
| Live Text (macOS) | TextSniper | Shottr | TRex | CleanShot X / Capso | Snapline Capture Text | |
|---|---|---|---|---|---|---|
| How you start it | ⌃⇧⌘4, then Preview's New from Clipboard, select, Copy Text | ⇧⌘2 or any shortcut you set, then drag | Its OCR hotkey, then drag | Menu bar or your shortcut, then drag | The app's text mode, then drag | ⌥⌘E (rebindable) or the menu bar, then drag |
| Where the text goes | Clipboard | Clipboard | Clipboard | Clipboard, or on to a Shortcut or a URL | Clipboard; Capso can also show a translation card | Clipboard, and a searchable text clip in History (a setting, on by default) |
| Line breaks | Not described by Apple | Not described on its site | Remove-line-breaks button, and a setting to do it by default | Not described in its README | Not described on their sites | Wrapped lines joined into paragraphs, deliberate breaks kept (a setting, on by default) |
| Tables and code | Not described by Apple | Its site warns that code can misread | Not described on its site | Not described in its README | Not described on their sites | Copy as Table (tab-separated cells) and Copy as Code (indentation rebuilt), when detected |
| QR codes | Not in the Copy Text menu | QR codes and barcodes | QR codes | QR codes and barcodes | CleanShot X: QR codes. Capso: not stated in its README | Found in screenshots and listed in the Text View; Capture Text copies text |
| On device | Yes | Not stated on its site | Not stated on its site | Not stated in its README | CleanShot X: yes, stated. Capso: not stated in its README | Yes, Apple's Vision framework; nothing uploaded |
| Price model | Free, part of macOS | One-time purchase (its site or the Mac App Store); also in Setapp | Free to use, with an occasional prompt to buy a license | Free, open source (MIT) | CleanShot X: one-time purchase for the app, subscription for its cloud. Capso: free, source on GitHub | One-time purchase; 14-day full trial |
| macOS requirement | Any Mac on macOS 14 or later has it | Catalina or newer | 10.15 or newer | 11 or newer | CleanShot X: 13.0 or newer. Capso: 15 or later | 14 or later; translation needs 15 |
Which should you use
- Once in a while: the free route. ⌃⇧⌘4, New from Clipboard, Copy Text. Don't install anything for a tracking number a week.
- Several times a day, and only the words: a one-shortcut tool. TRex if free and open source matters most, Shottr if you'd like a screenshot app in the bargain, TextSniper if you want a polished app that does just this, and the mode in CleanShot X or Capso if you already use one of them.
- Paragraphs, tables or code, or text you'll want again: Snapline's Capture Text. The paste keeps its shape, and next month the clip is a search away.
- Something secret: any clipboard-only tool, or Capture Text with Keep text clips in History off, so nothing is written to disk.
Every shortcut on this page
| Shortcut | Where | What it does |
|---|---|---|
| ⌃⇧⌘4 | macOS | Screenshot of a region to the clipboard; no file saved |
| Control-click | Preview, Quick Look, Safari | On selected Live Text: Copy Text, Look Up, Translate, Search with |
| ⌘V | Anywhere | Paste the copied text |
| ⇧⌘2 | TextSniper | Select an area; the recognized text goes to the clipboard (changeable) |
| ⌥⌘E | Snapline | Capture Text: drag an area, the text goes to the clipboard and into History (rebindable) |
| ⌃⌘S | Snapline | History shelf; type a word to find a clip or a screenshot by its text |
| ⌥ held | Snapline Text View | Over Copy All: copy once with the other layout, as lines or as paragraphs |
If ⌥⌘E was already one of your Snapline shortcuts before Capture Text arrived, yours is kept and Capture Text starts without one. Give it a chord in Settings → Shortcuts.
Questions
How do I copy text from a video or an image on my Mac?
Try Live Text first: pause the video or open the image in Safari, Photos, Quick Look or Preview, drag across the words, and Control-click for Copy Text. Where that doesn't work, press ⌃⇧⌘4 to put a screenshot of the words on the clipboard, open it in Preview with File → New from Clipboard, and copy the text there. A one-shortcut OCR tool such as TextSniper, TRex or Snapline's Capture Text (⌥⌘E) does the same in one drag.
Can I copy text from the screen without saving a screenshot?
Yes. With Control added (⌃⇧⌘4), macOS puts the screenshot on the clipboard instead of saving a file, and Preview's File → New from Clipboard opens it for Live Text. The one-shortcut OCR tools skip the screenshot step and put the text straight on the clipboard. Snapline's Capture Text saves no screenshot either: by default it keeps the text as a small text clip in History, and with Keep text clips in History turned off it keeps nothing.
Is there a keyboard shortcut to copy text from the screen on a Mac?
Not a built-in one: macOS has no single shortcut for it, though ⌃⇧⌘4 and Preview's Live Text get there in a few steps. OCR apps add one. TextSniper's site gives ⇧⌘2, and Snapline's Capture Text ships on ⌥⌘E; both can be changed.
How do I copy a table from a screenshot or a video into Excel or Numbers?
In Snapline, drag over the table with Capture Text (⌥⌘E), then right-click the text clip's card and choose Copy as Table. It puts tab-separated rows and cells on the clipboard, which Numbers and Excel paste as cells. It is offered when the text reads as a grid of at least three rows and two columns; otherwise only plain Copy Text is there. For a screenshot you already have, the Text View has the same Copy as Table button.
Can OCR keep the indentation of code?
Recognition alone loses it: Apple's Vision framework returns each line without its leading spaces. Snapline's Copy as Code rebuilds the indentation in spaces from where each line starts on screen, one output line per line, never joined. It cannot fix a misread symbol, such as a zero read as an O, so check the paste before you run it.
Why does text copied from an image have line breaks in the wrong places?
OCR reads an image line by line, and a line on screen ends wherever the window or column ran out of room, not where the sentence ends. Snapline joins wrapped lines back into paragraphs when it copies (Join lines into paragraphs in Settings → History, on by default) and keeps the breaks that were meant, such as list items and short lines. Shottr offers a button that removes line breaks after recognition.
Does Snapline keep the text I capture, and can I stop it?
By default, yes: each read is saved as a text clip, a small plain-text file where your screenshots go, listed in History and searchable. Turn off Keep text clips in History (Settings → History) and Capture Text only copies: no file, no History entry, no card. Clips stay even when Index text in screenshots is off, because they are text you asked to keep; delete one like any capture.
Does copying text from the screen work offline, or is anything uploaded?
Live Text runs on the Mac, and CleanShot X states that its text recognition is performed completely on device. Snapline reads text on your Mac with Apple's Vision framework: nothing is uploaded, there is no account, and Capture Text works with no connection.
Which languages can Snapline's Capture Text read?
The languages in your Mac's preferred languages list (System Settings → General → Language & Region), always with English, as far as Apple's models support them. macOS 14 reads English, French, Italian, German, Spanish, Portuguese, Chinese, Cantonese, Korean, Japanese, Russian, Ukrainian, Thai and Vietnamese; Arabic, Turkish, Indonesian, Czech, Danish, Dutch, Norwegian, Malay, Polish, Romanian and Swedish need macOS 15 or later. Snapline reads the list at launch, so relaunch it after adding a language.