Phim
Phim is a superfast, ephemeral webpage viewer.
It has no history, cookies, navigation, or distractions.
It's the perfect companion for Velja and Hyperduck.
Why Phim?
Phim is designed for ephemeral reading. Every session starts completely fresh - no cookies, no cache, no history. When you close Phim, it's like it was never there. This makes it perfect for:
- Reading documentation without cluttering your browser
- Checking competitor websites privately
- Viewing sensitive documents
- Quick link previews via Velja or Hyperduck
- Testing websites in a clean environment
Features
- Truly Ephemeral: Every session starts fresh, nothing is saved
- Minimalist Design: Borderless window with floating toolbar that appears on hover
- Intelligent Vibrancy: Automatically makes light backgrounds transparent for a native macOS look
- Zen Mode: Distraction-free reader view that extracts and beautifully formats article content
- Browser Integration: Automatically detects and offers to open tabs from your active browser
- Multiple Input Methods:
- Command-line arguments
- Piped input
- Drag and drop
- Open With context menu
- Clipboard monitoring
- Keyboard Shortcuts:
O: Open current URL in default browserR: Reload pageC: Copy current URLZ: Zen Mode (distraction-free reader view)X: Close Phim⌘⇧V: Toggle vibrancy⌘⇧L: Toggle fancy loading animation
- Auto-Updates: Built-in Sparkle framework for automatic updates
Installation
Install with Homebrew
The easiest way to install and keep Phim updated:
# Add the tap and install
brew tap roelvangils/phim
brew install --cask phim
# Update to the latest version
brew upgrade --cask phimDirect Download
Download the latest release from the Releases page and drag Phim.app to your Applications folder.
Build from Source
git clone https://github.com/roelvangils/phim.git
cd phim
./build_with_spm.shUsage
From Finder
- Open Phim.app from Applications folder
- The app will automatically load URLs from your clipboard when it becomes active
From Terminal
# Open a URL
phim https://example.com
# Open a local file
phim /path/to/file.html
# Pipe a URL
echo "https://example.com" | phimAs Default Handler
Right-click any HTML file → Open With → Phim
Requirements
- macOS 15.0 (Sequoia) or later
- Apple Silicon or Intel Mac
Development
Project Structure
phim/
├── PhimSource/ # Swift source files
│ ├── PhimApp.swift # Main application
│ ├── ContentView.swift # UI container
│ ├── WebView.swift # WebKit wrapper
│ └── welcome.html # Welcome page
├── build.sh # Build script
├── generate_sparkle_keys.sh # Sparkle key generation
└── sign_update.sh # Update signing script
Building
The project uses a custom build script that expects an Xcode project in the Phim/ subdirectory:
./build.shCreating Updates
-
Generate EdDSA keys (one time only):
./generate_sparkle_keys.sh
-
Build and sign your update:
./build.sh ditto -c -k --sequesterRsrc --keepParent Phim.app Phim-1.0.1.zip ./sign_update.sh 1.0.1 Phim-1.0.1.zip
-
Update
appcast.xmlwith the generated entry -
Upload both files to GitHub releases
Privacy
Phim respects your privacy:
- No persistent cookies or cache
- No tracking or analytics
- No data collection
- Each session starts fresh
License
MIT License - See LICENSE file for details
Contributing
Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.
Author
Created by Roel Van Gils
Acknowledgments
- Built with Swift and SwiftUI
- Uses Sparkle for automatic updates
- Inspired by the need for a focused, distraction-free reading experience on macOS
