diff --git a/examples/apps/screenpipe-app-tauri/src-tauri/src/main.rs b/examples/apps/screenpipe-app-tauri/src-tauri/src/main.rs
index 4fadb0269b..d19298fc56 100755
--- a/examples/apps/screenpipe-app-tauri/src-tauri/src/main.rs
+++ b/examples/apps/screenpipe-app-tauri/src-tauri/src/main.rs
@@ -23,6 +23,14 @@ use tauri_plugin_autostart::MacosLauncher;
 use tauri_plugin_autostart::ManagerExt;
 use tauri_plugin_shell::process::CommandChild;
 
+
+use tauri::{
+    menu::{MenuBuilder, MenuItemBuilder},
+    tray::{MouseButton, MouseButtonState, TrayIconBuilder, TrayIconEvent},
+    utils::assets::EmbeddedAssets
+};
+use tauri::image::Image;
+
 mod analytics;
 
 use crate::analytics::start_analytics;
@@ -135,6 +143,37 @@ async fn main() {
                 let _ = File::create(path.clone()).unwrap();
             }
 
+            // Add System Tray 
+            let toggle = MenuItemBuilder::with_id("toggle", "Screenpipe").build(app)?;
+            let menu = MenuBuilder::new(app).items(&[&toggle]).build()?;
+
+            let icon_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
+                .join("icons")
+                .join("32x32.png");
+
+            let icon = Image::from_path(icon_path).expect("Failed to load icon");
+
+            let _tray = TrayIconBuilder::new()
+                .menu(&menu)
+                .icon(icon)
+                .on_menu_event(move |_app, event| match event.id().as_ref() {
+                    "toggle" => {
+                        println!("toggle clicked");
+                    }
+                    _ => (),
+                })
+                .on_tray_icon_event(|_tray, event| {
+                    if let TrayIconEvent::Click {
+                        button: MouseButton::Left,
+                        button_state: MouseButtonState::Up,
+                        ..
+                    } = event
+                    {
+                        println!("tray closed");
+                    }
+                })
+                .build(app)?;
+
             let stores = app.app_handle().state::<StoreCollection<Wry>>();
 
             // Initialize the store with default values if it doesn't exist