diff --git a/python_payload/st3m/run.py b/python_payload/st3m/run.py
index 68a3c4613bd32958648cde586064efe33f402718..b5d2b79098cb2b1e6649e947e1e8c9ef3272b645 100644
--- a/python_payload/st3m/run.py
+++ b/python_payload/st3m/run.py
@@ -11,7 +11,12 @@ from st3m.ui.menu import (
 from st3m.ui.elements import overlays
 from st3m.ui.view import View, ViewManager, ViewTransitionBlend
 from st3m.ui.elements.menus import SimpleMenu, SunMenu
-from st3m.application import BundleManager, BundleMetadata, MenuItemAppLaunch
+from st3m.application import (
+    BundleManager,
+    BundleMetadata,
+    MenuItemAppLaunch,
+    ApplicationContext,
+)
 from st3m.about import About
 from st3m import settings, logging, processors, wifi
 
@@ -125,6 +130,10 @@ def run_view(v: View) -> None:
     reactor.run()
 
 
+def run_app(klass):
+    run_view(klass(ApplicationContext()))
+
+
 def _yeet_local_changes() -> None:
     os.remove("/flash/sys/.sys-installed")
     machine.reset()