Hasty Briefsbeta

I built a tiny mac app to monitor and manage my development processes

17 days ago
  • #macOS
  • #process-management
  • #development-tools
  • A lightweight macOS status bar app for monitoring and managing development processes on ports 2000-6000.
  • Real-time monitoring using `lsof` commands every 5 seconds.
  • Visual status bar icon with color-coded center indicating process count (green=0, red=1-9, orange=10+).
  • Dynamic context menu updates every 3 seconds with current processes and kill options.
  • One-click process killing for individual or all processes.
  • Safe process termination using SIGTERM → SIGKILL strategy.
  • Built with `winit` event loop for macOS compatibility.
  • Graceful error handling for permission errors and process failures.
  • Pure status bar application with no main window.
  • Status bar icon provides instant visual feedback with tooltip for exact process count.
  • Kill All Processes option terminates all detected development processes.
  • Individual process entries in the format "Kill: Port [port]: [process] (PID [pid])".
  • Quit option to exit the application.
  • Requirements: macOS 10.15+, Rust 1.70+, `lsof` command.
  • Installation via cloning repository and building with `cargo build --release`.
  • Run the application using `./run.sh` or manually with `cargo run --release`.
  • Main thread handles UI events and menu interactions with `winit` event loop.
  • Process monitor scans for processes every 5 seconds using `lsof`.
  • Menu updates every 3 seconds when processes change.
  • Process killing runs in background threads for UI responsiveness.
  • Uses `lsof -ti :PORT -sTCP:LISTEN` to detect processes.
  • SIGTERM for graceful termination, SIGKILL if process doesn’t terminate within 500ms.
  • Monitors ports 2000-6000, covering common development server ports.
  • Clean white background with color-coded center for minimal aesthetic.
  • Dependencies include `tray-icon`, `winit`, `nix`, `crossbeam-channel`, `tokio`, `anyhow`, `serde`.
  • Project structure includes `main.rs`, `lib.rs`, `app.rs`, `process_monitor.rs`, `tray_menu.rs`, `types.rs`.
  • Debugging tips for permission errors, process detection issues, and startup failures.
  • Licensed under FSL-1.1-MIT License.
  • Contribution guidelines include forking, creating feature branches, making changes, adding tests, and submitting pull requests.
  • Privacy considerations: no data collection, no network communication, no logging of sensitive information.
  • Security considerations: limited to terminating processes you own, no access to system processes or other users' processes.