Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ComputerBar

ComputerBar is a macOS menu bar monitor for local and remote machines. It shows compact CPU, memory, optional Linux swap, and disk bars directly in the menu bar, then opens a larger popover with detailed host status. The Windows branch adds a native tray version with the same host-monitoring model.

ComputerBar menu bar and popover

Features

  • Monitor this Mac and remote Linux hosts over SSH.
  • Display multiple selected machines in the menu bar.
  • Stack CPU, memory, optional Linux swap, and disk usage bars per machine to keep the menu bar compact.
  • Use the popover for detailed CPU, memory, Linux swap when enabled, disk, load average, uptime, and last-updated status.
  • Publish widget snapshots for the desktop widget.
  • Refresh in the background on the configured interval.

Requirements

macOS

  • macOS 14 or newer.
  • Xcode command line tools.
  • xcodegen for building the app bundle with the widget extension.
  • SSH access configured in ~/.ssh/config for remote hosts.

Install xcodegen with:

brew install xcodegen

Windows

  • Windows 10/11 desktop.
  • .NET 10 SDK.
  • OpenSSH client available on PATH for remote hosts.
  • SSH aliases configured in %USERPROFILE%\.ssh\config.

Build And Test

Run tests:

swift test

Run Windows tests:

dotnet test Windows\ComputerBar.Windows.sln

Build, install, and launch the app:

./scripts/install-app.sh

The script builds ComputerBar.app, installs it to /Applications/ComputerBar.app, registers the widget extension, and launches the app. It selects a local Apple Development identity automatically; set CODESIGN_IDENTITY in the local shell to override it. The Team ID is derived during the build and is never stored in the repository.

Usage

Open the menu bar item to view monitored machines. Use Settings... to select which machines appear in the menu bar and adjust the refresh interval.

Remote machines are discovered from SSH config aliases. Each selected machine contributes one compact menu bar element with three stacked bars by default:

  • cpu
  • mem
  • dsk

Linux hosts with SwapTotal > 0 add a fourth virtual-memory bar and a Virtual Memory Usage row in the popover and widget.

On Windows, the notification area only gives the app a square tray icon. ComputerBar therefore shows one selected machine as a large usage pie in the tray icon, using the highest current CPU, memory, Linux swap, or disk usage. The popover still shows all selected machines with full CPU, memory, Linux swap when enabled, disk, load, uptime, and updated status.

Repository Layout

  • Sources/ComputerBar/ - macOS app, menu bar controller, settings, SSH monitoring, and UI.
  • Sources/ComputerBarShared/ - shared widget snapshot models and persistence.
  • Sources/ComputerBarWidget/ - WidgetKit extension.
  • Tests/ComputerBarTests/ - app model, SSH parsing, monitor parsing, and widget snapshot tests.
  • Resources/ - app icons, entitlements, plists, and screenshots.
  • Windows/ - Windows native WPF + NotifyIcon implementation and .NET tests.
  • scripts/install-app.sh - build, sign, install, register, and launch workflow.

About

Show Mac/LinuxServer status(cpu mem disk) in menu bar

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages