Configuration
The defaults work out of the box — no config needed to start.
When you do want to tweak something, every setting is available three ways, in priority order: a command-line flag (e.g. --token), an ARGUS_* environment variable, or a key in the YAML config file — otherwise the built-in default applies. A set flag wins over an env var, which wins over the file.
Run argus <command> --help for the settings each command accepts — that's the authoritative list.
Config file
Argus reads $XDG_CONFIG_HOME/argus/config.yaml by default (typically ~/.config/argus/config.yaml). Point at a different file with --config or $ARGUS_CONFIG. A missing default file is fine; a missing explicit --config path is an error.
argus config dir prints the config directory path — handy in scripts or when you can't remember where it lives:
argus config dirA minimal example:
# ~/.config/argus/config.yaml
token: shared-secret # gateway token — see Multi Machine
push:
desktop:
enabled: true # native desktop notifications on this node (macOS, opt-in)
log:
level: info # trace | debug | info | warn | error | fatal
format: pretty # pretty | jsonDesktop notifications
push.desktop.enabled (default false) opts this node into native macOS desktop notifications: when a session starts waiting on you (permission prompt, question, plan, or a finished turn), this machine pops a banner, and clicking it focuses that session's tmux pane. Other platforms are a no-op.
It is config-file / env only — there is no command-line flag:
push:
desktop:
enabled: trueor ARGUS_PUSH_DESKTOP_ENABLED=true.
Renderers
Argus renders through whichever of three backends it finds, in this order — and the experience differs a lot between them, so installing the preferred one is worth it:
alerter— preferred, best experience. A self-contained binary; nothing to configure. You get a clickable banner branded with the Argus icon, and repeat alerts for the same session replace the previous one instead of stacking. Install it onPATH:shbrew install vjeantet/tap/alerterHammerspoon — clickable, extra setup. Used only if
alerteris absent. Requires both thehsCLI onPATHand the IPC module enabled — addrequire("hs.ipc")to your~/.hammerspoon/init.luaand reload the config. Without IPC loaded,hs -cfails (exit 69, "can't access Hammerspoon message port") and argus falls back to the plain banner below.osascript— always available, not clickable. The built-in fallback when neither of the above is usable. You still get a notification, but clicking it does nothing (no jump to the session).
So: install alerter for the full click-to-focus experience. Everything degrades gracefully — a missing tool, a failed render, or a non-macOS host never breaks anything, it just drops to the next best (or silently no-ops).
Enable it on each machine you sit in front of; leave it off on headless boxes.
Mobile notifications
push.mobile.delay (default 0s) sets a grace period before a mobile push fires. With the default, mobile pushes are instant — the same moment in-app and desktop notifications go out.
Set it to a non-zero duration to hold mobile pushes back:
push:
mobile:
delay: 30sWhen the delay elapses, the push fires only if the session is still awaiting input or idle — so answering at your desk within the window keeps the phone quiet. Desktop and in-app notifications are always instant.
