# PHP Monitor: a macOS menu bar app for Homebrew PHP and Laravel Valet

> PHP Monitor is a native Swift menu bar utility that shows the active PHP version, switches it globally or per site, and manages Homebrew PHP and Laravel Valet from the status bar. It is macOS-only, requires admin rights for parts of the setup, and is the wrong tool if you want a PHP environment that does not depend on Homebrew.

**nicoverbruggen/phpmon** — Easily install and configure your development environment with PHP. Serve sites with Laravel Valet, switch PHP versions, manage extensions, and quickly resolve issues automatically.

- Repository: https://github.com/nicoverbruggen/phpmon
- Website: https://phpmon.app
- Stars: 3,223 · Forks: 61
- Language: Swift
- License: MIT
- Published: 2026-09-24 · Updated: 2026-09-24 · Language: en
- Canonical page: https://hysenlabs.com/projects/nicoverbruggen-phpmon

## What PHP Monitor solves on a Mac that runs Homebrew PHP

The problem is visibility. On a Mac where PHP comes from Homebrew and sites are served by Laravel Valet, the linked PHP version is a symlink you have to query, the loaded extensions are a separate command, and the Valet domain list is a third. PHP Monitor puts the active PHP version in the status bar so it is readable without running anything, and puts the actions that change it behind a menu.

The intended user is a PHP developer on macOS who already works with Homebrew, or who wants the app to walk them through that setup. The README describes an onboarding wizard that handles Apple's Command Line Tools, Homebrew, PATH configuration, PHP and Composer, and optionally Laravel Valet. That onboarding is the second audience: people on a fresh Mac who would otherwise be assembling the stack by hand.

Two switching models are offered. A global switch applies the selected PHP version as the system default. Per-site switching uses Valet's site isolation feature, which the README notes is not available on every supported Valet version. The app also exposes configuration files, service restarts, new domain links, and a First Aid routine aimed at common PHP and Homebrew problems. The author's own stated reason for building it was wanting to see the linked PHP version at a glance and to avoid the terminal for routine Valet work.

## How the app is put together: Swift app, Homebrew and Valet underneath

The repository is a Swift project built with Xcode, with the top level split into phpmon/, phpmon-shared/ and phpmon-updater/ alongside an Xcode project file, scripts, tests and a .swiftlint.yml configuration. That layout indicates a native macOS application with a separate updater component and a shared module, not a wrapper around a web interface.

Functionally, PHP Monitor sits on top of tools it does not replace. Homebrew owns the PHP installations, Laravel Valet owns the sites and the isolation mechanism, and the app reads and manipulates that state. This is why the system requirements include an account that can administer the computer: certificate generation and parts of the setup need elevated access, and macOS may prompt for an installer or administrator approval during onboarding.

The app is a universal build, so it runs natively on both Apple Silicon and Intel Macs. It is signed and notarized, which the README says means the only step at first launch is approving it. Third-party integrations, including the Alfred workflow and the Raycast extension, are off by default; the first time another app tries to connect, PHP Monitor prompts once, and the setting can be changed later under "Allow third-party integrations" in Settings.

## Installing PHP Monitor and switching a PHP version for the first time

The README recommends downloading the latest release, unzipping it and placing the app in /Applications for a first manual install. On a fresh machine the onboarding flow then walks through whatever is missing, telling you exactly what to do even when a step still happens in Terminal or in a macOS installer window.

If you prefer Homebrew, the README gives this tap and cask install:

```bash
brew tap nicoverbruggen/homebrew-cask
brew install --cask phpmon
```

After that, the app is in /Applications like the manual install. The README adds a caveat for this route: you may want to disable the built-in update check, because updating through Homebrew requires approving the app every time an update is installed. The built-in updater avoids that approval step and is the recommended way to update.

Once the app runs, the status bar shows the active PHP version. Selecting a different version from the menu applies it globally as the system default. If you would rather not change the system default, the per-site route uses Valet's site isolation; the README notes that isolation is one of the features missing from older Valet versions, so the menu option depends on which Valet you have. From the same menu you can open configuration files, restart services, add a domain as a link, and run First Aid when something in PHP or Homebrew is misbehaving.

If the app refuses to start, that is by design. The README states that PHP Monitor performs integrity checks, tries to help with onboarding when key dependencies are missing, and otherwise shows a message explaining that it will not work correctly in a given scenario.

## Where PHP Monitor stops being the right tool

The hard boundary is the operating system. This is a macOS application with a minimum of macOS 13.5, and there is no Linux or Windows build in the repository layout. Anyone searching for a way to run it on Ubuntu will not find one here; the tool manages a Mac development environment, and the Homebrew and Valet assumptions only make sense there.

The second boundary is the dependency chain. PHP Monitor manages Homebrew PHP and Laravel Valet rather than replacing them. If you want a local PHP environment that does not rely on Homebrew at all, the README itself points to Laravel Herd as a good alternative, noting that Herd does not rely on Homebrew and offers paid features. The author states no affiliation with Laravel, the Laravel team, or Beyond Code, and describes PHP Monitor as an independent project that preceded Herd.

The third boundary is Valet version. Compatibility runs from Valet v2 up to v4, and the README is explicit that each version supports slightly different PHP versions, which is why legacy releases remain supported. The practical consequence is that a feature can be present in the interface and unavailable in your setup: site isolation is the named example. If your workflow depends on per-site PHP versions and you are pinned to an old Valet, check that before assuming the menu will do what you expect.

## Laravel Herd and the Homebrew question

The comparison the project itself draws is with Laravel Herd, and the difference is the dependency model rather than the feature list. Herd is described in the README as an easy, ready-to-go environment that does not rely on Homebrew, which means it takes over more of the stack. PHP Monitor does the opposite: it assumes Homebrew is or will be present, and it manages what Homebrew and Valet already provide.

That has a concrete consequence. With PHP Monitor you keep the Homebrew PHP installations you already have, and switching versions changes which one is linked. With an environment that does not use Homebrew, the PHP versions come from that product instead, so the set of versions available to you is whatever it ships. The README also notes that Herd offers paid features that may be useful to an individual or a team, while PHP Monitor is MIT licensed and the author asks for stars and sponsorship rather than charging for the app.

Neither choice is presented as universally better in the README. The author recommends trying different tools and using what works best, and states that PHP Monitor will remain supported. For a developer already invested in Homebrew and Valet, keeping that stack and adding a status bar front end is the smaller change. For someone who does not want to maintain Homebrew at all, the app is managing a layer they would rather not have.

## Updates, signing and what the MIT licence means here

Updating is meant to happen through the built-in updater. The README warns that on a very slow connection the updater may report that the download timed out, and in that case the fallback is downloading the latest release and placing the app in /Applications by hand. Homebrew can update the app too, but with the approval prompt on every update, which is why the built-in path is recommended.

The app is signed and notarized according to the README, so first launch is an approval rather than a workaround. The README directs readers to SECURITY.md to find which version of the app is currently supported; that file is the place to check rather than assuming any release is still maintained. The most recent release listed in the repository is v26.09, published on 2026-09-13, and the last push to the default branch was on the same day.

The licence is MIT. In practical terms that permits use, modification and redistribution with the licence and copyright notice retained, and it comes with no warranty. That is the extent of what can be said from the repository; nothing here is legal advice, and if you plan to redistribute the app or bundle it into a commercial product, read the LICENSE file and, where it matters, get proper advice. The README's request for stars and sponsorship is separate from the licence and does not change what MIT allows.

## Conclusion

Adopt PHP Monitor if you run Homebrew PHP with Laravel Valet v2 through v4 on macOS 13.5 or later and want version switching, extension management and Valet domain handling outside the terminal. Do not adopt it if you are not on macOS, if you want an environment that does not depend on Homebrew, or if you need a Valet version outside the supported range, because the README states that some features such as site isolation are unavailable on older Valet releases. Before installing, verify that the release you download is signed and notarized, and check SECURITY.md for which app version is currently supported, since the README points there rather than stating a support window itself.

## FAQ

### How do I install PHP Monitor on my Mac?

The README recommends downloading the latest release, unzipping it and placing the app in /Applications, then following the onboarding flow on first launch. Alternatively you can install it with Homebrew using the nicoverbruggen/homebrew-cask tap and the phpmon cask.

### Does PHP Monitor work with Laravel Valet?

Yes. The README states that PHP Monitor is compatible with Laravel Valet v2 up to v4, and that Valet can be installed automatically by the app during onboarding. Site isolation is one feature that is not available in older Valet versions.

### Can I install PHP Monitor with Homebrew?

Yes. The README gives brew tap nicoverbruggen/homebrew-cask followed by brew install --cask phpmon, and suggests you may want to disable the built-in update check if you install it this way, since Homebrew updates require approving the app each time.

### Which macOS versions does PHP Monitor support?

The README lists macOS 13.5 or later, along with a user account that can administer the computer. The app is a universal build that runs natively on both Apple Silicon and Intel Macs.

### How do I update PHP Monitor?

The README says the built-in updater is the recommended method, and that if a slow connection causes the download to time out you can manually download the latest release and place it in /Applications. Updating through Homebrew works but requires approving the app every time.

### Is PHP Monitor signed and notarized?

The README states that the app is signed and notarized, so all you have to do is approve its first launch. If you also use the onboarding flow, macOS may prompt you to complete an installer or approve administrator access for certain setup steps.

## Sources

- [License: MIT](https://github.com/nicoverbruggen/phpmon/blob/main/LICENSE)
- [nicoverbruggen/phpmon on GitHub](https://github.com/nicoverbruggen/phpmon)
- [Project website](https://phpmon.app)
- [README](https://github.com/nicoverbruggen/phpmon/blob/main/README.md)
- [Releases](https://github.com/nicoverbruggen/phpmon/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/nicoverbruggen-phpmon
