Skip to main content
Brian Cantoni

My First Electron App: ImageLinks

I wanted a simple app to extract links from screenshots and used Claude Code to create a simple desktop application that did exactly that. This was my first time creating anything with the Electron cross-platform app platform and it worked quite well.

My idea originated at work where I spend a lot of time in meetings and often people will be presenting Tableau dashboards or other documents without remembering to share the links. My usual workaround is to take a quick screenshot so I can find that content later. Instead of doing that manually, what if I had a Mac app that could analyze an image and show all the web links automatically?

See my ImageLinks project at https://github.com/bcantoni/imagelinks to see all the source code and give it a try.

For this project I wanted to try Claude Code to build something from scratch and using something I wasn't already familiar with -- in this case, the Electron platform. I started with a basic spec for Claude to follow and iterated on that with Claude's help. These were the key points:

  • Two modes of operation: drag and drop an image file, or use the image from the clipboard.

  • Supported platforms: Mac, Windows, Linux (getting Mac working as the first priority).

  • In the image, look for URLs and QR codes (which should be decoded).

  • Technology: use electron and electron-builder; use only popular/common Node libraries.

  • Started with 5 test images and expected results.

After some quick iterations I had the final SPEC.md ready and I prompted Claude Code to build it per the spec. ☺

Claude quickly got to a working application, and we iterated on a few specific areas:

  • Adding to the library of tests for different combinations of URLs and QR codes and some lower resolution difficult tests.

  • Improving the speed for the image detection code. The original version from Claude was good but it was too complex. For example, it created all 4 rotated versions of an image and ran each through the image detection loop. My use case is simpler, and everything is normally in the upright orientation.

  • Improving the detection quality for images. This was some iteration with more complicated test images and adjusting the algorithm.

  • Creating GitHub workflows for CI builds and an automated release process.

  • Creating the project README.md which includes a summary of the app, how to install, and developer notes.

Overall, this simple project was a success, and I do use it on my work laptop. In cases where I have an image that doesn't come through correctly, I can add it as a test with the expected result and just ask Claude Code to fix the detection. I've tested and used both the Mac and Windows installers, and everything just works. The only tricky part on the Mac side is these are "unsigned," so I need to remove the Apple quarantine attribute after install. (The command is: xattr -cr /Applications/ImageLinks.app.) If I ever have other reasons for a paid Mac developer account, I could officially sign these.