What It Does

ASCII Saver captures your live camera feed and renders it in real time as ASCII characters on your screen. Leave the Mac idle past your chosen timeout and it takes over every display; move the mouse or press a key and it goes.

The camera is opened when the saver appears and released the moment it dismisses — sitting in the menu bar, the app holds no camera session at all. Nothing is recorded, written to disk, or sent anywhere. See Privacy for the detail.

Colour Filters

FilterDescription
ClassicWarm parchment-style ASCII — the default look
MatrixBright green on black with glow effect
AmberWarm amber terminal aesthetic with glow
Raw FeedTinted grayscale camera image (not ASCII)
SilhouetteiPod-style person outline with cycling colours, using ML person segmentation

Effects

EffectDescription
ScanlinesSemi-transparent horizontal lines for a CRT look
Phosphor PersistencePrevious frame lingers as a fading afterimage
GlitchRandom pixel offsets for a corruption effect
InterferenceRandom static bands and tear lines

Configuration

Click the menu bar icon and choose Settings…. Changes apply immediately to a running saver — there is no Save button and nothing to restart.

Auto-Update

ASCII Saver 2.0 uses Sparkle 2.x for auto-update, checked daily. Updates are EdDSA-signed, so your copy will only ever install genuine Jorvik Software releases.

Version 1.x had no update mechanism at all — a .saver has no process of its own in which to run one. This is new.

Privacy

This app looks at your camera, so it is worth being precise about what it does with it.

Installation

Two formats on every release — both signed and notarised, pick whichever suits:

Or install it with Homebrew: brew install --cask perpetualbeta/jorvik/asciisaver

Then launch it once, grant camera access when macOS asks, and a small camera-viewfinder icon appears in the menu bar. That’s your only touchpoint — choose Activate Now to see it immediately, or leave the Mac idle. It won’t add itself to your login items; turn on Launch at Login in Settings if you want that.

Upgrading from 1.x

Version 2.0 is the same screensaver, delivered differently. It used to be a .saver bundle with a separate camera agent beside it; it is now a single ordinary app. Three things change for existing users:

The old install isn’t removed for you. Delete ASCIISaver.saver from your Screen Savers folder and ASCIISaverCameraAgent.app from Applications when you’re ready.

How It Works

A background app with no Dock icon polls system idle time and, past your threshold, opens a fullscreen window at screensaver level on every display. One shared camera session feeds them all.

Until version 2.0 this took two processes. A .saver runs inside macOS’s screensaver host, which owns the privacy permissions, so the saver could never hold camera access of its own — a separate agent had to own the camera and pass frames across through shared memory. Becoming an ordinary app removed the restriction and the entire apparatus with it.

Uninstalling

Quit ASCII Saver from its menu bar icon and drag ASCII Saver.app to the Trash. If you installed it with Homebrew, brew uninstall --cask perpetualbeta/jorvik/asciisaver instead.

Building from Source

ASCII Saver is free and open source, and builds via the shared Jorvik release.mk. With the jorvik-release sibling repo cloned alongside it and GNU Make 4 installed:

  1. Clone the repo: git clone https://github.com/PerpetualBeta/ASCIISaver.git
  2. Local install, signed with the Jorvik Developer ID: gmake dev-build
  3. Run the freshly-built copy: gmake run
  4. Signed, notarised, stapled .zip + .pkg ready to ship: gmake release

There is no Xcode project — the two-target one went with the camera agent.

Requirements

macOS 14 (Sonoma) or later. A built-in or external camera.