Real-time Windows system tray monitor for .NET Aspire distributed applications. Install as a global tool and launch with `aspiremon`. Monitor health, status, and endpoints of your Aspire resources with color-coded indicators and clickable URLs.
Install
No framework information available.
README
ElBruno.AspireMonitor
A Windows system tray monitor that discovers and displays Aspire running instances and their deployed resources.
Set a working folder โ monitor discovers an active Aspire instance โ instantly see all deployed services, containers, and databases with clickable URLs. Zero configuration beyond pointing to your Aspire project directory.
What It Does
ElBruno.AspireMonitor is a lightweight Windows system tray tool that works in two steps:
- Set a working folder โ Point the app to your Aspire AppHost project directory
- Auto-discover & monitor โ When
aspire runis active in that directory, the tray icon turns green and displays:- All deployed services, containers, and databases
- Real-time status and health checks
- Clickable URLs for each resource
- CPU/memory metrics for your resources
The workflow: Working Folder โ Running Instance Detection โ Live Resource Display
Perfect for developers who want instant visibility into what Aspire deployed, without switching to a browser dashboard.
๐ฏ Features
| Feature | Description |
|---|---|
| ๐ผ๏ธ Tray Status Indicator | Green (running), Yellow (warning), Red (error), Gray (not running) |
| ๐ Automatic Discovery | Finds running Aspire instances in your working folder |
| ๐ฅ๏ธ Resource Visibility | Lists services, containers, databases with endpoints |
| ๐ Clickable URLs | Open any resource directly from the app |
| โก Real-Time Updates | Automatic polling every 2 seconds (configurable) |
| ๐ Status Metrics | CPU, memory, health status for each resource |
| ๐ช System Tray Integration | Minimal footprint, always accessible in taskbar |
| โ๏ธ Single Tray Icon | One icon for unified monitoringโno clutter |
| ๐ผ Working Folder Display | Shows your chosen directory (humanized paths) |
โก 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 โ Run
aspire runfrom that directory; 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.
๐ผ๏ธ System Tray Status
The tray icon tells you at a glance:
| Icon | Status | Meaning |
|---|---|---|
| Running | Aspire instance found; all resources healthy | |
| Warning | Aspire running; one or more resources in warning state | |
| Error | Lost connection to Aspire or polling failed; auto-reconnect in progress | |
| Not Running | No Aspire instance found in the configured working folder |
๐ 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 resource details window
- Double-click โ Expand/collapse the main window
- Right-click โ Context menu (Settings, Refresh, Exit)
- Icon status โ Reflects instance status (green=running, yellow=warning, red=error, gray=not running)
The app automatically watches your working folder for Aspire instances. When aspire run is active, resources appear instantly.
Configuration
Edit your settings at:
%APPDATA%\Local\ElBruno\AspireMonitor\config.json
Example (working folder, polling interval, thresholds):
{
"workingFolder": "C:\\Projects\\MyAspireApp",
"pollingIntervalMs": 2000,
"cpuThresholdWarning": 70,
"cpuThresholdCritical": 90,
"memoryThresholdWarning": 70,
"memoryThresholdCritical": 90
}
See Configuration Guide for all options.
๐ Documentation
- Quick Start Guide โ Get up and running in 5 minutes
- 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 tabs on your microservices while coding
- Resource Debugging โ Quickly spot which service is consuming CPU/memory
- Status At-a-Glance โ One tray icon shows everything (no browser switching)
- Demo Mode โ Impress colleagues with instant visibility into deployed resources
- Integration Testing โ Monitor health during automated test runs
๐๏ธ Architecture Highlights
- Service-Oriented: Clean separation between Aspire API client, discovery, polling, and UI
- Polling Model: Configurable background thread with exponential backoff on failures
- MVVM Pattern: Fully testable business logic, UI-agnostic services
- State Machine: Discrete states (Idle โ Discovering โ Connected โ Polling โ Error โ Reconnecting)
- Threshold-Based Alerts: Configurable CPU/memory thresholds determine status colors
- Single Tray Icon: Unified monitoring interfaceโno confusion from multiple icons
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?
- Verify Aspire is running:
aspire runin 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 .NET 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.