Every display control macOS hides, in one menu bar panel.
Free, open-source external monitor control for macOS.
Sharp HiDPI scaling, DDC brightness, presets and virtual displays.
Website · Crisp vs BetterDisplay & Lunar · Fix a blurry external monitor · 中文
Crisp is a lightweight, native menu bar app for controlling external monitors on macOS, and a free, open-source alternative to BetterDisplay and Lunar. It adds what macOS leaves out: sharp HiDPI scaling on any monitor (no more blurry or tiny text), real brightness and volume control over DDC, presets, display arrangement, and virtual displays. Every feature is free, with no Pro tier and no license key.
Available in English, 简体中文 and 繁體中文.
crisp-demo.mp4
brew install --cask crispOr download Crisp.dmg and drag Crisp to Applications. Every release is signed and notarized by Apple, so it opens with a normal double-click.
Installed from didriksg/tap earlier? brew upgrade moves you to the main cask by itself; brew untap didriksg/tap afterwards is optional cleanup.
- Sharp, Retina-quality scaling on any display: HiDPI resolutions that make external monitors crisp instead of blurry or tiny, set up automatically for 1440p and larger, always at the panel's full refresh rate (no more 1080p stuck at 50Hz on a 144Hz monitor)
- Smooth scaling: set how large everything looks in small steps, far beyond the few sizes macOS offers
- Brightness everywhere: the real backlight of external monitors over DDC, software dimming where that isn't supported and below the hardware minimum, and brightness keys that follow the pointer, all displays, or a chosen few
- Extra Brightness: push XDR MacBook panels and HDR monitors past 100% into their HDR headroom; one toggle per display, then the slider and keys reach further. It draws more power, and HDR video can look overblown while it's on
- Volume: monitor speaker volume over DDC, with a slider per display and the volume keys mapped to the monitor when it's your audio output
- Presets: save resolution, brightness and arrangement under a name and icon, and apply them with one click
- Display arrangement: drag-to-arrange canvas, main display switching
- Disconnect displays: turn physical displays off and back on from the menu, remembered across sleep/wake (Apple Silicon)
- System toggles: Dark Mode, Night Shift, and True Tone, one click from the menu bar
- Color: ICC profile switching, XDR reference presets, HDR on/off per display, and image adjustment (gamma, contrast, gain, invert colors)
- Virtual displays: create HiDPI virtual screens
- Extras: combined brightness slider, auto brightness following the built-in display, a toggle for macOS's own ambient auto-brightness, keep awake, notch hiding, launch at login
BetterDisplay and Lunar are excellent, deeper tools. Crisp keeps the everyday essentials free: flexible HiDPI scaling, hardware brightness, presets, disconnecting displays, color adjustments, and auto-brightness sync. See the full side-by-side: Crisp vs BetterDisplay, Lunar & MonitorControl.
Crisp is and will stay completely free. Its main running cost is the $99/year Apple Developer Program, Apple's fee for signing and notarizing the app so it installs cleanly. If you've found Crisp useful, or it saved you a BetterDisplay or Lunar license, and you'd like to chip in toward keeping Crisp signed and notarized, there's:
Completely optional, but you'll have my heartfelt thanks.
Thank you to the people chipping in toward keeping Crisp signed and notarized:
- Arnor Ingthorsson (@arnor-ingthorsson)
- Barry (@BarryBarrywu)
- @kuldipmaharjan
- Volodymyr Dombrovskyi (@rebelvg)
- macOS 14 (Sonoma) or later; on macOS 26 the panel uses the native Liquid Glass backdrop
- Administrator password (one time, per monitor): needed only when you turn on smooth scaling, which installs a display override file into
/Library/Displays/Contents/Resources/Overridesthat macOS protects. Regular HiDPI scaling and everything else are password-free. - Accessibility (System Settings > Privacy & Security > Accessibility): needed only if you turn on Brightness Keys, which routes the keyboard brightness keys to other displays (follow the pointer, all connected, or a chosen subset). Without it, everything else still works; the keys just control the built-in display as usual.
Crisp picks the first language in your Mac's preferred languages that it supports. To run Crisp in a different supported language than the rest of your Mac, choose it under System Settings > General > Language & Region > Applications.
To keep Keep Awake off on company Macs, push a configuration profile for the com.crisp.app domain with crisp.disableKeepAwake set to true. Crisp reads it at launch and leaves the row out of Tools. A managed value outranks the user's own preferences, so it cannot be switched back on with defaults write.
Crisp ships with crispctl, a command line tool for the same controls: list displays, read and set brightness, switch Extra Brightness and HDR, and disconnect or reconnect a display. The Command Line Tool switch in Settings links it into /usr/local/bin (the Homebrew cask does this on install); it also lives inside the app at Crisp.app/Contents/MacOS/crispctl. Crisp must be running.
crispctl display list # JSON, with each display's id and uuid
crispctl brightness set <display> 40
crispctl display toggle <display> # for a KVM desk or a buttoncrispctl help lists every command, and --help on any command gives its details. To let an AI agent drive it, crispctl skill install claude or crispctl skill install codex adds a skill for Claude Code or Codex; for another agent, crispctl skill show prints it. Run the install again after updating Crisp.
brew install xcodegen
xcodegen generate # generates Crisp.xcodeproj from project.yml
open Crisp.xcodeprojFor a distributable DMG (Command Line Tools only, no full Xcode) and the fast edit-compile-run dev loop, see docs/BUILDING.md.
Issues and pull requests are welcome. Found a bug, want a feature, or have a display Crisp doesn't handle well? Open an issue or start a discussion. PRs are just as welcome, whether it's a fix, a feature, or a new translation.
Crisp began as a fork of FreeDisplay and has since been substantially rewritten: a custom panel architecture, native controls throughout, a reworked brightness pipeline, and a full redesign. Thanks to FreeDisplay for the foundation and the spirit: free display management for everyone.
MIT. Portions derived from FreeDisplay remain available under its MIT terms, reproduced in ACKNOWLEDGMENTS.md.
