Phim is a superfast, ephemeral webpage viewer.
It has no history, cookies, navigation, or distractions.
It's the perfect companion for Velja and Hyperduck.
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
- 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
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 phimDownload the latest release from the Releases page and drag Phim.app to your Applications folder.
git clone https://github.com/roelvangils/phim.git
cd phim
./build_with_spm.sh- Open Phim.app from Applications folder
- The app will automatically load URLs from your clipboard when it becomes active
# Open a URL
phim https://example.com
# Open a local file
phim /path/to/file.html
# Pipe a URL
echo "https://example.com" | phimRight-click any HTML file → Open With → Phim
- macOS 15.0 (Sequoia) or later
- Apple Silicon or Intel Mac
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
The project uses a custom build script that expects an Xcode project in the Phim/ subdirectory:
./build.sh-
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
Phim respects your privacy:
- No persistent cookies or cache
- No tracking or analytics
- No data collection
- Each session starts fresh
MIT License - See LICENSE file for details
Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.
Created by Roel Van Gils
- Built with Swift and SwiftUI
- Uses Sparkle for automatic updates
- Inspired by the need for a focused, distraction-free reading experience on macOS
