Monitor Switch
github.com
What it is
Monitor Switch is an MIT-licensed service for switching a monitor’s input and controlling its DDC/CI features through a browser interface, HTTP API, scripts, or Home Assistant. It is designed for people who use one monitor with multiple computers, including when the computer currently displayed is asleep or off. Where a monitor exposes the controls, the service can adjust brightness, contrast, volume, mute, picture mode, colour temperature, RGB gain, and black level. It can also read usage hours, firmware level, refresh rates, and power state. Editable profiles set monitor values and can replace incorrect capability detection. For Home Assistant, MQTT discovery presents profile features as entities such as selectors, sliders, and sensors. The service runs on a Raspberry Pi connected to the monitor by HDMI; setup requires Raspberry Pi OS and SSH, and installation uses an Ansible playbook. The project is described as usable but not yet released. Hardware verification is reported only for a Samsung Odyssey G9 with a Raspberry Pi Zero 2 W; other monitors have not been verified.
Spec sheet
- Purpose
- Monitor Switch changes a monitor’s input source using DDC/CI, controlled through HTTP, a web UI, or Home Assistant.Read 8 Oct 2026 · github.com
- Deployment
- It runs on a Raspberry Pi connected to the monitor’s HDMI input and is installed with an Ansible playbook.Read 8 Oct 2026 · github.com
- Security
- The service has no authentication, is intended for a trusted LAN, and binds to a configurable address rather than 0.0.0.0 by default.Read 8 Oct 2026 · github.com
- License
- The repository identifies the project as MIT licensed.Read 8 Oct 2026 · github.com
- Access
- Controls are available through a browser interface, HTTP API, scripts and Home Assistant.Read 8 Oct 2026 · github.com
- Compatibility evidence
- The project says its real-hardware checks were performed on a Samsung Odyssey G9 with a Raspberry Pi Zero 2 W; other monitors have not been verified.Read 8 Oct 2026 · github.com
- Controls
- It can control input source, brightness, contrast, volume, mute, picture mode, colour temperature, RGB gain and black level when the monitor exposes them.Read 8 Oct 2026 · github.com
- Hardware verification
- The maker reports that real hardware verification was performed with a Samsung Odyssey G9 and Raspberry Pi Zero 2 W; other monitors have not been verified.Read 8 Oct 2026 · github.com
- Home Assistant
- The service uses MQTT discovery to expose profile features as Home Assistant entities, including selectors, sliders, and sensors.Read 8 Oct 2026 · github.com
- Home Assistant integration
- The service announces monitor controls as Home Assistant entities using MQTT discovery.Read 8 Oct 2026 · github.com
- Input switching limit
- Switching to a machine that is off shows a black screen, and the service cannot detect this in advance.Read 8 Oct 2026 · github.com
- Integration state
- Home Assistant state is polled from the monitor, and the default input-source polling interval is 15 seconds.Read 8 Oct 2026 · github.com
- Intended use
- The project is designed for people switching a monitor between computers, including when the currently displayed computer is off or asleep.Read 8 Oct 2026 · github.com
- Limitations
- Switching to a computer that is off can show a black screen, and the service cannot detect that condition in advance.Read 8 Oct 2026 · github.com
- Monitor controls
- It can expose monitor controls including brightness, contrast, volume, mute, picture mode, colour temperature, RGB gain, and black level.Read 8 Oct 2026 · github.com
- Monitor information
- It can read monitor information such as usage hours, firmware level, refresh rates, and power state.Read 8 Oct 2026 · github.com
- Monitor profiles
- Editable profiles define monitor feature values and can override incorrect capability auto-detection.Read 8 Oct 2026 · github.com
- Profiles
- Editable profiles define monitor values, and can override auto-detection when a monitor reports incorrect capabilities.Read 8 Oct 2026 · github.com
- Refresh delay
- After an input change, a full monitor-value reread takes around 20 seconds on a Pi Zero, so other values may briefly lag.Read 8 Oct 2026 · github.com
- Release status
- The README describes the project as usable but not yet released.Read 8 Oct 2026 · github.com
- Setup requirement
- Setup requires a Raspberry Pi running Raspberry Pi OS, connected to the monitor by HDMI and reachable over SSH.Read 8 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Offers input switching and multiple monitor controls.
- Profiles can override incorrect capability detection.
- Home Assistant integration uses MQTT discovery.
- Free and MIT licensed.
Limits
- No authentication; intended for a trusted LAN.
- Requires Raspberry Pi OS and SSH setup.
- Other monitors have not been verified.
- Switching to an off computer shows a black screen.
Who it suits
Monitor Switch suits people who switch one monitor between computers and want browser, API, script, or Home Assistant controls. It requires a Raspberry Pi setup and is intended for a trusted LAN.
Monitor Switch in depth
Read the full write-up
Monitor Switch is a Raspberry Pi-based service for changing a monitor’s input and DDC/CI settings from a browser, API, scripts, or Home Assistant. It is best for people sharing one display between computers who are comfortable running self-hosted Linux hardware. The broad automation surface is compelling, but the setup and compatibility caveats make it a deliberate choice rather than a universal monitor utility.
Overview
The project puts monitor control on a Raspberry Pi connected to the display’s HDMI input, with installation handled by an Ansible playbook. That arrangement means source switching does not depend on software running on either computer. It also means buying, configuring, and maintaining a Raspberry Pi is part of the solution, and the Pi must run Raspberry Pi OS and be reachable over SSH.
Monitor Switch is MIT-licensed open source and currently described by its maker as usable but not yet released. Real-hardware verification covers a Samsung Odyssey G9 with a Raspberry Pi Zero 2 W; other monitors remain unverified. Treat it as a promising self-hosted project for users willing to validate their own display, not as a broadly certified appliance.
Key features
Input source switching is the central capability. Through its web interface, HTTP API, scripts, or Home Assistant, one service can select among computers connected to the monitor. When the display exposes the relevant DDC/CI controls, it can also set brightness, contrast, volume, mute, picture mode, colour temperature, RGB gain, and black level.
It can read usage hours, firmware level, refresh rates, and power state, which gives automations useful context beyond a simple source toggle. Editable profiles let you define monitor values explicitly and override automatic capability detection when a display reports its controls incorrectly. That makes profiles valuable for unusual or imperfectly reporting hardware.
Home Assistant integration uses MQTT discovery. Profile features appear as entities including selectors, sliders, and sensors, so monitor changes can participate in existing home-automation routines without custom UI work. State is polled from the monitor, with a default 15-second interval for input-source polling.
There are important timing and failure conditions. Switching to a computer that is powered off can produce a black screen, and the service cannot detect that situation in advance. After an input change, a complete monitor-value reread takes about 20 seconds on a Pi Zero, so brightness and other values can temporarily lag behind the selected source.
Pricing
MIT-licensed open-source software: free. The plan is usable, not yet released, and requires a Raspberry Pi. There are no paid tiers, seat charges, or usage quotas in the stated plan. It suits technically inclined users who can supply the hardware and accept project-level release status; readers wanting a polished, supported desktop product should look elsewhere.
Platforms
Monitor Switch supports a web interface, Linux, an HTTP API, and self-hosted deployment on a Raspberry Pi. Setup requires Raspberry Pi OS, an HDMI connection from the Pi to the monitor, and SSH access during installation. It is not a native Windows or macOS desktop utility.
Who it's for
Choose it when several computers share one monitor and you want centralized source selection, DDC/CI adjustments, or Home Assistant automation. It is particularly suited to a trusted home LAN and to users comfortable editing profiles and troubleshooting monitor compatibility. It is a poor fit if you need authentication, verified support for a broad range of displays, immediate state updates, or a setup that avoids extra hardware.
Pros and cons
Pros
Multiple control paths: Browser, API, scripts, and Home Assistant cover manual use and automation.
Wide DDC/CI scope: Input, image, audio, colour, and black-level controls are available when the monitor exposes them.
Useful telemetry: Usage hours, firmware, refresh rates, and power state support informed automations.
Profiles and MQTT discovery: Explicit profiles can correct bad capability reports, while Home Assistant entities reduce integration work.
No software fee: MIT licensing and a 0.00 USD price remove subscription cost.
Cons
Hardware and deployment burden: A Raspberry Pi, Raspberry Pi OS, HDMI wiring, SSH access, and Ansible setup are required.
Limited compatibility evidence: Only a Samsung Odyssey G9 and Pi Zero 2 W have been verified on real hardware.
No authentication: It is intended for a trusted LAN, so it should not be exposed as an unsecured service.
Slow refresh: A Pi Zero can take around 20 seconds to reread values after switching, with 15-second default input polling.
Blind spot for powered-off machines: Selecting an off computer can leave a black screen without advance detection.
Unreleased project: The usable-but-not-yet-released status warrants caution for dependable production setups.
Alternatives
For a macOS-focused freemium utility, Lunar is the more natural choice; its free version allows 100 manual adjustments and it also offers a trial. Windows users with supported AOC hardware should choose AOC G-Menu, while ASUS monitor owners on macOS or Windows should consider ASUS DisplayWidget Center.
If you want a Linux/API/self-hosted DDC/CI tool without Monitor Switch’s Raspberry Pi service layer, ddcutil is the direct alternative. DeepPurge is a free cross-platform option when your needs extend beyond this project’s monitor-switching focus. On macOS or Windows, DisplayBuddy trades the free model for paid one-time Personal and Pro plans with presets and lifetime access.
For a narrower Linux solution, Monitor Brightness Control fits users who only need brightness adjustment and have DDC/CI plus I2C access. Windows 10 and 11 users wanting a free brightness utility should pick Twinkle Tray instead. Browse Monitor Control Software for the wider category.
Verdict
Monitor Switch is a strong fit for a technically capable user who shares a monitor between computers and wants API- or Home Assistant-driven control from a Raspberry Pi. Its main reason to choose it is the combination of input switching, extensive DDC/CI controls, profiles, and automation entities at no software cost. Look elsewhere if authentication, broad verified hardware support, fast state updates, or a released and polished desktop experience matters more than self-hosted flexibility.
Verdict
Monitor Switch provides several control paths and Home Assistant entities, but its project status and verified hardware coverage are limited. Allow for a Raspberry Pi setup, no authentication, and a brief lag in monitor values after input changes.
Where Specifiction places it
- Monitor Control Software#6 of 248.0