Change a file's extension in Finder and suffix changes the file to match. No upload, no website, no app to open.
macOS 14 or later · free · nothing leaves your Mac
You have a photo and you need a PDF. So you search “png to pdf”, pick one of the identical sites, and hand your file to a stranger's server.
Nothing is uploaded here. There is no window to open, no file picker, no “drag your file here”. You already know how to rename a file.
| The usual way | Step |
|---|---|
| Search “png to pdf” | 1 |
| Pick a site, upload, wait | 2–4 |
| Close a popup | 5 |
| Download it, find it, move it back | 6–8 |
| Delete the original | 9 |
| rename .pdf | 1 |
These files are not real, but the rules are. Click a name, change what comes after the dot, press Return. The same answers the app would give — including the times it says no.
Worth trying: receipt.png → .txt, clip.mov → .mp3, manual.pdf → .docx.
| Rename | And you get |
|---|---|
| screenshot.png → .txt | the text inside the image, read out of it |
| scan.pdf → .txt | words out of a scan that has no text layer |
| photo.heic → .jpg | an iPhone photo anything can open |
| report.docx → .pdf | a PDF you can send |
| deck.key → .pdf | exactly what Keynote itself would export |
| clip.mov → .mp4 | the same video, in the container everything accepts |
| talk.mp4 → .m4a | just the audio |
| brochure.pdf → .jpg | every page as an image, in a .zip |
Get the latest release, open the disk image, drag suffix to Applications.
macOS blocks it once, because the app is unsigned. Open System Settings → Privacy & Security and click Open Anyway.
Setup asks for Full Disk Access, then converts a real file to prove it works. Why that matters →
Rather not trust a stranger's binary? It is one command:
git clone https://github.com/PewPewBiches/Suffix.git
cd Suffix && ./Scripts/build-app.sh && open build
Converts files when you rename them.
Built for macOS 14 and later. Free, MIT licensed.
The Trash contains 1 item: nine-step-png-to-pdf-workflow.txt
Close a window with its top-left box and it lands here. Unlike the other thing in there, it can come back out.