CLI tool
didriksg/Crisp avatar
didriksg/Crisp

Crisp for macOS: free HiDPI scaling and DDC brightness for external monitors

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.

1,752 stars72 forksSwiftMIT

At a glance

What is it?
Crisp is an MIT-licensed Swift menu bar app that adds HiDPI scaling, DDC brightness and volume, presets and virtual displays to macOS 14 and later. It covers the everyday controls BetterDisplay and Lunar charge for, and leaves the deeper colour and calibration work to them.
Who is it for?
Adopt Crisp if you run one or two external monitors on macOS 14 or later and want HiDPI scaling, DDC brightness, presets and disconnect-display control without buying a BetterDisplay or Lunar licence. Skip it if you need per-preset gamma and colour-temperature recall, or if you manage fleets where you cannot test DDC behaviour per monitor model.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Crisp adds to macOS display handling

macOS exposes a fixed set of scaled resolutions per display, and on many external panels those options are either too few or not HiDPI at all. The result is text that is blurry, or text that is sharp but too small. Crisp targets that gap. The README describes it as a native menu bar app that adds "sharp HiDPI scaling on any monitor", real brightness and volume control over DDC, presets, display arrangement and virtual displays.

The intended audience is narrow and specific: Mac users with one or more external monitors who want Retina-quality text and hardware brightness control without paying for a commercial display utility. Crisp is MIT-licensed, has no Pro tier and no licence key, and ships in English, Simplified Chinese and Traditional Chinese. It requires macOS 14 (Sonoma) or later. If you only use the built-in display and never change resolution, the app has little to offer you.

HiDPI scaling, DDC and the display override mechanism

The scaling path is the part with real system-level consequences. Regular HiDPI scaling needs no special permission. Smooth scaling, which the README describes as fine-tuning display size "in small steps, well beyond the handful of scaled sizes macOS offers", does. It installs a display override file into `/Library/Displays/Contents/Resources/Overrides`, a directory macOS protects, so Crisp asks for an administrator password once per monitor when you enable it.

Brightness follows a two-tier model. Where the monitor supports DDC, Crisp controls the real backlight over that channel. Where it does not, Crisp falls back to software dimming, and the README states it can keep dimming below the hardware minimum. Extra Brightness is a separate toggle per display: it unlocks the HDR brightness reserve on XDR MacBook panels and HDR monitors so the slider and brightness keys reach past 100%. The README is explicit about the cost: sustained maximum brightness increases power draw, and real HDR video can look overblown while boosted.

Volume works over DDC as well, and only appears for monitors that report support. The keyboard volume and mute keys can be mapped to the monitor when it is the current audio output. That mapping is one of two features that require Accessibility permission; the other is Brightness Keys, which routes the brightness keys to the pointer's display, all displays, or a chosen subset. Everything else works without Accessibility access.

Two constraints are worth stating plainly. Image adjustment (gamma, colour temperature, contrast) is per-display and is not stored in presets, so a preset restores resolution, brightness and arrangement but not colour state. And disconnect-display control is documented for Apple Silicon only.

Installing Crisp and setting up a first external monitor

The README gives a Homebrew cask as the primary install path. The cask lives in the main Homebrew tap, so no extra tap step is needed.

bash
brew install --cask crisp

After the install completes, Crisp appears in the menu bar. If you previously installed from `didriksg/tap`, the README states that `brew upgrade` moves you to the main cask on its own, and that `brew untap didriksg/tap` afterwards is optional cleanup.

The alternative is the release DMG, which the README says is signed and notarized by Apple so it opens with a normal double-click.

bash
curl -L -o Crisp.dmg https://github.com/didriksg/Crisp/releases/latest/download/Crisp.dmg
open Crisp.dmg

The README instructs you to drag Crisp to Applications from the mounted volume. Once it is running, open the menu bar panel and pick your external display. HiDPI scaled resolutions appear in the resolution list, and the README says they are set up automatically for 1440p and larger displays at the panel's full refresh rate. If you want the finer steps, turn on smooth scaling for that monitor; expect the administrator password prompt described above. Then move the brightness slider and confirm the monitor's backlight responds. If it does not, the monitor is falling back to software dimming.

Where Crisp stops: colour state, DDC variance and managed Macs

The clearest limitation is preset scope. Crisp stores resolution, brightness and arrangement in a preset, along with a custom icon and colour. It does not store gamma, colour temperature or contrast. If your workflow depends on switching between a calibrated colour profile and a warmer reading mode as one action, a preset will not do it, and you will be applying image adjustments by hand each time.

DDC is the second soft spot, and it is not Crisp's fault. DDC support varies by monitor and by connection. The README hedges its own volume feature accordingly: the slider shows "only for monitors that support it". The same hedge implicitly applies to brightness. Nothing in the documentation promises a specific monitor will answer DDC commands, so a monitor that ignores them leaves you with software dimming, which is a different thing from changing a backlight.

Smooth scaling carries an administrative cost that regular HiDPI scaling does not: a password prompt per monitor and a file written into a system-protected directory. On a machine you do not administer, that is a blocker rather than an inconvenience.

Managed Macs get partial control. The README documents a configuration profile for the `com.crisp.app` domain with `crisp.disableKeepAwake` set to `true`, which Crisp reads at launch and which removes the Keep Awake row from Tools. A managed value outranks the user's own preferences, so it cannot be switched back on from the app. That is the only policy key the README describes; there is no documented way to lock down scaling or brightness centrally.

Crisp against BetterDisplay and Lunar

BetterDisplay and Lunar are the two tools Crisp positions itself against, and the README calls them "excellent, deeper tools". The difference is commercial and functional at the same time.

Lunar is built around brightness: it synchronises brightness across displays, supports DDC and software dimming, and has a paid tier. Crisp covers the same DDC brightness ground and adds scaling, presets, virtual displays and disconnect-display control in the same panel. If brightness sync is the only thing you need, Lunar is a focused tool and Crisp is a broader one.

BetterDisplay goes further into display configuration than Crisp claims to. Crisp's own comparison page is linked from the README as the place to check the full side-by-side, which is a fair signal that the feature sets are not identical. The README's summary of what Crisp keeps free is specific: flexible HiDPI scaling, hardware brightness, presets, disconnecting displays, colour adjustments and auto-brightness sync. That is the boundary. Anything past it, including the deeper colour and calibration work, is where the paid tools still earn their licence.

MonitorControl is the third name in that comparison page. It is the closest free alternative for DDC brightness and volume alone, without the scaling layer.

Maintenance, licence and what upgrading costs you

The repository is not archived, and the last push was on 2026-09-16. Releases are frequent: v1.6.0 on 2026-09-08, v1.5.0 on 2026-08-19, and v1.4.1 on 2026-08-14. That cadence is visible in the release list, and the Makefile shows the release machinery behind it, including `make release ARGS="vX.Y.Z notes.md --publish"` and a dry-run DMG target.

The upgrade path is the ordinary Homebrew cask flow. `brew upgrade` moves you forward, and the README notes that it also migrates users off the older `didriksg/tap` tap. There is no separate update mechanism described, and no migration notes for settings between versions in the README or the Makefile.

Licensing is MIT, which permits commercial use, modification and redistribution, with the usual requirement to keep the copyright notice and licence text. The README states the project is and will stay completely free, with no Pro tier. Its stated running cost is the $99/year Apple Developer Program fee for signing and notarizing the app, and it accepts sponsorship through GitHub Sponsors, Ko-fi and Afdian. That is a sustainability model, not a licence term, so a fork or a self-built copy is permitted under MIT regardless of whether sponsorship continues. This is a description of the licence text, not legal advice.

Editorial conclusion

Adopt Crisp if you run one or two external monitors on macOS 14 or later and want HiDPI scaling, DDC brightness, presets and disconnect-display control without buying a BetterDisplay or Lunar licence. Skip it if you need per-preset gamma and colour-temperature recall, or if you manage fleets where you cannot test DDC behaviour per monitor model. Before rolling it out, install the cask, enable smooth scaling on one display to confirm the administrator password prompt and the display override file behave as documented, and check that your monitor's DDC implementation answers the brightness slider.

Frequently asked questions

What is Crisp for macOS?

Crisp is a native menu bar app that controls external monitors on macOS 14 and later. The README describes it as a free, open-source alternative to BetterDisplay and Lunar that adds HiDPI scaling, DDC brightness and volume, presets, display arrangement and virtual displays.

How do I install Crisp on a Mac?

The README gives the Homebrew cask as the main path, with the command brew install --cask crisp. Alternatively you can download Crisp.dmg from the latest release and drag Crisp to Applications; the README states every release is signed and notarized by Apple.

Does Crisp need administrator or Accessibility permissions?

Only for two features. The administrator password is needed once per monitor when you turn on smooth scaling, which writes a display override file. Accessibility is needed only for Brightness Keys. The README states that everything else still works without either.

Are gamma and colour temperature saved in Crisp presets?

No. The README states that image adjustment (gamma, colour temperature, contrast) is per-display and is not stored in presets. Presets cover resolution, brightness and arrangement.

Official sources

  1. didriksg/Crisp on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Community notes

Community notes