What It Does
ASCII Saver captures your live camera feed and renders it in real time as ASCII characters on your screen. It uses a two-process architecture: a background camera agent captures frames and writes them to shared memory, and the screensaver reads and renders them using a CVDisplayLink-driven view.
When the screensaver activates, it signals the camera agent to start. When it deactivates, the agent stops and releases the camera. The agent only runs when needed.
Colour Filters
| Filter | Description |
|---|---|
| Classic | Warm parchment-style ASCII — the default look |
| Matrix | Bright green on black with glow effect |
| Amber | Warm amber terminal aesthetic with glow |
| Raw Feed | Tinted grayscale camera image (not ASCII) |
| Silhouette | iPod-style person outline with cycling colours, using ML person segmentation |
Effects
| Effect | Description |
|---|---|
| Scanlines | Semi-transparent horizontal lines for a CRT look |
| Phosphor Persistence | Previous frame lingers as a fading afterimage |
| Glitch | Random pixel offsets for a corruption effect |
| Interference | Random static bands and tear lines |
Configuration
Right-click the screensaver preview in System Settings to open the configuration panel. All settings are saved and persist across restarts.
- Colour filter selection
- Font size (8–14pt)
- Target FPS (15–60)
- Rotation (none, 90° CW, 90° CCW, 180°)
- Mirror (horizontal, vertical)
- Colour inversion
- All effects toggles
Installation
- Download ASCIISaver-Installer.pkg from the link above
- Double-click to run the installer — it installs the screensaver and the camera agent
- Open System Settings → Wallpaper → Screen Saver and select ASCII Saver
- If ASCII Saver doesn’t appear in the list, close System Settings and reopen it — macOS sometimes needs a restart to detect newly installed screensavers
- Launch ASCII Saver Camera Agent from Applications — grant camera permission when prompted
- Return to the Screen Saver settings and configure your preferences (right-click the preview to access the options panel)
- You may need to close and reopen System Settings once more for the preview to display correctly — this is a macOS quirk
The camera agent appears in the menu bar. Add it to System Settings → General → Login Items so it starts automatically.
How It Works
- Screensaver (
.saverbundle) — renders frames as ASCII art using a CVDisplayLink-driven NSView - Camera Agent (
.app) — background process that captures camera frames, converts to grayscale, and writes to shared memory - Communication — Darwin notifications for start/stop/heartbeat; memory-mapped file with seqlock for lock-free frame sharing
- Silhouette mode — Vision framework's ML person segmentation model with temporal smoothing and aggressive confidence curve
Uninstalling
Run the included uninstall script, or manually remove /Library/Screen Savers/ASCIISaver.saver and /Applications/ASCIISaverCameraAgent.app.
Building from Source
Requires Xcode 16+ and an Apple Developer certificate.
- Clone the repo:
git clone https://github.com/PerpetualBeta/ASCIISaver.git - Run
gmake build(produces.build/ASCIISaver.saverand the helper agent) - For the signed, notarised installer
.pkg:gmake release
Requirements
macOS 14 (Sonoma) or later. A built-in or external camera.