Skip to main content
Any Framework

Windows-first .NET tool that forwards GitHub Copilot CLI events to the ElBruno.CopilotCLIMonitor systray app.

Published
Aug 20, 2026
2mo ago
Total Downloads
1.8K
1,755

Deprecated Package Version

Reason: Legacy

This project has been retired and is no longer maintained. No further updates or support will be provided.

Install

dotnet add package ElBruno.CopilotCLIMonitor --version 0.3.2

No framework information available.

README

ElBruno.CopilotCLIMonitor

30-second demo of ElBruno.CopilotCLIMonitor

license NuGet .NET Build

Stop babysitting long-running Copilot CLI tasks. ElBruno.CopilotCLIMonitor is a lightweight Windows Systray application that keeps you informed with native notifications when your AI workflows finish.

Overview

ElBruno.CopilotCLIMonitor bridges GitHub Copilot CLI hooks and Windows desktop notifications. Minimize your terminal and stay aware of important events without constant terminal monitoring.

Supported events:

  • Task completed
  • Workflow finished
  • Build/test execution completed
  • Agent waiting for input
  • Error occurred
  • Approval required

Quick start

Install CLI bridge

dotnet tool install -g ElBruno.CopilotCLIMonitor

The NuGet tool package includes the monitor desktop binaries and copilotclimon launches the app by default.

For setup, initialization, automation (init --default), upgrade (copilotclimon upgrade), and alternative install methods, use:

Using with Copilot CLI

Start the monitor app with copilotclimon, then use GitHub Copilot CLI normally in your terminal. Notifications appear in Windows while the app is running in the tray.

Repository init example

Example interactive hook selection during copilotclimon init --force:

Interactive repository init options

Features

Systray integration

  • Persistent Windows Systray presence
  • Context menu with quick actions
  • Background execution while you work

Native toast notifications

  • Configurable notification behavior
  • Optional sound alerts
  • Consistent Info icon for all notifications
  • Action buttons for quick responses

Event history

  • Recent events dashboard
  • Timestamp tracking
  • Event filtering
  • History clearing

Repository awareness

  • Per-repository hook configuration
  • Custom event routing
  • Local configuration support

Settings

Configure:

  • Notification types
  • Toast duration
  • Sound preferences
  • Quiet hours
  • Repository filters
  • Event filtering
  • Startup behavior
  • Logging level

Localization

  • Automatic RTL layout support based on UI culture
  • Dashboard and settings windows adapt to right-to-left languages
  • Event labels localized for English, Spanish, and French

Architecture

The solution has two main components:

1. Systray application

A native WPF Windows application that:

  • Lives in the Windows Systray
  • Receives and displays notifications
  • Manages user settings
  • Tracks recent events

2. Repository hook integration

CLI-based hook installer that:

  • Integrates with GitHub Copilot CLI hooks
  • Forwards events to the Systray app
  • Supports repository-local configuration
  • Validates hook installation

CLI commands

Initialize repository

copilotclimon init

Detects the current repository, prompts for hook trigger selection, installs hooks, and registers event forwarding. For automation (init --default) and force refresh options, see docs/setup.md.

Upgrade managed hook/config files

copilotclimon upgrade

Send notification

copilotclimon notify --event task-completed --message "Your message here"

Validate setup

copilotclimon doctor

Checks system configuration and hook installation.

Open dashboard

copilotclimon open

Opens the events dashboard window.

Show version

copilotclimon --version

Check for updates

copilotclimon update

Install latest version directly:

copilotclimon update --install

Configuration

Global configuration

User settings are stored in:

%AppData%\CopilotCliMon\preferences.json

Optional machine-wide defaults can be stored in:

%ProgramData%\CopilotCliMon\preferences.system.json

Machine-wide values load first, then per-user values override them. Environment variables can override both file-based layers; see setup.md.

Repository configuration

Local hook configuration:

.copilotclimonitor

IPC authentication (optional)

To require authentication between CLI and monitor IPC calls, set the same token in both processes:

$env:COPILOTCLIMON_IPC_TOKEN = "your-shared-secret"

When configured, the monitor accepts only requests containing this token.

Technology

  • .NET 10 – Modern .NET runtime
  • WPF – Native Windows desktop framework
  • Windows Notifications – Native toast notifications
  • GitHub Copilot CLI – Hook integration

Setup guide

See setup.md for detailed installation and configuration instructions.

Standalone installer packaging

See installer.md for standalone Windows package generation.

Portable ZIP distribution

See portable-distribution.md for no-installation packaging and usage.

Chocolatey packaging

See chocolatey.md for creating and publishing Chocolatey packages.

Windows Store packaging

See microsoft-store.md for generating MSIX artifacts and Partner Center submission steps.

Troubleshooting

See troubleshooting.md for common issues and solutions.

Windows security notes

See windows-security-notes.md for Defender/SmartScreen and antivirus compatibility guidance.

Code coverage

See coverage.md for local and CI coverage report generation.

Linting rules

See linting.md for .editorconfig and StyleCop analyzer configuration.

Accessibility testing

See accessibility-testing.md for keyboard, screen reader, and WCAG-focused validation checklist.

Performance testing

See performance-testing.md for memory/CPU/responsiveness guardrail tests.

Code quality metrics

See code-quality-metrics.md for CodeQL and SonarQube integration details.

Diagnostic mode

See diagnostic-mode.md for enabling verbose troubleshooting logs.

Log file rotation

See log-rotation.md for daily/size-based log rotation settings.

Telemetry (optional)

See telemetry.md for opt-in telemetry behavior and data details.

Privacy policy

See privacy-policy.md for data handling practices and user controls.

User manual

See user-manual.md for end-user step-by-step usage.

Video tutorials

See video-tutorials.md for recording plans, standards, and publishing checklist.

Architecture documentation

See architecture.md for technical design details. See api-documentation.md for method signatures and class relationship diagrams.

Developer guide

See developer-guide.md for contributing workflow, setup, and architecture references.

Versioning and release strategy

This project uses Semantic Versioning (MAJOR.MINOR.PATCH) with an automated release pipeline. See versioning.md for bump rules and release flow. See release-branch-strategy.md for main/develop/release/* branch responsibilities. Use scripts/version-auto-increment.ps1 to auto-calculate next patch/minor/major before applying version bump updates. Use .github/release-notes-template.md to keep release notes format consistent across versions. For emergency patch releases, follow hotfix-process.md.

Examples

Hook integration example

The following hook configuration forwards Copilot CLI events:

# Installed in: .copilotclimonitor/hooks/on-task-complete.sh
#!/bin/bash
copilotclimon notify \
  --event task-completed \
  --message "Migration task finished" \
  --repository "$(basename $(git rev-parse --show-toplevel))" \
  --branch "$(git rev-parse --abbrev-ref HEAD)"

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

Product screenshots

Screenshot catalog and capture standards are documented in screenshots.md.

Logo variants

Logo source variants and export targets are documented in logo-variants.md.

Marketing graphics

Social cards and feature-promotion assets are documented in marketing-graphics.md.

Hook configuration guide

For advanced hook setup, custom scripts, and secure event routing, see hook-configuration.md.

License

This project is licensed under the MIT License. See LICENSE for details.

Inspiration

This project is inspired by and follows patterns from:

Support

πŸ‘‹ About the Author

Hi! I'm ElBruno 🧑, a passionate developer and content creator exploring AI, .NET, and modern development practices.

Made with ❀️ by ElBruno

If you like this project, consider following my work across platforms:

  • πŸ“» Podcast: No Tienen Nombre β€” Spanish-language episodes on AI, development, and tech culture
  • πŸ’» Blog: ElBruno.com β€” Deep dives on embeddings, RAG, .NET, and local AI
  • πŸ“Ί YouTube: youtube.com/elbruno β€” Demos, tutorials, and live coding
  • πŸ”— LinkedIn: @elbruno β€” Professional updates and insights
  • 𝕏 Twitter: @elbruno β€” Quick tips, releases, and tech news

Changes from Previous Version

No structural changes between v0.3.1 and v0.3.2.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

NuGet marks this package as deprecated. Review the publisher's migration guidance before adopting it.No target framework metadata is available. Confirm compatibility in a representative project before standardising on this package.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.