Native macOS media optimizer — drag, drop, and optimize from anywhere.
Built with SwiftUI, AppKit, and local open-source CLI tools.
Features • Install • Development • Documentation • Security • License
- Quick Access — a non-activating floating panel that appears while you drag a supported file. Shake the cursor (or hold for a configurable delay) to summon the drop zone, then release to optimize.
- Local Optimizers — uses your own installed CLI tools for maximum quality and privacy:
pngquantfor PNGjpegoptimfor JPEGgifsiclefor GIFffmpegfor videovips(libvips) for image resizing and WebP conversiongifskifor video-to-GIF workflowsgs(Ghostscript) for PDFs
- Format Conversion — one-tap conversion from the original source file:
- Images → PNG, JPEG, WebP, or HEIC
- Video / GIF → GIF, MOV, or MP4
- Concurrency Queue — processes up to your configured number of jobs in parallel; extra drops queue automatically. Cancel a running job at any time by swiping its card away.
- Drag Out — drag supported Quick Access files into external apps, Finder folders, or browsers before or after optimization.
- Smart Output — save optimized files to a chosen folder, or use Compresso's temporary app storage with configurable auto-expiration (1–90 days).
- Homebrew Bootstrap — detects missing optimizers on launch and offers one-click
brew installwhen Homebrew is available. - Onboarding — guided first-run setup for installing dependencies and optional permissions.
- Signed Updates — in-app update checks through Sparkle with EdDSA-signed release artifacts.
- System Settings-style UI — native settings shell with
NavigationSplitViewon modern macOS, a macOS 11-12 fallback sidebar, grouped controls, and a dedicated About page.
Requires macOS 11.0 or later.
A working Homebrew installation is recommended so Compresso can install missing optimizer tools automatically.
# Clone the repository
git clone https://github.com/duongductrong/Ghosted.git
cd Ghosted
# Build and run in Xcode, or use the helper script:
./scripts/build_and_run.shAfter first launch, complete the in-app onboarding to install the required optimizer tools.
For local setup, source builds, and project architecture, see docs/STRUCTURE.md.
# Quick start
./scripts/build_and_run.shRelease automation, signing requirements, and appcast maintenance are documented in docs/RELEASES.md.
- Project structure and runtime architecture
- Design tokens and visual states
- Release workflow and update signing
- Local Sparkle update testing
Compresso runs optimizer commands locally via CLI binaries you already own or install through Homebrew. No data is uploaded to any server, and no telemetry is collected. Optimized files are written either to a folder you choose or to a local temporary directory under ~/Library/Application Support/Compresso/Temporary Outputs/ with automatic cleanup. Update checks use Sparkle against Compresso's signed appcast.
BSD 3-Clause License. See LICENSE.