A build/CI monitor that runs in the system tray on Windows, macOS and Linux. It polls the CI services a developer cares about, shows one row per pipeline, and a row for each pull request while it builds or fails, with a progress bar and countdown for running builds, links straight to the build, the branch and the pull request, can retry or cancel a build, and copies the log of a failed one. A local MCP server lets an AI assistant read and act on the same list.
See Milestones for release notes.
dotnet tool install --global BuildMonitor --prerelease
Run buildmonitor to start the tray app. One install works on every operating system: the package carries a head for each platform and the launcher starts the right one.
To update, use Update in the tray menu, which restarts BuildMonitor on the new version. To update from the command line on Windows, first quit the tray with buildmonitor quit and close any AI assistant using the MCP server, since both hold the installed files:
dotnet tool update --global BuildMonitor --prerelease
An assistant stays on the old version of the MCP server until it connects it again.
- AppVeyor
- Azure DevOps
- Bitbucket Pipelines
- GitHub Actions
- GitLab CI
- GoCD
- Jenkins
- Octopus Deploy
- TeamCity
- Travis CI
MyGet is not supported: it exposes no build API, only a status badge, a trigger hook and webhooks.
- Tray
- Connections
- Options
- Filters
- Authors
- Authentication
- MCP server
- Linux
- macOS
- Troubleshooting
- Provider APIs
- Live provider tests
Icons are from Lucide (ISC), bundled through IconifyBundle. Provider logos are from Simple Icons (CC0), in each brand's own colour. GitHub's is the octocat badged with a play mark, since a row draws the repository's host beside the service that built it and the two cannot be one picture.
The heads that rasterise their own text draw with JetBrains Mono (OFL), with Noto Emoji (OFL) merged over it for the 🤖 a bot's row carries, which a programming face has no glyph for. Both are embedded, and Noto Emoji is cut down to the marks actually drawn; see EmbeddedFont for the command that cuts it. Each licence sits beside its font under src/BuildMonitor.Core/Assets.
