Every display control macOS hides, in one menu bar app: sharp HiDPI/Retina scaling (no more blurry or tiny text), DDC brightness and volume, Extra Brightness past 100%, presets, virtual displays. Free and open source, a no-cost alternative to BetterDisplay and Lunar.
See the codeEvery 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 繁體中文.
https://github.com/user-attachments/assets/90a62808-84d2-40d6-8563-0b282b9b4b6d
brew install --cask crisp
Or 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.
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:
/Library/Displays/Contents/Resources/Overrides that macOS protects. Regular HiDPI scaling and everything else are password-free.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, change image adjustment, apply a preset, switch a monitor's input, 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 button
crispctl preset apply Night
The same controls are actions in the Shortcuts app: Apply Crisp Preset, Set and Get Display Brightness, Set Extra Brightness, Set Display HDR, Set Display Input, Disconnect and Reconnect Display, and Set and Reset Image Adjustment. A Time of Day automation that runs Apply Crisp Preset switches your displays between a day and a night setup.
crispctl 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.xcodeproj
For a distributable DMG (plain swiftc, plus Xcode for the Shortcuts actions) and the fast edit-compile-run dev loop (Command Line Tools only), 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.
795 followers · starred Aug 2026
134 followers · starred Sep 2026
168 followers · starred Aug 2026
112 followers · starred Aug 2026
Every display control macOS hides, in one menu bar app: sharp HiDPI/Retina scaling (no more blurry or tiny text), DDC brightness and volume, Extra Brightness past 100%, presets, virtual displays. Free and open source, a no-cost alternative to BetterDisplay and Lunar.
See the codeEvery 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 繁體中文.
https://github.com/user-attachments/assets/90a62808-84d2-40d6-8563-0b282b9b4b6d
brew install --cask crisp
Or 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.
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:
/Library/Displays/Contents/Resources/Overrides that macOS protects. Regular HiDPI scaling and everything else are password-free.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, change image adjustment, apply a preset, switch a monitor's input, 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 button
crispctl preset apply Night
The same controls are actions in the Shortcuts app: Apply Crisp Preset, Set and Get Display Brightness, Set Extra Brightness, Set Display HDR, Set Display Input, Disconnect and Reconnect Display, and Set and Reset Image Adjustment. A Time of Day automation that runs Apply Crisp Preset switches your displays between a day and a night setup.
crispctl 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.xcodeproj
For a distributable DMG (plain swiftc, plus Xcode for the Shortcuts actions) and the fast edit-compile-run dev loop (Command Line Tools only), 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.
795 followers · starred Aug 2026
134 followers · starred Sep 2026
168 followers · starred Aug 2026
112 followers · starred Aug 2026