diff --git a/App/Views/Pages/SignInTokenPage.xaml b/App/Views/Pages/SignInTokenPage.xaml
index 8613f19..e21b46b 100644
--- a/App/Views/Pages/SignInTokenPage.xaml
+++ b/App/Views/Pages/SignInTokenPage.xaml
@@ -62,8 +62,9 @@
                 Grid.Row="2"
                 HorizontalAlignment="Stretch"
                 PlaceholderText="Paste your token here"
+                KeyDown="PasswordBox_KeyDown"
                 LostFocus="{x:Bind ViewModel.ApiToken_FocusLost, Mode=OneWay}"
-                Password="{x:Bind ViewModel.ApiToken, Mode=TwoWay}" />
+                Password="{x:Bind ViewModel.ApiToken, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
 
             <TextBlock
                 Grid.Column="1"
diff --git a/App/Views/Pages/SignInTokenPage.xaml.cs b/App/Views/Pages/SignInTokenPage.xaml.cs
index 1219508..f471dcd 100644
--- a/App/Views/Pages/SignInTokenPage.xaml.cs
+++ b/App/Views/Pages/SignInTokenPage.xaml.cs
@@ -1,5 +1,6 @@
 using Coder.Desktop.App.ViewModels;
 using Microsoft.UI.Xaml.Controls;
+using Windows.System;
 
 namespace Coder.Desktop.App.Views.Pages;
 
@@ -17,4 +18,13 @@ public SignInTokenPage(SignInWindow parent, SignInViewModel viewModel)
         ViewModel = viewModel;
         SignInWindow = parent;
     }
+
+    private async void PasswordBox_KeyDown(object sender, Microsoft.UI.Xaml.Input.KeyRoutedEventArgs e)
+    {
+        if (e.Key == VirtualKey.Enter)
+        {
+            await ViewModel.TokenPage_SignIn(SignInWindow);
+            e.Handled = true;
+        }
+    }
 }
diff --git a/App/Views/Pages/SignInUrlPage.xaml b/App/Views/Pages/SignInUrlPage.xaml
index 76f6a3a..e2fef1a 100644
--- a/App/Views/Pages/SignInUrlPage.xaml
+++ b/App/Views/Pages/SignInUrlPage.xaml
@@ -48,7 +48,8 @@
                 PlaceholderText="https://coder.example.com"
                 Loaded="{x:Bind ViewModel.CoderUrl_Loaded, Mode=OneWay}"
                 LostFocus="{x:Bind ViewModel.CoderUrl_FocusLost, Mode=OneWay}"
-                Text="{x:Bind ViewModel.CoderUrl, Mode=TwoWay}" />
+                Text="{x:Bind ViewModel.CoderUrl, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
+                KeyDown="TextBox_KeyDown"/>
 
             <TextBlock
                 Grid.Column="1"
diff --git a/App/Views/Pages/SignInUrlPage.xaml.cs b/App/Views/Pages/SignInUrlPage.xaml.cs
index 175a8c2..3ba4fe3 100644
--- a/App/Views/Pages/SignInUrlPage.xaml.cs
+++ b/App/Views/Pages/SignInUrlPage.xaml.cs
@@ -1,5 +1,6 @@
 using Coder.Desktop.App.ViewModels;
 using Microsoft.UI.Xaml.Controls;
+using Windows.System;
 
 namespace Coder.Desktop.App.Views.Pages;
 
@@ -17,4 +18,13 @@ public SignInUrlPage(SignInWindow parent, SignInViewModel viewModel)
         ViewModel = viewModel;
         SignInWindow = parent;
     }
+
+    private void TextBox_KeyDown(object sender, Microsoft.UI.Xaml.Input.KeyRoutedEventArgs e)
+    {
+        if (e.Key == VirtualKey.Enter)
+        {
+            ViewModel.UrlPage_Next(SignInWindow);
+            e.Handled = true;
+        }
+    }
 }