As a developer I was tired of switching between tools every time I needed to process something I copied. Format JSON? Open a website. Encode Base64? Another tab. Resize an image? Open Preview. Convert a hex color? Google it. So I built ClipMason, a clipboard manager for macOS that detects what you copy and offers contextual actions right there.
How it works
ClipMason lives in the menu bar. Every time you copy something, it detects the content type and shows relevant actions.
Text (22+ actions)
Case conversion: uppercase, lowercase, Title Case, camelCase, snake_case, kebab-case
Encoding: Base64, URL encode/decode
Formatting: JSON pretty print, JSON minify
Hashing: MD5, SHA-256
Lines: sort A-Z/Z-A, remove duplicates, remove blank lines
Stats: character, word, and line count
Images
Resize with precise control (percentage or exact pixel dimensions)
Rotate, flip, grayscale, invert colors
Annotate with drawings
Extract text with OCR
Export as PNG or JPEG
Colors
Copy a hex string like #FF5733? ClipMason detects it automatically and lets you convert to HEX, RGB, HSL, SwiftUI Color or CSS format.
URLs
Open in browser
Extract domain
Convert to Markdown link
Files
Open with default app
Reveal in Finder
Copy path for terminal use
Tech stack
SwiftUI for the UI, SwiftData for persistence, Swift 6 with strict concurrency. macOS 14+ native app, no Electron. 16 languages supported. Everything runs locally. No cloud, no tracking, no subscription.
What I learned building it
The hardest part was clipboard type detection. macOS puts multiple representations on the pasteboard simultaneously—for example, copying a file also puts a PNG icon on the clipboard. Getting the detection order right was tricky.
Another challenge was image resizing on Retina displays. Using lockFocus() creates a 2x backing store, so a 100x100 resize produced 200x200. Switching to explicit NSBitmapImageRep with pixel dimensions fixed it.
ClipMason is available on the Mac App Store as a one-time purchase. I'd love to hear what actions you'd find useful—I'm actively adding features based on feedback.

Top comments (0)