displayswitcher
A native macOS command-line tool for controlling external monitors over DDC/CI — set brightness and contrast, switch input source and read current values, all from the terminal with no on-screen buttons.
# me @ lintuxt.ai in ~ $ displayswitcher displayswitcher v0.1.4 · external monitor control 3 displays — pass # to --on-display ┌───┬─────────────┬─────────────┬────────────┬──────────┬───────┐ │ # │ Monitor │ Resolution │ Brightness │ Contrast │ Input │ ├───┼─────────────┼─────────────┼────────────┼──────────┼───────┤ │ 1 │ DELL U2715H │ 2560 × 1440 │ 25% │ 50% │ hdmi1 │ │ 2 │ DELL U2715H │ 2560 × 1440 │ 25% │ 50% │ hdmi1 │ │ 3 │ DELL U2715H │ 2560 × 1440 │ 25% │ 50% │ hdmi1 │ └───┴─────────────┴─────────────┴────────────┴──────────┴───────┘ Physical layout ┌───┬───┬───┐ │ · │ · │ · │ ├───┼───┼───┤ │ 2 │ 1 │ 3 │ ├───┼───┼───┤ │ · │ · │ · │ └───┴───┴───┘ # me @ lintuxt.ai in ~ $
Three things, from one binary
Every display at a glance
See every connected monitor with its current brightness, contrast, and input source — no on-screen menus, no guesswork.
Brightness & contrast
Set a value on a specific display or all of them at once. Every action names the screen it targets.
Inputs without the menu
Flip a monitor to HDMI, DisplayPort or USB-C from the terminal — no reaching for the physical buttons.
Install in one line
curl -fsSL https://raw.githubusercontent.com/lintuxt/displayswitcher/trunk/install.sh | sh
Downloads the latest release for Apple Silicon, verifies its SHA-256 checksum, and installs to ~/.local/bin (or /usr/local/bin).
Quickstart
displayswitcher --list # show every display
displayswitcher --set-brightness 60 --on-display 2 # set a value
displayswitcher --set-input hdmi1 --on-display 3 # switch input
displayswitcher --help # full help
Why it exists
DDC/CI is one of those protocols every modern external monitor ships with and almost no software actually exposes. Your monitor will happily accept brightness, contrast, and input-source commands over its data channel — the same channel that already carries EDID at boot. The catch is that every OS either hides this behind a vendor utility, a third-party app, or nothing at all.
This CLI is the foundation. A GUI Pro version is in development at displayswitcher.com (coming soon) — same DDC/CI engine underneath, with a wider feature set focused on a polished day-to-day experience. The CLI stays open source and self-contained; Pro builds on top of it.
Sponsor
If displayswitcher saves you a trip to the on-screen menu, consider supporting future work.
Build from source · Requirements · License
Requirements
macOS 13 or later on Apple Silicon. No other dependencies.
Build from source
Requires Xcode 16+ (Swift 6).
git clone https://github.com/lintuxt/displayswitcher.git
cd displayswitcher
swift build -c release
./.build/release/displayswitcher --help
License
MIT — see LICENSE.