back to blog

--- blog

how to make every screenshot on your mac searchable by text (automatically).

February 7, 2026|13 min read

You can copy text from a screenshot you're looking at right now. Apple made that easy with Live Text. Hover over any text in an image in Preview or Photos, and you can select it, copy it, even click links.

But try finding a specific screenshot from three weeks ago by the text that was IN it. Like that error message you screenshotted during a deployment. Or the confirmation number from that support chat. Or the exact wording of that alert message you swore you saved.

Totally different problem.

what macOS actually does (and doesn't do)

Live Text is genuinely useful when you're already looking at an image. You can interact with phone numbers, addresses, even translate text. It works in Preview, Photos, Quick Look, and Safari.

But the feature everyone assumes exists? Spotlight searching through the text inside their screenshots? That's where things fall apart.

macOS technically can index text from images. It's supposed to use on-device intelligence to extract text and make it searchable through Spotlight. In practice, it's unreliable at best.

Sometimes it works. You search for a word you know appeared in a screenshot, and Spotlight finds it. Other times you search for text you KNOW was in a screenshot you took yesterday, and you get nothing. Or it takes hours to index. Or it only works for some screenshots but not others.

Apple improved this in macOS Sequoia. The indexing is better than it was in Monterey or Ventura. But "better" still means you can't trust it. Most people discover this the hard way when they desperately need to find a specific screenshot and realize their Mac never actually indexed it.

The experience is passive and unpredictable. You take a screenshot, it lands on your Desktop or in your Screenshots folder, and maybe macOS will eventually extract the text from it. Or maybe it won't. You have no idea which screenshots are searchable and which aren't.

And even when it does work, searching "error" returns every screenshot that contains that word, which doesn't help when you're trying to find one specific error message from a specific context.

why "extract text from screenshot" misses the point

If you search "how to make screenshots searchable" on Google, every top result teaches you the same thing. How to use Live Text to copy text from the image you're currently viewing. Or how to use Preview's text selection. Or how to use third-party OCR tools to extract text from a single image.

All of that is useful. If you have a screenshot open right now and need to grab a phone number or copy an error message, those solutions work perfectly.

But that solves a completely different problem than what most people actually need.

The real problem isn't copying text from a screenshot you're already looking at. It's finding the screenshot in the first place. You have hundreds of screenshots scattered across your Desktop, Downloads folder, and wherever else they ended up. You need the one with a specific piece of information in it.

One-at-a-time text extraction doesn't scale. You're not going to manually open 500 screenshots and run OCR on each one just to make them searchable. Even if you did, where would you store that extracted text? In the filename? In Spotlight comments? In a separate notes app?

What you actually need is a system that automatically processes every screenshot you take and makes all of them searchable without any manual work. The extraction is just one piece. Storage, indexing, and search are equally important.

the DIY approach: making screenshots searchable with automation

If you're comfortable with command-line tools and automation, you can build this yourself. It's not trivial, but it's doable.

The most common approach uses Tesseract OCR, an open-source text recognition engine. Tesseract is powerful and free. You can install it via Homebrew, point it at an image, and it spits out the extracted text.

The automation part requires something to watch your Screenshots folder and trigger OCR whenever a new file appears. Some people use Folder Actions (built into macOS). Others use Hazel, an app that monitors folders and runs rules on new files. You could also write a bash script with fswatch or a launchd agent.

Once you extract the text, you need somewhere to put it. Some solutions store it in a sidecar .txt file next to the screenshot. Others write it to the file's Spotlight comments using xattr so macOS indexes it. A few people dump everything into a SQLite database and build a custom search interface.

Does it work? Yes. Developers have been doing variations of this for years. There are GitHub repos with bash scripts and Ruby scripts that handle the whole pipeline.

But it requires setup, debugging, and maintenance. Tesseract's OCR quality varies depending on the image. Text on complex backgrounds or unusual fonts often gets mangled. You need to handle file permissions, execution errors, and edge cases like screenshots taken while the automation script is running.

And you're still just getting raw OCR output. If you search for "error," you get every screenshot containing that word with no context about what kind of error or why you saved it.

For people who enjoy tinkering and want full control, this approach works. For everyone else, it's too much friction.

the app approach: tools that handle this for you

Several Mac apps offer OCR or text extraction from screenshots. None of them quite solve the "make my entire library searchable" problem, but they're worth understanding.

Shottr is a free screenshot tool with built-in OCR. You take a screenshot with Shottr, and you can immediately extract text from it. It's fast and the OCR quality is solid. But it's focused on the moment of capture. It doesn't automatically process your existing screenshot library or make everything searchable in one place.

CleanShot X is a popular paid screenshot app with similar OCR capabilities. You capture an image, run OCR on it, and copy the text. It also has features like scrolling capture and annotations. But again, it's a capture-time tool. The OCR happens when you manually trigger it, not automatically on your entire library.

TextSniper takes a different approach. It's not a screenshot tool at all. It's a dedicated OCR utility that extracts text from anything on your screen. You activate it with a hotkey, drag to select an area, and it copies the text. Great for grabbing text from images, videos, or PDFs you can't otherwise select. But you're still operating one image at a time.

Apple's Live Text deserves credit for being built into the OS and working across multiple apps. It's getting better with each macOS release. But it's fundamentally passive. It only processes images you're actively viewing, and it doesn't give you a searchable index of everything.

None of these tools automatically make your existing screenshot library searchable. They help you extract text from individual images when you think to do it, but they don't solve the problem of finding a screenshot from weeks ago by remembering a fragment of text that was in it.

why OCR alone isn't enough

Here's the thing everyone misses: even if you successfully run OCR on every screenshot and make all that text searchable, you still end up with a mess.

OCR extracts the text that was visible on screen. That's valuable, but it's also limited.

A screenshot of a Slack conversation has text. A screenshot of VS Code has text. A screenshot of a System Preferences panel has text. A screenshot of an error modal has text. If you search for "settings" or "error" or "failed," you might get 50 results across completely different contexts.

OCR gives you the raw ingredients but no understanding of the dish. It sees words but doesn't know what they mean together. It can't tell you that one screenshot is a deployment error from your CI/CD dashboard while another is a JavaScript console error from your browser, even though both contain the word "error."

OCR doesn't know WHY you took the screenshot. It doesn't know what problem you were debugging, what feature you were documenting, or what conversation you were saving for later. It only knows what pixels looked like text.

This is where AI vision analysis adds something fundamentally different. Modern vision models don't just extract text. They understand the screenshot as a whole image. They can tell you "this is an error message from a GitHub Actions workflow" versus "this is a Figma design file showing a login screen" versus "this is a terminal window running a Python script."

That semantic understanding makes search actually useful. Instead of matching keywords, you can search by concept. "Show me screenshots of design mockups" or "Find that API error from Stripe" or "Where's the screenshot of the database schema?"

But even AI analysis only tells you what's in the image. There's still one critical piece missing.

the missing piece: context at capture time

No automated system, no matter how smart, can know why YOU specifically saved a screenshot at the exact moment you took it.

You can run the best OCR in the world. You can throw GPT-4 Vision at every image. The analysis will tell you what's visible. But it can't tell you that you took this screenshot because Jake mentioned a weird bug in standup, or because this was the error the client reported in their onboarding flow, or because you wanted to remember this specific UI pattern for the redesign.

That context exists only in your head, and only for about 30 seconds after you press Cmd+Shift+4. After that, it's gone.

This is where ohsnp approaches the problem differently.

Instead of trying to guess why you saved something, it asks you. Right after you take a screenshot, you get a 5-second window to add context. You can press Enter and speak a quick voice note. Or Shift+Enter to type a text note. Or Escape to skip and just let the AI analysis handle it.

The whole thing runs in the background. ohsnp watches your Screenshots folder using macOS file system events. When a new screenshot appears, it automatically runs AI analysis to understand what's in the image. Then it gives you that brief moment to add your own context before getting out of your way.

Both the AI analysis and your context become searchable through a Cmd+K palette. You don't have to remember filenames or dig through folders. You just press Cmd+K and describe what you're looking for in plain language.

"Deployment error from last Tuesday." "Jake's bug from standup." "The pricing table design Sarah shared." The combination of AI understanding and human context means you actually find what you need.

Everything stays local. Your screenshots never leave your Mac. The AI analysis happens through your own API key, and all the metadata lives in a local database. You're not uploading your screen contents to someone else's server.

It's the automation of the DIY approach without the scripting, plus the intelligence of AI analysis, plus the one thing no computer can provide on its own: your reason for saving it in the first place.

what a searchable screenshot library actually looks like

Imagine you're in a meeting. Someone mentions an error that happened last week during a deployment. You vaguely remember screenshotting it, but you have no idea what you named the file or where it ended up.

You press Cmd+K. The search palette opens. You type "deployment error last week." Three screenshots appear. One is the actual CI/CD error you were thinking of. The other two are related errors from around the same time that you'd completely forgotten about but are probably relevant to the conversation.

You open the right one. It's still sitting in your Downloads folder with a filename like "Screenshot 2026-01-28 at 3.47.22 PM.png" that tells you nothing. But you found it in five seconds because the system understood what was in the image and you added a quick voice note when you took it.

Or: you're working on a redesign. You know you saved a screenshot of a competitor's onboarding flow that had a really clean progress indicator. You can't remember which competitor or when you took it.

Cmd+K. "Onboarding progress indicator." There it is, along with two other onboarding screenshots you took from different products. You're not searching filenames or hoping you tagged it correctly. You're searching the actual content and meaning.

Or: you're doing your taxes. You need the confirmation number from that software purchase you made six months ago. You know you screenshotted the receipt email, but who knows where that file is now.

Cmd+K. "Software receipt confirmation." Done.

This isn't theoretical. This is what happens when screenshots are actually searchable. Not "searchable" in the sense of "macOS might eventually index the text if you're lucky." Searchable as in you describe what you're looking for and you find it.

The mental model shifts. You stop treating screenshots as disposable temporary files you'll probably never look at again. You start trusting that anything you screenshot is actually retrievable later. That changes how you use them.

Instead of trying to remember to file screenshots in folders or rename them with useful names or copy information out of them into notes, you just take the screenshot. Add a two-second voice note if it needs context. Move on with your work. Trust that you'll be able to find it when you need it.

If you want to understand why this approach works better than traditional folder organization, we wrote about it here: how to organize screenshots on mac. And if you're curious about why context matters more than AI analysis alone: why screenshots need context.

closing

Your screenshots already contain a goldmine of information. Error messages you spent hours debugging. Design inspiration you wanted to remember. Confirmation numbers and receipts. Conversations and code snippets and configuration settings. All of it is technically saved on your Mac somewhere.

The only question is whether you can actually find it when you need it.

Live Text was a good start, but it only works on images you're already viewing. Spotlight indexing is unreliable and doesn't understand context. Manual organization takes too much time and never keeps up with how many screenshots you actually take.

Making screenshots truly searchable means three things: automatic processing so you don't have to think about it, intelligent analysis so search understands what you're looking for, and context capture so the system knows why you saved something in the first place.

That combination is what turns a messy pile of "Screenshot 2026-01-15 at 2.34.19 PM.png" files into something you can actually use six months from now.

ohsnp is currently in private beta. If you're tired of losing track of screenshots you know you took but can't find, join the waitlist.