Windows system tray monitor for Aspire distributed applications. Install as a global tool and launch with `aspiremon`. See your Aspire resources at a glance, pin the ones you care about in a compact mini window with full URLs, and start/stop your AppHost from the tray.
Install
No framework information available.
README
ElBruno.AspireMonitor
A Windows system tray monitor for Aspire distributed applications.
Point it at your Aspire AppHost folder, pin the resources you care about, and get CPU, memory, disk, resource type, environment badges, endpoint counts, live URLs, and Start/Stop controls from the tray.
What It Does
ElBruno.AspireMonitor is a lightweight Windows tray tool that:
- Watches a working folder β point it at the directory containing your Aspire
*.AppHost.csproj - Discovers resources β shells out to
aspire describe --format jsonand parses the result - Surfaces what matters β lists every resource in the main window, and pins your chosen ones (with their real URLs) in a compact mini window
- Drives your AppHost β Start / Stop buttons run
aspire startand shut it down cleanly, with a live countdown while Aspire spins up
No third-party Aspire SDK dependency. No agents. Just a tray app talking to the Aspire CLI and opening the Aspire dashboard at the standard default http://localhost:18888.
β¨ What's New in v1.6.0
Now aligned with Aspire 13.3, ElBruno.AspireMonitor brings:
- Standard Dashboard Alignment β The monitor defaults to the local Aspire dashboard endpoint documented by Aspire 13.3 (
http://localhost:18888) while preserving user overrides. - Richer Resource Telemetry β Resource cards now display resource type, disk usage percentage, endpoint counts, and compact environment summaries, giving you more visibility into your services at a glance.
- Sample Harness Validation β A maintained Aspire sample solution (
src/SampleHarness/) ensures end-to-end and regression validation as Aspire evolves.
See CHANGELOG.md for detailed release history.
π― Features
| Feature | Description |
|---|---|
| π’π‘π΄ Color-Coded Status | Visual indicators: Green (<70%), Yellow (70-90%), Red (>90%) |
| β‘ Real-Time Updates | Automatic polling every 2 seconds (configurable) |
| π¦ Rich Resource Telemetry | See type, disk usage percentage, and endpoint counts at a glance |
| π·οΈ Environment Badges | Compact badges summarize resource environment variables |
| π Hide Development Resources | Optionally filter development-only resources from the list |
| π§ Open Dashboard | One-click button opens the configured Aspire dashboard URL |
| π Auto-Reconnect | Gracefully handles network interruptions |
| π Multi-Resource Monitoring | Track unlimited Aspire resources |
| πͺ Tray + main window + mini window | Click the tray icon for the full resource list; the mini window pins just what you care about |
| π Pinned resources | Comma-separated MiniWindowResources setting pins resources by name prefix (case-insensitive β web matches Aspire's web-xggqzmyn replicas) |
| π Full URLs inline | Pinned resources show their actual endpoint (http://localhost:5021), not a generic "Open" link |
| βΆοΈ Start / Stop controls | Run or stop your AppHost from the tray. Start stays disabled with a live countdown (β³ Starting Aspire... (12 / 90s)) until resources actually appear |
| π‘ Pinned-resource validation | Missing pins are skipped, not crashes β the mini window opens with whatever resolved |
| βοΈ Live config reload | Changes in Settings apply without restarting the app |
| π Configurable polling | Default 2 second interval, override in config |
β‘ Quick Start
- Install as a .NET global tool:
dotnet tool install --global ElBruno.AspireMonitor - Launch with
aspiremonfrom any terminal - Set working folder when prompted (point to your Aspire AppHost directory)
- Start monitoring β Use the Start button in the tray to launch Aspire; the tray icon will turn green with resources listed
Install as a .NET Global Tool (recommended):
dotnet tool install --global ElBruno.AspireMonitor
Then launch anytime from any terminal:
aspiremon
The tool is Windows-only (the underlying app is WPF). Requires the .NET 10 Runtime.
Or download the executable from GitHub Releases. For detailed setup instructions, see Quick Start Guide.
π Requirements
- Windows 10 or later (WPF is Windows-only)
- .NET 10 Runtime (download)
- .NET Aspire running locally on your machine
π Usage
First Run
Install the global tool and launch it:
dotnet tool install --global ElBruno.AspireMonitor
aspiremon
On first run, you'll be prompted for your working folder:
Enter working folder (path to your Aspire AppHost project):
C:\Projects\MyAspireApp
System Tray
- Click icon β show/hide the main window
- Double-click β toggle the main window
- Right-click β context menu (Settings, Mini window, Exit)
The app watches your working folder. When Aspire is running, resources appear automatically.
Configuration
Open the in-app Settings dialog, or edit:
%APPDATA%\Local\ElBruno\AspireMonitor\config.json
Example:
{
"projectFolder": "C:\\Projects\\MyApp\\src\\MyApp.AppHost",
"aspireEndpoint": "http://localhost:18888",
"pollingIntervalMs": 2000,
"miniWindowResources": "web, store, gateway",
"hideDevelopmentResources": false
}
| Field | Purpose |
|---|---|
projectFolder |
Folder containing your Aspire *.AppHost.csproj |
aspireEndpoint |
Aspire dashboard URL (default http://localhost:18888) |
pollingIntervalMs |
Resource refresh interval (default 2000) |
miniWindowResources |
Comma-separated list of resource name prefixes to pin to the mini window. Empty = mini window only shows the dashboard link. Case-insensitive prefix match (e.g. web matches web-xggqzmyn) |
hideDevelopmentResources |
Hides resources marked as development-only in Aspire environment metadata |
See Configuration Guide for all options.
π Documentation
- Quick Start Guide β Get up and running in 5 minutes
- What's New in v1.6.0 β Aspire 13.3 alignment, richer telemetry, and sample harness
- Architecture Guide β System design, components, data flow
- API Contract & Services β Service layer, data contracts, retry logic
- Configuration Guide β Setup, CLI, advanced options
- Development Guide β Building from source, debugging
- Publishing Guide β NuGet publishing, versioning, releases
- Troubleshooting Guide β Common issues and solutions
π‘ Use Cases
- Local Development β keep your AppHost one click away while coding
- Quick Status Checks β pin the two or three resources you actually hit and see their live URLs without opening the dashboard
- Demos β Start / Stop from the tray during walkthroughs
- Multi-window setups β the mini window stays out of the way and resizes itself
ποΈ Architecture Highlights
- Service-Oriented β
AspireCliService(process I/O) βAspirePollingService(interval) βMainViewModelβ views - MVVM β testable view models, thin XAML, all business logic covered by xUnit + Moq
- Live config reload β settings changes flow through without restarting
- Pinned-resource matcher β case-insensitive prefix match against
aspire describeoutput, with graceful handling of missing pins
See Architecture Guide for detailed design decisions and data flows.
π¦ Installation & Updates
Install
dotnet tool install --global ElBruno.AspireMonitor
Then run aspiremon from any terminal.
Update
dotnet tool update --global ElBruno.AspireMonitor
Uninstall
dotnet tool uninstall --global ElBruno.AspireMonitor
Verify Version
dotnet tool list --global
π Troubleshooting
Aspire instance not found?
- Start Aspire using the Start button in the tray, or run
aspire startin your working folder - Check the working folder setting in config:
%APPDATA%\Local\ElBruno\AspireMonitor\config.json - See Troubleshooting Guide for more solutions
Tray icon not visible?
- Check Windows notification area (click β² in system tray)
- Verify AspireMonitor is running:
tasklist | findstr aspire - Restart the application and check tray icon placement
- See Troubleshooting Guide
π€ Contributing
Contributions welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Make changes and write/update tests
- Run full test suite:
dotnet test - Commit with clear messages
- Open a Pull Request
See Development Guide for setup and workflow.
π License
MIT License β See LICENSE file for details.
π About the Author
Bruno Capuano @elbruno
Microsoft AI MVP | GitHub Star
- Blog: elbruno.com
- GitHub: @elbruno
- LinkedIn: /in/elbruno
- Twitter: @elbruno
- YouTube: @elbruno
Built with β€οΈ for the Aspire community
Questions? Open an issue or reach out on GitHub Discussions.
Changes from Previous Version
Adoption Assessment
Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.