ArgusDesk is a compact native macOS desktop companion for monitoring the local Mac and remote Linux servers.
It provides a transparent desktop overlay, a menu bar health summary, and optional notifications. Remote monitoring uses existing SSH keys and read-only commands; no server-side agent or stored SSH password is required.
- Local Mac hostname, macOS version, uptime, battery, CPU, memory, disk, and network status.
- Remote SSH reachability, ping latency, HTTP status, load average, root disk, and memory checks.
- nginx, MariaDB, PHP-FPM, and memcached status with service memory and normalized CPU usage.
OK,WARNING,ERROR, andUNKNOWNseverity states.- Menu bar summary with refresh, overlay, Preferences, and quit actions.
- Configurable refresh intervals and optional state-change notifications.
Notifications require a standard macOS application bundle. They remain disabled when ArgusDesk is run directly through Swift Package Manager.
- macOS 14 or later.
- Swift 6 toolchain for source builds.
- Existing key-based SSH access for each monitored server.
- Standard remote Linux utilities used by the configured checks, including
systemctl,/proc,awk,df, andfree.
ArgusDesk uses key-only, noninteractive SSH. It does not store or prompt for SSH passwords.
Copy servers.example.json to servers.json, then replace the placeholder
values with local server details. servers.json is ignored by git.
{
"remote_refresh_seconds": 60,
"local_refresh_seconds": 5,
"servers": [
{
"name": "example",
"host": "example.com",
"ssh_user": "username",
"ssh_port": 22,
"http_url": "https://example.com",
"http_user_agent": "ArgusDesk/0.7",
"enabled_checks": [
"ssh",
"ping",
"http",
"load",
"disk",
"memory",
"nginx",
"mariadb",
"php_fpm",
"memcached"
]
}
]
}Defaults:
ssh_port:22remote_refresh_seconds:60local_refresh_seconds:5http_user_agent: curl default when omitted
Refresh intervals can also be changed in Preferences. Preferences override the JSON refresh intervals and are stored by macOS.
Clone the repository, create local configuration, then build and run ArgusDesk:
git clone https://github.com/oxy86/argusdesk-macos.git
cd argusdesk-macos
cp servers.example.json servers.json
# Edit servers.json with your local server details.
swift build
swift run ArgusDeskArgusDesk runs as a Swift Package Manager executable. Keep the terminal session
open while the app is running. Stop it with Control-C or choose Quit from the
menu bar item.
- Remote commands are read-only and run through
/usr/bin/ssh. - SSH uses
BatchMode=yes,PasswordAuthentication=no, and a connection timeout. - HTTP checks run locally through
/usr/bin/curl. - Private hosts, usernames, and credentials belong only in local configuration.
- ArgusDesk does not require a remote monitoring agent or health endpoint.
ArgusDesk is available under the MIT License.