didriksg/Crisp
51.7
Adequate · 1 October 2026
21.3k
lines of production code
Swift
primary language
2
measurements over time
What this system is
Crisp is a macOS application that manages external display settings, including brightness, HDR, and HiDPI configurations. It provides a graphical interface for per-display controls and a command-line tool for scriptable automation. The system handles display hardware interactions via DDC and ensures consistent visual behavior across different monitor types.
Features
Added Simplified and Traditional Chinese localizations
The app now includes user interface translations for Simplified Chinese (zh-Hans) and Traditional Chinese (zh-Hant), covering key UI strings such as display states (collapsed, expanded, disconnected) and naming conventions.
Crisp/Resources · high confidence
Added social share card generation scripts
New HTML templates and a README guide have been added to the \scripts/og-card\ directory to generate 1200x630px social share images (og:image) for English and Chinese locales, along with a separate download badge asset. These files enable the documentation site to display updated, identity-first marketing visuals on social platforms.
scripts/og-card · high confidence
Crisp 1.6.0: macOS 14 support, Sparkle auto-updates, crispctl CLI, and MIT license
Crisp now runs on macOS 14 (Sonoma) and includes an in-app auto-updater via Sparkle, replacing the previous manual GitHub release flow. A new command-line tool, crispctl, is bundled with the app to manage displays, brightness, and HDR from the terminal. The project has also re-licensed from MIT with the Commons Clause to plain MIT, and the build system now uses a Makefile for local development and CI checks.
(repo-wide) · high confidence
Introduce crispctl CLI and local control server for external automation
Crisp now ships a command-line tool (crispctl) and a local Unix socket server that allow external scripts and Shortcuts actions to control displays, brightness, HDR, and presets. The server enforces same-user access, serializes display connect/disconnect requests to prevent race conditions, and exposes display metadata, brightness boost state, HDR state, and presets. A helper installs the crispctl binary into /usr/local/bin via a symlink, requiring admin privileges only when necessary.
Crisp/Services · high confidence
Introduce crispctl command-line tool for display control
A new \crispctl\ command-line utility is now available to control Crisp display settings from the terminal or scripts. It communicates with the Crisp app over a local Unix socket to manage brightness, Extra Brightness, HDR, image adjustments, and presets, and includes commands to install agent skills for AI assistants.
Sources · high confidence
New diagnostic and build scripts for display calibration, localization, and DDC probing
The scripts directory now includes a suite of new tools: App Intents metadata generation helpers (appintents.sh), a runnable Swift validator for the BrightnessBoostMath logic (check-boost-math.swift), and Python scripts to enforce localization key coverage and translation completeness (check-localization-keys.py, check-translations.py). Additionally, several Swift diagnostic probes have been added to investigate display hardware behavior, including DDC channel validation and stress testing (ddc-probe.swift, ddc-stress-probe.swift, ddc-write-probe.swift), EDR headroom and overlay calibration (edr-inspect.swift, edr-spike.swift, edr-spike2.swift, edr-spike3.swift), HDR capability detection (hdr-probe.swift), and virtual display HiDPI mirroring verification (mirror-hidpi-probe.swift). A shell script (fetch-sparkle.sh) also automates the fetching and patching of the Sparkle updater framework.
scripts · high confidence
New display controls and shortcut management in the menu panel
The Crisp menu panel now includes several new per-display controls and a dedicated keyboard shortcuts section. Users can enable Extra Brightness (EDR upscaling) and explicit HDR toggles for compatible external monitors, and manage physical display disconnect/reconnect actions on Apple Silicon. A new Shortcuts section allows recording global keyboard shortcuts for HiDPI toggling and brightness adjustments. Additionally, the display arrangement view now supports drag-to-reposition with live name callouts, and the system auto-brightness toggle is available for built-in displays.
Crisp/Views · high confidence
Shortcuts integration and split-canvas panel architecture
Users can now control Crisp via the Shortcuts app, with actions to apply presets, set or get display brightness, toggle HDR, and manage Extra Brightness. The menu panel has been rebuilt using a split-canvas architecture that drives resize animations via CADisplayLink for smoother, display-synced motion, while also improving click handling and scroll behavior.
Crisp/App · high confidence
Behavioural changes
Enforce local CI checks before push
A new pre-push git hook has been added to run 'make check' locally before every push, mirroring the checks enforced by CI. This ensures that mechanical warnings and other quality gates are caught early, with the ability to bypass for a single push using 'git push --no-verify'.
.githooks · high confidence
Unified brightness control, precise key steps, and VRR detection
The display models now support a combined brightness slider that maps internal and external displays to a single absolute luminance target, ensuring perceptual consistency across different panel types. Brightness adjustments via keyboard keys now snap to fixed stops (16 steps, or quarter-steps with Option+Shift) to match the macOS OSD, and gamma/image adjustments are persisted using stable display UUIDs instead of volatile IDs to prevent settings from drifting after reconnections. Additionally, the system detects variable refresh rate (VRR) modes on external displays and labels them appropriately, while also capping the active display count to the number of physical ports to prevent phantom displays from appearing after undocking.
Crisp/Models · high confidence
macOS 27 menu bar item styling and interaction support
Added support for macOS 27's changed menu bar behavior by introducing a clear overlay window to intercept clicks before the system highlights the item, and a custom highlight renderer that draws the lit pill behind the icon since the native highlight method no longer works on this version. These changes ensure the Crisp menu bar item visually matches the macOS 27 HUD and responds correctly to user interaction.
Crisp/Utilities · high confidence
Test coverage
Expanded test coverage for display control, brightness logic, and DDC services
Added comprehensive headless tests for the Crisp application's core display management features. This includes validation for the \crispctl\ CLI parser, covering brightness, HDR, display connection toggling, preset application, and image adjustment commands. New tests verify the brightness key-step logic, including quarter-step fine adjustments and extra-brightness grids, as well as combined brightness math for matching external displays to built-in panels via absolute luminance. The DDC service matcher is tested for identity resolution strategies (exact serial, vendor/product fallback, and traversal order), while DDC operation queues are verified for serial execution per display and non-blocking behavior across different displays. Additional tests cover display mode geometry edge cases (720p floor, square modes, HiDPI fallbacks), notch detection, and pointer edge-crossing behavior for unaligned display arrangements.
CrispTests · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 54 → 52 (-2.3)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 88 → 87 (-1.0)
- Architecture 99 → 100 (+0.6)
- Maturity 65 → 65 (-0.1)
- Readiness 50 → 49 (-1.1)
- Security 75 → 75 (+0.0)
- Accessibility 43 → 43 (+0.0)
- Performance 62 (new)
Resolved (6)
- CrispControlModel.handle (cognitive 16) (Crisp/Models/CrispControlModel.swift)
- CrispControlModel.handle (cyclomatic 17) (Crisp/Models/CrispControlModel.swift)
- Documentation: no installation or build instructions (README.md)
- Hotspot: Crisp/Services/MirroredModeService.swift (Crisp/Services/MirroredModeService.swift)
- Low cohesion: GammaService (LCOM4 4) (Crisp/Services/GammaService.swift)
- Repeated repair: Crisp/Views/ShortcutRecorderRow.swift (Crisp/Views/ShortcutRecorderRow.swift)
New (35)
- ArrangementView.swift.snappedRect (cognitive 17) (Crisp/Views/ArrangementView.swift)
- BrightnessSliderView.body (cognitive 35) (Crisp/Views/BrightnessSliderView.swift)
- BrightnessSliderView.body (cyclomatic 22) (Crisp/Views/BrightnessSliderView.swift)
- CombinedBrightnessView.body (cognitive 23) (Crisp/Views/BrightnessSliderView.swift)
- CrispControlModel.handleImage (cognitive 17) (Crisp/Models/CrispControlModel.swift)
- CrispControlServer.reply (cyclomatic 18) (Crisp/Services/CrispControlServer.swift)
- Documentation: no installation or build instructions (docs/index.html)
- Duplicated block (13 lines × 2) (Crisp/Views/SavePresetView.swift)
- Duplicated block (19 lines × 2) (Crisp/Views/PresetListView.swift)
- Duplicated block (5 lines × 2) (scripts/edr-spike.swift)
- Duplicated block (5 lines × 4) (Crisp/Services/DDCService.swift)
- Duplicated block (6 lines × 3) (scripts/ddc-probe.swift)
- Duplicated block (6–8 lines × 2) (Crisp/Services/CrispControlServer.swift)
- Duplicated block (7 lines × 3) (scripts/edr-inspect.swift)
- Duplicated block (8 lines × 2) (Crisp/Views/ExtraBrightnessView.swift)
- Duplicated block (8 lines × 2) (Crisp/Views/MenuBarView.swift)
- Duplicated block (8–9 lines × 2) (Crisp/Services/CrispControlServer.swift)
- Duplicated block (9 lines × 2) (Crisp/Views/SavePresetView.swift)
- EdgeCrossing.target (cognitive 22) (Crisp/Models/EdgeCrossing.swift)
- EdgeCrossing.target (cyclomatic 19) (Crisp/Models/EdgeCrossing.swift)
- …and 15 more
Changes since last survey
- 45 commits — 38 feature/other, 7 fixes
By area
- (repo) — 12 commits
- Crisp/Services — 12 commits
- (root) — 7 commits
- Crisp/App — 4 commits
- Crisp/Models — 4 commits
- Sources/crispctl — 2 commits
- Crisp/Resources — 1 commit
- Crisp/Utilities — 1 commit
- docs/BUILDING.md — 1 commit
- docs/superpowers — 1 commit
Notable commits
- fix: Fix the Xcode 27 build: capture self weakly in the screen-parameters observer
- fix: Merge pull request #177 from Dr8pus/fix-panel-toggle
- fix: Merge pull request #178 from didriksg/fix-osd-macos27
- fix: Merge pull request #179 from didriksg/fix-smooth-scaling-neo
- fix: Merge pull request #187 from didriksg/fix-menu-bar-show-desktop
- fix: Merge pull request #191 from didriksg/fix-gamma-reset
- fix: Merge pull request #194 from didriksg/fix-xcode27-capture
- change: Add Shortcuts actions for presets, brightness, HDR, disconnect and Image Adjustment
- change: Add Traditional Chinese (#173)
- change: Add crispctl image get, set and reset
- change: Add crispctl preset apply
- change: Add crispctl preset list
- change: Add crispctl skill commands and shorten the README
- change: Check localization keys against the committed catalog
- change: Credit @Dr8pus for #177
- change: Credit @Yangmoooo for #175
- change: Explain why smooth scaling is off on A-series Macs
- change: Fade Image Adjustment when a preset applies it
- change: Hide the panel on the second status item click
- change: Keep developer notes off the website
- …and 25 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
didriksg/Crisp was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit cf34c88404d19489e2ee3df8ad867d865be06120 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.