Zlack is a lightweight, optimized desktop wrapper for Slack, built with Tauri. It provides a native application experience with robust desktop notifications, handling deep links and window focus correctly even when minimized.
- Native Desktop Notifications: Integrated directly with Windows native toast notifications.
- Smart Context: Extracts
Team IDandChannel IDfrom Slack's console logs to ensure notifications take you to the exact right place. - Background Reliability: Includes a custom rust backend to ensure clicking a notification properly restores the window from the system tray and focuses it.
- Multi-Workspace Support: Handles navigation for multiple Slack workspaces via standard webview login.
- Lightweight: Uses Tauri's minimal footprint (WebView2 on Windows) instead of a full Chromium bundle (Electron).
- Frontend: Vanilla HTML/JS (Slack Web Client) +
preload.jsfor bridge. - Backend: Rust (Tauri) for system integration.
- Notification Engine:
tauri-winrt-notificationfor advanced Windows Toast features (Inputs, Activation Callbacks).
Download the installer for your OS:
| Platform | File |
|---|---|
| Windows | Zlack.exe or Zlack_${version}_window.msi |
| macOS | Zlack_${version}_macos.dmg |
- Run the installer.
- Launch Zlack.
- Log in to your Slack workspaces.
Install Dependencies:
npm installRun in Development Mode:
npm run tauri devNote: In dev mode, clicking notifications may not reliably restore the window due to Windows AUMID restrictions. This works fully in the built release.
Build for Production (Windows):
npm run build:dist:windowsThis will compile the application and place the installer (.exe and .msi) into the dists/ folder.
Build for Production (macOS/Linux):
npm run build:dist:unixThis requires running on a Mac or Linux machine. It will generate .dmg/.app (macOS) or .deb/.AppImage (Linux) in the dists/ folder.
Slack's web client sends telemetry traces to /traces/v1/list_of_spans. Zlack's preload.js intercepts this network traffic:
- Captures
notification:sentspans to reliably identify theTeam IDandChannel IDassociated with the event. - Intercepts the browser's
NotificationAPI request. - Merges the content with the captured network context and sends it to the Rust backend.
Clicking a notification on Windows while an app is minimized is notoriously tricky due to OS foreground rules. Zlack solves this by:
- Main Thread Architecture: Creates notification objects directly on the main thread to ensure proper COM listener persistence.
- Staged Restoration: Explicitly calls
set_skip_taskbar(false),unminimize(), andshow()in the correct order. - Focus Hack: Uses a temporary "Always On Top" toggle to force the window into the foreground even if Windows tries to suppress it.
MIT