← All writing
July 12, 2026

I Built My First App, and It Finds Any Screenshot I've Ever Taken

I built my first "app" today.

I am putting "app" in quotes on purpose. This is a personal project, not something headed for the App Store. It was a couple-hour experiment, and I am happy with how it turned out. More than the app itself, it was a nice step in my AI learning.

I have spent my whole career around software, leading the teams who build it, but I had never actually shipped a working app of my own. Today that changed, and I want to tell you about it, because the how is almost more interesting than the what.

Let me start with the problem, because that is where all my projects start.

I take a lot of screenshots. A price on a website, a Slack message with a link I forgot to save, a receipt, an error message I want to remember. And then they vanish into a folder of a thousand near-identical images, and weeks later I know I saw the thing, I just cannot find it. Scrolling through hundreds of thumbnails hoping to spot it is exactly the kind of recurring, low-grade friction that drives me up a wall.

So I built the fix. I call it Screenshot Catalog.

The Screenshot Catalog logo: a magnifying glass with the letters OCR inside it.

The logo and menu bar icon: a magnifying glass with "OCR" inside. I made it in ChatGPT.

What it does

Screenshot Catalog is a free, private tool that makes your screenshots searchable. Every screenshot you take gets automatically read by OCR, which is optical character recognition, the technology that extracts the visible text out of an image. That text goes into a local database on your machine. Then, whenever you need something you saw on your screen weeks or months ago, you just search a word or phrase and the right screenshot surfaces instantly.

The main search screen. Type any word that appeared on screen and the matching screenshots come back instantly.

The main search screen. Type any word that appeared on screen and the matching screenshots come back instantly.

Here is the full rundown of what it does:

  • Watches your screenshots folder (Dropbox, or wherever you store them) and indexes new images in real time
  • Lets you search across 1,000+ screenshots by any text that appeared on screen: emails, URLs, prices, names, error messages, anything
  • Uses full-text search, so results come back instantly
  • Shows a preview of the image right alongside the matched text
  • Automatically skips duplicate screenshots, so nothing gets indexed twice
  • Has a word cloud view, so you can see which topics show up most across all your screenshots
  • Runs entirely on your Mac. No cloud, no subscription, no data ever leaves your machine

A few real examples of how I already use it:

  • "I saw a price on a website last month but forgot where." Search the price.
  • "Someone sent me a Slack message with a link I didn't save." Search any word from the message.
  • "I screenshotted a receipt but can't find it." Search the store name or the amount.

A search for

A search for "sealant" finds the exact screenshot, with the matched text highlighted and a thumbnail preview alongside.

It lives as a small icon in your Mac menu bar and opens in its own native window. Setup takes about five minutes.

How it is built

For the tinkerers in the crowd, here is what is under the hood.

It is built in Python. Tesseract does the OCR, the extracted text lands in a local SQLite database with an FTS5 full-text index (that is what makes the search instant), and a watchdog file watcher notices new screenshots the moment they land and indexes them in the background. The little app lives in the menu bar as a native icon, and the interface is a local Flask app rendered inside a native Mac window, so it feels like a real app rather than a browser tab. I packaged the whole thing into a double-clickable .app with PyInstaller.

One design choice I am happy with is that the app does not capture screenshots itself. Instead, it watches the folder your normal screenshot tool already saves into. That means it works with whatever capture method you are used to, whether your shots land in Dropbox, Google Drive, or a local folder, and you do not have to change a single habit to use it. I also put together a rougher Windows version for use at work.

Settings: point it at whatever folder your screenshots already land in, choose a port, and re-index.

Settings: point it at whatever folder your screenshots already land in, choose a port, and re-index.

One thing that surprised me was how much OCR fights you on dark-mode screenshots. My first pass missed a lot of light-on-dark text, like tickers on a stock chart. So I reworked it into a multi-pass pipeline that adapts to the brightness of each image and reads it a few different ways, which pulled my recall on a tough test image from 5 out of 13 labels up to 13 out of 13. It also skips duplicate screenshots automatically by hashing each file, so nothing gets indexed twice. My own catalog is sitting at around 1,900 screenshots now, and it searches all of them in an instant.

The little menu bar icon, by the way, is a magnifying glass with "OCR" tucked inside it. I made that in ChatGPT. The font came out small, but I kind of like it. The whole thing is free and open source.

The About tab. It is a small local app, running quietly on your Mac.

The About tab. It is a small local app, running quietly on your Mac.

The part I actually want to talk about

Here is the thing that makes this more than just another utility.

I did not write this app the old-fashioned way. I built it with Claude Cowork.

If you have read my other posts, you know I have been circling this idea for a while. For years, the thing standing between me and building my own software was not the idea, it was the sheer amount of fiddly work and specialized knowledge it takes to get from "I have an idea" to "the thing runs." I lead software teams, but I am not a full-time developer, and that gap always felt like too much to cross for a personal project.

That gap is closing fast.

Working alongside AI, I described what I wanted, worked through the problems as they came up, and ended the day with a real, working app that solves a real problem in my life. Honestly, the app itself was almost secondary. The bigger win was the learning experience, feeling that wall turn into a doorway. The stuff that used to stop me cold is now a conversation.

And this is the same lesson I keep relearning in different clothes. When something keeps tripping you up, do not just live with the friction, find the tool that removes it. My messy screenshot folder was the friction. The app is the fix. And the reason the app even exists is that AI removed the friction that used to keep me from building it in the first place. Friction all the way down, and a fix at every level.

Where this goes

Screenshot Catalog is not fancy, and it is not perfect. It is a first app, and it looks like one. But it works, it is already saving me time, and I built the whole thing in a day.

That last part is the real headline. Not the app. The fact that building it is now something a curious person can do in an afternoon.

So if you have a small annoyance in your day that a little custom tool could solve, this is your nudge. The barrier is a lot lower than you think. Go build the thing.

The code is on GitHub: github.com/technomaybe/screenshot-catalog.