A lightweight macOS desktop app for managing long-running shell commands. Start, stop, and monitor your dev servers, build watchers, and background processes from a single place.
- Process management — Start, stop, and restart long-running commands with a click
- Live logs — Stream stdout/stderr output in real-time with a scrollable log viewer
- Health checks — Configure HTTP health check URLs to monitor service status
- System tray — Runs in the background with a tray menu showing active commands
- Auto-start — Mark commands to start automatically when Termina launches
- Notifications — Get notified when processes exit unexpectedly
- Launch at login — Optional auto-start with macOS via LaunchAgent
- Global shortcut — Toggle the window with
Cmd+Shift+Tfrom anywhere - One-time commands — Run-once commands alongside long-running processes
- Environment variables — Set custom env vars per command
# Clone the repo
git clone <repo-url>
cd Termina
# Install frontend dependencies
npm install# Start the app in dev mode (Vite dev server + Tauri app)
npm run tauri devThis starts the Vite dev server on :1420 and launches the Tauri window with hot reload.
# Build the .app bundle and .dmg
npm run tauri buildThe output is in src-tauri/target/release/bundle/macos/.
- Click + New Command to add a command
- Give it a name, working directory, and the shell command to run
- Choose Process (long-running) or One-time (run once)
- Optionally set a health check URL and enable auto-start
- Click the play button on a command card to start it
- View logs by clicking on a command card
- Close the window — Termina keeps running in the system tray
- Frontend: Preact + TypeScript + Preact Signals
- Backend: Rust + Tauri 2
- Build: Vite + Cargo
MIT
