Overview
Introduction
A file converter that respects the way you already work in Finder - copy, menu, done.
The app bundles the heavy CLI tools so you are not wiring up Homebrew paths before your first encode. Video and audio run through ffmpeg, usually wrapped by ffconv for live percent and ETA.
No clicks spared. - the whole point of the app
Setup
Installation
One DMG, one drag, one slightly cautious first open.
- Download the latest
.dmgfrom the releases page. - Open it and drag convertfile43 into Applications.
- Launch from Applications. Look for the swap icon in the menu bar.
Setup
Quick start
Thirty seconds from copy to converting.
- Select files in Finder. ⌘C (or Copy as Pathname).
- Click the convertfile43 menu bar icon.
- Choose a preset under Audio, Video, Images, or Documents.
- Find outputs beside the originals:
name_converted.ext.
Open Settings… (⌘,) for parallel jobs, sounds, and preset editing.
Daily use
How it works
Three moving parts: clipboard, queue, engines.
Clipboard
The menu watches the general pasteboard. Finder file URLs work; plain path text works too. If presets stay greyed out, copy again and give the timer a moment.
Job queue
Jobs move through queued → running → completed (or failed / cancelled).
The orchestrator respects maxParallelJobs. Finished rows clear after a few seconds.
Engines
ffmpeg/ffconv for most AV. ImageMagick (and sometimes ffmpeg) for images.
LibreOffice for office → PDF when installed at /Applications/LibreOffice.app.
Daily use
Supported formats
Built-in presets cover the usual paths; extend with your own.
| Category | Output | Engine |
|---|---|---|
| Audio | mp3, aac, flac, ogg, wav | ffmpeg via ffconv |
| Video | mp4, mkv, avi, webm, ogv, gif, mov | ffmpeg (VideoToolbox where available) |
| Image | jpg, png, webp, avif, ico, pdf, svg | ffmpeg / ImageMagick |
| Office | LibreOffice |
Daily use
Progress and ETA
You should never stare at a fake zero on a real encode.
Menu bar icon
Running ffmpeg jobs show an integer percent, e.g. 42%. Image/office jobs show … when percent is unknown.
Dropdown menu
Open the menu while a job runs:
- First line - truncated filename
- Second line -
42% · 12m leftwhen speed is known - Cancel - stops the job and child processes
ETA math
ffconv reads ffmpeg output and estimates wall-clock time from remaining media duration and
speed= (e.g. 2.5x). Large files may sit at 0% during probe - normal.
Logs
Logs → Open log file in the menu. Look for
Progress 42.0% (eta: 720s) lines during encodes.
Daily use
Settings and presets
Standard macOS settings window - no hidden panel.
General
- Parallel jobs - 1 through 8 simultaneous encodes
- Reveal in Finder on complete
- Play sound on complete
Presets
Name, input extensions, output type, and optional quality, bitrate, scale, fps, and related fields.
Daily use
Tips and troubleshooting
When something sticks, start here.
Cancel and quit
Cancel under the active job. Quit warns if work is running and tears down ffconv/ffmpeg trees.
Stuck at 0%
Probe phase on big containers, or an old build without live ffconv progress. Check Logs after the run.
Greyed-out presets
No matching files on the clipboard. Copy supported inputs in Finder again.
Build
Architecture
SwiftUI shell, Rust progress pipe, bundled CLIs.
| Path | Role |
|---|---|
FileConverter/App/ | Entry, delegate, quit flow |
FileConverter/Features/MenuBar/ | Menu UI, clipboard poll |
FileConverter/Features/Settings/ | Presets and preferences |
FileConverter/Features/Conversions/ | Orchestrator |
Middleware/rust-tool/ | ffconv |
Installer/ | DMG packaging |
Build
Building from source
Xcode, XcodeGen, Rust. Same toolchain as CI (macOS 26 / Xcode 26.5).
brew install xcodegen imagemagick cd /path/to/convertfile43 xcodegen generate ./Middleware/Scripts/download-binaries.sh bash Installer/generate-app-icon.sh xcodebuild -project convertfile43.xcodeproj -scheme convertfile43 \ -configuration Release -derivedDataPath ./Build \ -destination "generic/platform=macOS" build \ CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO \ CODE_SIGN_ENTITLEMENTS="" CODE_SIGNING_ALLOWED=NO
Local DMG
APP="./Build/Build/Products/Release/convertfile43.app" bash Installer/build-dmg.sh "$APP" "0.2.1" "convertfile43-0.2.1.dmg"
Run bash Scripts/ci-local.sh to mirror CI locally.
Build
Testing
Unit and integration tests via xcodebuild.
xcodebuild -project convertfile43.xcodeproj -scheme convertfile43 \ -configuration Debug -derivedDataPath ./Build \ -destination "platform=macOS" test \ CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO \ CODE_SIGN_ENTITLEMENTS="" CODE_SIGNING_ALLOWED=NO
Build
License
Free and open source.
GPL v3 - LICENSE in the repo. Built on FFmpeg and LibreOffice.