diff --git a/src/TeamsISO.App/HelpWindow.xaml b/src/TeamsISO.App/HelpWindow.xaml
new file mode 100644
index 0000000..244bbee
--- /dev/null
+++ b/src/TeamsISO.App/HelpWindow.xaml
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ forge.wilddragon.net/zgaetano/teamsiso
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/TeamsISO.App/HelpWindow.xaml.cs b/src/TeamsISO.App/HelpWindow.xaml.cs
new file mode 100644
index 0000000..5a79f40
--- /dev/null
+++ b/src/TeamsISO.App/HelpWindow.xaml.cs
@@ -0,0 +1,32 @@
+using System.Diagnostics;
+using System.Windows;
+
+namespace TeamsISO.App;
+
+///
+/// F1 cheat-sheet dialog. Lists keyboard shortcuts, file locations, and a
+/// link to the public documentation. Same chromeless style as the rest of
+/// the host's modal dialogs.
+///
+public partial class HelpWindow : Window
+{
+ public HelpWindow() => InitializeComponent();
+
+ private void OnClose(object sender, RoutedEventArgs e) => Close();
+
+ private void OnDocsClick(object sender, RoutedEventArgs e)
+ {
+ try
+ {
+ Process.Start(new ProcessStartInfo
+ {
+ FileName = "https://forge.wilddragon.net/zgaetano/teamsiso",
+ UseShellExecute = true,
+ });
+ }
+ catch
+ {
+ // Best-effort browser launch
+ }
+ }
+}