Command line
Helix.App.exe accepts commands that drive the copy of Helix already running. It is meant for Task Scheduler, a backup job's pre- and post-scripts, or a Stream Deck button.
The flags are Windows only: on macOS, a second launch of a running app does not pass its arguments on. Links work on both.
Commands
--status list every drive and whether it is up
--connect-all connect every drive
--disconnect-all disconnect every drive
--connect <drive> connect one drive, by letter or name
--disconnect <drive> disconnect one drive, by letter or name
--connect-group <name> connect a drive group
--disconnect-group <name> disconnect a drive group
--wake <drive> send that drive's NAS a wake-up packet
--show bring the window forward
--quit close Helix
--help print thisA drive is named by its letter (Z, Z:) or by its name, case-insensitively. If two drives share a name, Helix refuses and lists their letters so you can use one. A group is named by its name.
Helix.App.exe --connect Z
Helix.App.exe --connect "Photos"
Helix.App.exe --disconnect-group Office--status prints one line per drive:
Y: Backups disconnected
Z: Photos connectedIt needs a running, unlocked Helix
Commands go to the instance that is already running, over a named pipe only your Windows account can open. There is no way to run them with Helix closed, because every drive's credentials are behind your account password. A command is refused when:
| Situation | Reply |
|---|---|
| Helix is not running | Helix is not running. Start it and sign in, then try again. |
| Nobody is signed in | Helix is not signed in. Sign in, then try again. |
| The idle lock is up | Helix is locked. Unlock it, then try again. |
--help and a mistyped flag are answered without a running Helix.
Launching Helix.App.exe with no arguments while Helix is running brings its window forward, the same as --show, even when it is hidden in the tray.
Output and exit codes
| Exit code | Meaning |
|---|---|
0 | success; the reply is written to standard output |
1 | failure; the reply is written to standard error |
Replies are in English, whatever language the app is set to, so scripts can rely on them.
Waiting for the result
Helix.App.exe is a GUI program, so PowerShell and cmd do not wait for it by default: the prompt returns at once and the exit code is lost. Ask them to wait:
# PowerShell
$p = Start-Process Helix.App.exe -ArgumentList '--connect-all' -Wait -PassThru
$p.ExitCode
# or pipe the output, which also makes PowerShell wait
Helix.App.exe --status | Out-String:: cmd
start /wait "" Helix.App.exe --connect-all
echo %ERRORLEVEL%A connect can take up to about thirty seconds per drive when a NAS is slow to answer, so allow for that in scripts with a time limit.
Links
Every command is also a helix:// link, which is what a Stream Deck button, a browser bookmark or a macOS Shortcut can open:
helix://status
helix://connect-all
helix://disconnect-all
helix://connect/Z
helix://disconnect/Photos
helix://connect-group/Office
helix://disconnect-group/Home%20Lab
helix://wake/Z
helix://showSpaces in a name are written %20. Helix registers the scheme for your Windows account each time it starts, so it keeps pointing at the right copy after an update; on macOS it comes with the app.
A link is answered in the window rather than in a console: the outcome appears as a notification from the tray, or as a banner when the tray icon is off. The same rules apply as for the flags — Helix has to be running, signed in and unlocked. A link opened while Helix is closed just starts it.
Any web page can ask your browser to open a link, so a link that disconnects or quits does not act straight away: Helix brings its window forward and asks first. Use the flags from a script when you want a disconnect without the question.