diff --git a/src/Vantage.App/App.axaml b/src/Vantage.App/App.axaml
new file mode 100644
index 0000000..a71cf33
--- /dev/null
+++ b/src/Vantage.App/App.axaml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Vantage.App/App.axaml.cs b/src/Vantage.App/App.axaml.cs
new file mode 100644
index 0000000..c6da8fb
--- /dev/null
+++ b/src/Vantage.App/App.axaml.cs
@@ -0,0 +1,36 @@
+using Avalonia;
+using Avalonia.Controls.ApplicationLifetimes;
+using Avalonia.Markup.Xaml;
+using Microsoft.Extensions.DependencyInjection;
+using Vantage.App.ViewModels;
+using Vantage.App.Views;
+
+namespace Vantage.App;
+
+public partial class App : Application
+{
+ public override void Initialize() => AvaloniaXamlLoader.Load(this);
+
+ public override void OnFrameworkInitializationCompleted()
+ {
+ var services = new ServiceCollection();
+ services.AddVantageApp(VantageAppServices.ResolveProviderMode());
+ var provider = services.BuildServiceProvider();
+
+ if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
+ {
+ var viewModel = provider.GetRequiredService();
+ desktop.MainWindow = new MainWindow { DataContext = viewModel };
+ desktop.ShutdownRequested += (_, _) => viewModel.StopMonitoring();
+ _ = StartAsync(viewModel);
+ }
+
+ base.OnFrameworkInitializationCompleted();
+ }
+
+ private static async Task StartAsync(MainWindowViewModel viewModel)
+ {
+ await viewModel.InitializeAsync();
+ viewModel.StartMonitoring();
+ }
+}
diff --git a/src/Vantage.App/Assets/.gitkeep b/src/Vantage.App/Assets/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/Vantage.App/Program.cs b/src/Vantage.App/Program.cs
new file mode 100644
index 0000000..d4f97b8
--- /dev/null
+++ b/src/Vantage.App/Program.cs
@@ -0,0 +1,16 @@
+using Avalonia;
+
+namespace Vantage.App;
+
+internal static class Program
+{
+ [STAThread]
+ public static void Main(string[] args) => BuildAvaloniaApp()
+ .StartWithClassicDesktopLifetime(args);
+
+ public static AppBuilder BuildAvaloniaApp() => AppBuilder
+ .Configure()
+ .UsePlatformDetect()
+ .WithInterFont()
+ .LogToTrace();
+}
diff --git a/src/Vantage.App/Vantage.App.csproj b/src/Vantage.App/Vantage.App.csproj
new file mode 100644
index 0000000..529b0ee
--- /dev/null
+++ b/src/Vantage.App/Vantage.App.csproj
@@ -0,0 +1,32 @@
+
+
+
+ WinExe
+ net6.0
+ enable
+ enable
+ latest
+ true
+ app.manifest
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Vantage.App/app.manifest b/src/Vantage.App/app.manifest
new file mode 100644
index 0000000..6fdbfd8
--- /dev/null
+++ b/src/Vantage.App/app.manifest
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+ true/pm
+ permonitorv2,permonitor
+
+
+