UiGuideAgent.Desktop
0.11.2
dotnet add package UiGuideAgent.Desktop --version 0.11.2
NuGet\Install-Package UiGuideAgent.Desktop -Version 0.11.2
<PackageReference Include="UiGuideAgent.Desktop" Version="0.11.2" />
<PackageVersion Include="UiGuideAgent.Desktop" Version="0.11.2" />
<PackageReference Include="UiGuideAgent.Desktop" />
paket add UiGuideAgent.Desktop --version 0.11.2
#r "nuget: UiGuideAgent.Desktop, 0.11.2"
#:package UiGuideAgent.Desktop@0.11.2
#addin nuget:?package=UiGuideAgent.Desktop&version=0.11.2
#tool nuget:?package=UiGuideAgent.Desktop&version=0.11.2
UiGuide Agent for WPF and WinForms
An AI help agent inside your WPF or WinForms application. Your users ask "how do I…?" and get concrete steps: which button to press and what happens next. The answer is in the language of the question and starts from the window the user is on. It works on .NET 8 or newer and on .NET Framework 4.8.
Privacy: only the structure and labels of your UI leave your application: control types, labels, states and the open windows. Never field values, passwords, the contents of lists, tables and trees, window titles or screenshots. The filter runs inside your application.
Safe answers: the assistant never gives links, downloads or commands, never asks for passwords, codes or card details, and ignores instructions hidden in texts shown by your application.
Quick start
1. Add this package
dotnet add package UiGuideAgent.Desktop
Build and run. You need no code.
You should see:
- a round button in the bottom-right corner of your main window;
- the answer "The assistant is not configured yet." and the build warning
UIG003, until the assistant has a server.
Your application works as before either way.
The first build creates uiguide.json (your settings) and uiguide.map.json (your descriptions) next to your project.
.NET Framework 4.8 with the default C# version: add
<LangVersion>latest</LangVersion>to the project. Or callUiGuide.Attach(this);in your main window's constructor.
2. Connect a server
On your computer:
- Install and start the server:
dotnet tool install -g UiGuideAgent.Server.Host, thenuiguide-server. - Set your LLM in the
server.jsonit creates. The packageUiGuideAgent.Server.Hostexplains it step by step. - Rebuild your application. The build finds the server, writes its address into
uiguide.jsonand registers your application.
Your company's server:
- Install the tool once:
dotnet tool install -g UiGuideAgent.Cli. - In your project folder, run
uiguide init --server https://…. - Rebuild.
The Release build never carries the address of your computer.
Until your users have a server address, every build shows the warning UIG003.
3. Ask
Click the button and ask "How do I …?".
Something wrong? Run uiguide doctor in the project folder. It checks the whole setup and tells you what to do.
Teach it your application
Name every control after what it does.
Every build shows the warning UIG001, with file and line, for each control without a name.
This covers XAML, WinForms designer files and controls created in code.
Name each one in the words a user would use, for example AutomationProperties.Name="Export orders" (WinForms: AccessibleName).
Many controls already have a tooltip or a text you wrote. Their warning ends with a command that copies it into the name, for example:
dotnet build "C:\Projects\Shop\Shop.csproj" -p:UiGuideFix=true
Run it in any terminal, from any folder. You install nothing. Then check that each name says what the control does.
The knowledge bundle. Every build writes uiguide.bundle.json: your windows, controls, UI texts, and which control opens which window.
In uiguide.map.json you describe what the code cannot say: what a control does (action), when it can be used (enabledWhen), the usual tasks (flows).
More, when you need it:
UiGuide.SetContext("orderOpen", true): state your UI does not show. State only, never user data.uiguide record --goal "export the orders": records a task while you do it once.uiguide test: checks the answers to your usual questions.
The language. The assistant follows the language your UI shows, also when the user picks another one. The answer is in the language of the question, with the button names as the user sees them.
Settings in uiguide.json: "language" (fixes the language), "position": "bottom-left", "theme", "texts", "autoStart": false (then call UiGuide.Attach(window) yourself).
API: UiGuide.Attach, Detach, SetLanguage, SetToken, SetContext, RemoveContext, ClearContext, MapScreen, IsAttached.
Updating and removing
- Update: the build tells you when a newer version is out (warning
UIG002). Update the package like any other. - Remove: run
uiguide removein the project folder. It removes the package,uiguide.json, the generated files, their copies inbinandobj, and the registration on the server on your computer. If you only uninstall the package, theuiguide.*files stay: delete them yourself.
Limits
- Windows 10 or 11.
- The chat panel needs the Microsoft Edge WebView2 Runtime. If it is missing, the user is offered the download.
- The automatic start needs C# 9.
- One window at a time has the assistant: the main window, or a login window shown before it.
- The build machine needs the .NET 8 runtime or newer, also for .NET Framework projects.
Full guide: https://github.com/DomitorAI/ui-guide-agent/blob/main/docs/desktop.md
Free to use without limits, also commercially. You may ship the client libraries, unmodified, inside your own application, also one you sell. Selling UiGuide Agent itself, or offering it as a paid hosted service, needs the author's permission. Provided as is, without warranty. https://github.com/DomitorAI/ui-guide-agent
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0-windows7.0 is compatible. net9.0-windows was computed. net10.0-windows was computed. |
| .NET Framework | net48 is compatible. net481 was computed. |
-
.NETFramework 4.8
- Microsoft.Web.WebView2 (>= 1.0.4258.31)
- System.Text.Json (>= 10.0.12)
-
net8.0-windows7.0
- Microsoft.Web.WebView2 (>= 1.0.4258.31)
- System.Text.Json (>= 10.0.12)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.