English | 简体中文
StackHub is a native macOS menu bar app built with SwiftUI. Run commands and shell scripts, manage local services, and monitor GitHub Actions and GitLab CI from one panel.
| Local projects and services | CI activity | Full-panel service logs |
|---|---|---|
![]() |
![]() |
![]() |
English interface with sample data.
- Local services — Start, stop, and restart project services with custom commands, working directories, and ports. Commands load your
.zshrcso tools such as jenv and nvm can configure the environment. - Per-service runtimes — Select an installed JDK or Node.js version, or specify a custom path. No version manager required.
- Live logs — View service output with ANSI colors in a dedicated log view.
- CI monitoring — Follow GitHub Actions and multiple GitLab instances. Each refreshes independently and keeps cached results when offline.
- Secure credentials — Store GitHub and GitLab tokens in macOS Keychain.
- In-app updates — Check for updates hourly. Click the blue download icon when an update is available to install and restart.
- Bilingual interface — Switch between English and Simplified Chinese.
Requires macOS 14 or later. Release downloads are for Apple Silicon.
- Download the ZIP from GitHub Releases.
- Extract it and move
StackHub.appto Applications. - Launch StackHub and click its menu bar icon. Add local services in Projects, or connect GitHub and GitLab in CI.
Configured ports are freed before a service starts; use only ports belonging to that service. Quitting or installing an update stops managed services; start them again when needed.
Expand Runtime environment when editing a service. Default mode follows your system shell configuration without reading project version files, overriding runtimes, or logging default runtimes. Select an installed version or custom path to override it; the panel shows the resolved version, path, and source.
JDKs, Homebrew Node.js, and installed jenv/nvm versions are detected locally; custom paths work too. Missing requested versions prevent startup, without downloading or silently choosing another version. Changes apply after restarting the service and do not change other services or your terminal environment.
Requires Xcode and Swift 5.9 or later.
cd swift-prototype
swift run StackHubTo build an app bundle, use scripts/package-app.sh.


