Veil is a Windows desktop overlay built with WinUI 3 on .NET 10.
The project focuses on a lightweight top bar and companion panels designed for everyday desktop use without getting in the way. The app combines launcher-style search, system actions, media controls, Discord notifications, weather visuals, performance monitoring, and Veil-only background maintenance.
- Draws a compact top bar on the primary monitor, all monitors, or a custom monitor selection
- Opens a Finder-style launcher with apps, Windows settings links, and AI entry points
- Delegates the Finder button to Raycast when installed (configurable per-setting)
- Shows media controls with artwork, source switching, and optional volume controls
- Displays system stats and animated runners (Cat, Parrot, Horse)
- Surfaces Discord notifications in a dedicated panel
- Runs lightweight maintenance for Veil's own memory use
- Exposes a settings window for visuals, monitor targeting, shortcuts, and performance behavior
- .NET 10
- WinUI 3
- Windows App SDK 1.8
- Win32 interop for hotkeys, monitor handling, tray behavior, shell actions, and window management
- TypeScript for the embedded Finder AI web UI
- Rust for the local Handy helper
apps/
desktop/
Veil/ Main WinUI desktop application
Handy/ Local Handy fork used by Veil
tests/
Veil.Tests/ MSTest project for service-level coverage
scripts/
dev.ps1 Local hot-reload style development runner
build-setup.ps1 Inno Setup installer builder
release.ps1 Tag + push to trigger GitHub Actions release
artifacts/ Generated publish and installer outputs
UnicodeAnimations/ Shared spinner/animation assets and support code
.github/workflows/ CI workflow definitions
Veil.sln Solution entry point
dev.cmd Convenience launcher for scripts/dev.ps1
Inside apps/desktop/Veil:
Assets/: fonts, icons, web assets, logos, and runner framesConfiguration/: persisted settings and normalization logicDiagnostics/: application and performance loggingInterop/: native Windows bindings and monitor/window helpersServices/: app discovery, media, startup, tray, optimization, and shell integrationsWindows/: top bar, finder, panels, settings, and Alt+Tab related windows
- Windows 11
- x64 environment
- .NET 10 SDK
- Rust toolchain with
cargoavailable onPATH - TypeScript compiler
tscavailable onPATH
Why cargo and tsc are required:
dotnet buildfor the desktop app runstscto rebuildAssets/Web/FinderAidotnet buildalso runscargo build --releaseforapps/desktop/Handy
Restore the solution:
dotnet restore Veil.slnBuild everything in debug:
dotnet build Veil.sln -c Debug -p:Platform=x64Run the desktop app:
dotnet run --project apps/desktop/Veil/Veil.csproj -c Debug -p:Platform=x64Run tests:
dotnet test tests/Veil.Tests/Veil.Tests.csproj -c Debug -p:Platform=x64For local iteration, use:
.\dev.cmdThis launches scripts/dev.ps1, which:
- watches
apps/desktop/Veil - rebuilds and restarts Veil when relevant files change
- ignores generated
bin,obj, and Finder AIdistoutputs - exposes dev shortcuts for restart, process listing, cleanup, and help
Watched file types include:
.cs.xaml.csproj.manifest.ts.html.css.json
- Finder uses
Ctrl+Space(disabled automatically when Raycast is installed and delegation is enabled)
Some behavior depends on Windows shell state, active media sessions, and monitor configuration.
Build the local installer with:
powershell -ExecutionPolicy Bypass -File .\scripts\build-setup.ps1By default this:
- builds Veil for
win-x64 - stages the output into
artifacts/build/Veil - compiles the Inno Setup script at
installer/veil.iss - publishes the installer at
artifacts/inno/VeilSetup.exe
The installer performs per-user install/uninstall behavior, registers an uninstall entry in the current user registry hive, and cleans up legacy Veil installer entries.
Create and publish a GitHub release with:
powershell -ExecutionPolicy Bypass -File .\scripts\release.ps1 -Version 1.0.0The release script requires a clean Git working tree. Commit and push your changes before running it.
This creates and pushes the v1.0.0 tag. GitHub Actions then builds the Inno Setup installer and attaches VeilSetup.exe to the release.
GitHub Actions currently runs on Windows and:
- checks out the repository
- installs .NET 10
- restores
Veil.sln - publishes the desktop app in
Releaseforwin-x64
Workflow file:
.github/workflows/build.yml
At the moment, the workflow does not run the MSTest suite.
- The solution contains the main WinUI app, the local Handy helper, and MSTest coverage
- Local settings, AI secrets, and downloaded speech models live under
%LOCALAPPDATA%\Veil - The README assumes a Windows-only development environment and does not attempt to support cross-platform build or runtime scenarios
- Successful desktop builds depend on both
cargoandtscbeing available - Some runtime features depend on local Windows capabilities or external services
- The
cargo buildstep requires MSVC linker (link.exe) onPATH— run builds from a Visual Studio Developer Command Prompt or prefix withVsDevCmd.bat