ElBruno.FoundryLocalMonitor 0.5.29

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global ElBruno.FoundryLocalMonitor --version 0.5.29
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local ElBruno.FoundryLocalMonitor --version 0.5.29
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=ElBruno.FoundryLocalMonitor&version=0.5.29
                    
nuke :add-package ElBruno.FoundryLocalMonitor --version 0.5.29
                    

ElBruno.FoundryLocalMonitor

NuGet NuGet Downloads Build Status License: MIT .NET GitHub stars

Foundry Local Monitor banner

Windows systray monitor for Foundry Local — detects model load/unload events from any app using Foundry Local, regardless of language or SDK.

⚠️ Windows only. This tool uses WPF and the Windows Notification Area. It cannot run on macOS or Linux.

Package

Package NuGet Downloads Description
ElBruno.FoundryLocalMonitor NuGet Downloads Windows systray monitor for Foundry Local

Features

  • 🔔 Toast notifications when models load/unload (Windows 10/11 Action Center)
  • 📊 Compact mini status window (always-on-top)
  • 🖥️ Full dashboard: status, loaded models, available models
  • ⚙️ Systray icon with context menu
  • 🔍 Automatic multi-app discovery — detects Foundry Local running in C#, Python, Node.js, Aspire, or any other context without manual configuration

How Discovery Works

The monitor does not rely on the foundry CLI alone. It runs a parallel HTTP port scan across all active localhost listeners and identifies any endpoint serving the Foundry OpenAI-compatible API:

All 127.0.0.1 listeners  →  parallel GET /v1/models  →  merge model lists
      (kernel call, ~1ms)       (800ms timeout each)      (union by ModelId)

This means the monitor detects:

  • Models loaded via foundry model load (CLI path)
  • Models loaded via the C# FoundryLocalManager SDK (port 55588 by default)
  • Models loaded via the Python foundry-local-sdk (port 55589 by default)
  • Models exposed through .NET Aspire proxy ports
  • Any other app on any dynamic port that serves /v1/models

→ Full details: docs/discovery.md

Install

dotnet tool install -g ElBruno.FoundryLocalMonitor
foundrylocalmon

Requirements

Samples

Sample Language SDK path Description
samples/FoundryLocalChat C# SDK internal server (55588) Automated E2E demo with SDK
samples/FoundryLocalChatPy Python SDK internal server (55589) Same demo in Python

Both samples run together in the multi-client E2E test to verify the monitor detects events from two simultaneous apps.

E2E Testing

# Single-client test (C# only)
cd tests/e2e
.\Run-E2ETest.ps1 -LaunchMonitor

# Multi-client test (C# + Python simultaneously)
.\Run-E2EMultiClient.ps1 -LaunchMonitor

See tests/e2e/README.md for full test documentation.

Build from source

dotnet restore
dotnet build
dotnet test

Publishing

GitHub Release or manual workflow_dispatch triggers publish. The workflow requires the release environment and the NUGET_USER secret, and uses OIDC Trusted Publishing (NUGET_API_KEY is not used).

License

MIT

👋 About the Author

Made with ❤️ by Bruno Capuano.

🙏 Acknowledgments

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.5.30 102 7/6/2026
0.5.29 90 7/6/2026
0.5.28 84 7/6/2026
0.5.27 89 7/6/2026
0.5.26 95 7/6/2026
0.5.25 93 7/6/2026
0.5.24 98 7/6/2026
0.5.23 90 7/6/2026
0.5.22 109 7/6/2026
0.5.21 95 7/6/2026
0.5.20 96 7/6/2026
0.5.19 100 7/6/2026
0.5.18 94 7/6/2026
0.5.17 102 7/5/2026
0.5.16 95 7/5/2026
0.5.15 103 7/5/2026
0.5.14 104 7/5/2026
0.5.13 92 7/5/2026
0.5.12 105 7/4/2026
0.5.10 102 7/4/2026
Loading failed