Command Line, Stream Deck & Macro Pads
Everything SlyPilot can do from a keyboard shortcut, a Touch Bar button or your voice can also be started from a command line. That makes it easy to put
Everything SlyPilot can do from a keyboard shortcut, a Touch Bar button or your voice can also be started from a command line. That makes it easy to put on a Stream Deck key, a macro-pad button, a Windows shortcut, a script or a scheduled task. This page covers the switches, the voice-command-by-text route (/say), the small fast client SlyCtl.exe, and examples for the common tools.
If you are looking for AI coding agents and the Model Context Protocol, that is a separate, gated interface: see MCP & Agent Automation and the caution below.
1. How It Works
- You run
SlyPilot.exe <switch> [parameters](orSlyCtl.exe, see below). The command is handed to the SlyPilot that is already running in your tray, and the command-line program ends. Nothing opens, nothing is printed. - If SlyPilot is not running, running the command starts it. The command itself may need to be sent again once SlyPilot is up.
- A leading
/or-is optional:/next,-nextandnextare the same. Switches are not case-sensitive. A bare number is a desktop jump:SlyPilot.exe 3means/goto 3. - The exit code does not tell you whether the action worked. Check the effect (the desktop changed, the window moved). For
/sayyou can read the answer inlogs\crash.log(section 4). - Put a path or a parameter that contains spaces in double quotes:
SlyPilot.exe snap "focus center".
2. SlyPilot.exe or SlyCtl.exe?
SlyPilot.exe | SlyCtl.exe | |
|---|---|---|
| What it is | The whole program. Every start loads the full program before it can hand your command over. | A tiny command-line client with no window. It only finds the running SlyPilot and hands the command over. |
| Speed | Slower to start, and slower still when the PC is busy. | Much quicker to start, because it loads nothing else. Best for buttons you press often. |
/say <voice command> | Yes | Yes (delivered directly) |
| Every other switch | Yes | Passed on to SlyPilot.exe next to it, with its exit code |
agent and mcp | Yes (these print their answer) | No: it has no console and cannot show output. Use SlyPilot.exe. |
| Where it is | Everywhere SlyPilot is | Next to SlyPilot.exe: it is included in the setup program and in the portable zip |
Exit codes of SlyCtl.exe: 0 when it delivered the command, the exit code of SlyPilot.exe when it passed the command on, and 2 when it could not find SlyPilot.exe in its own folder (keep the two files together).
You never need SlyCtl.exe: every example below works with SlyPilot.exe too. If you only have SlyPilot.exe (for example you copied the single file somewhere), use that.
3. The Switches
These are the most useful ones. The complete list ships with the setup program as skills\slypilot\references\cli-commands.md in the install folder, and SlyPilot.exe /help opens a window that lists them (it waits for you to click OK, so do not put it on a button or in a script).
Notes column: window in front = acts on the window you were working in; opens a window = something appears that you close yourself; system = changes volume, display, power or similar; careful = disruptive or hard to undo.
Virtual desktops and workspaces
| Command | What it does | Notes |
|---|---|---|
/next, /prev | Next / previous desktop (wraps around) | |
/last | Back to the previously active desktop | |
/goto <N>, or just <N> | Switch to desktop N (1-based) | |
/move <N> | Move the active window to desktop N and follow it | window in front |
/fling <N> | Send the active window to desktop N and stay here | window in front |
/create | Create a new desktop | |
/remove | Remove the current desktop (its windows go to the previous one; no confirmation on the command line) | careful |
/rename | Open the rename and emoji badge prompt | opens a window |
/matrix | Overview card of all desktops | opens a window |
/gather, /gather-from <N> | Bring every window (or those of desktop N) to this desktop | window in front |
/clean | Minimise / restore the windows of this desktop | window in front |
/cycle, /cycle-prev | Focus the next / previous window across all desktops | |
/peeker [N] | Window Peeker for desktop N | opens a window |
/jump | Quick Jump menu | opens a window |
/find <text> | Jump to the window whose title or program contains the text | |
/hud | Flash the current-desktop indicator | |
/ws [name] | Restore the workspace name (no name: the workspaces menu) | careful: moves and may start windows |
/ws-save [name] | Save the current layout as workspace name | |
/ws-last | Restore the automatic last-session layout | careful |
/scene dev, meeting, reading | Arrange the windows for a scene | window in front |
Windows
| Command | What it does | Notes |
|---|---|---|
/snap <zone> | Snap to a zone: left right top bottom max center left13 center13 right13 left23 right23 left14 center12 right14 topleft topright bottomleft bottomright nextmon prevmon, or the name of one of your own zones (snap "focus center"). With no zone it opens the Snap Layouts card. | window in front |
/nextmon, /prevmon | Move the window to the next / previous monitor | window in front |
/tile two, three, four, cascade | Auto-tile the windows of this desktop | window in front |
/pin, /pin-app | Pin the window (or every window of the program) to all desktops | window in front |
/alwaysontop, /ghost, /opacity <10-100> | Always on top, 80 % opacity, or a set opacity | window in front |
/focus-mode [off] | Minimise everything except the active window (off restores) | window in front |
/stash, /unstash | Hide the window on a stack, bring it back | window in front |
/rescue | Pull off-screen windows back onto a monitor | |
/close-others | Close the other windows of this desktop | careful |
/kill-app <program> [force] | Close a program politely; with force, end the process | careful |
Panels and tools
| Command | What it does | Notes |
|---|---|---|
/touch | Show / hide the Touch Bar | |
| `/dock | bottom\ | left\ |
/radial | The radial menu | opens a window |
/snap | The Snap Layouts card | opens a window |
/palette | The command palette | opens a window |
/clip-picker | The clipboard history list | opens a window |
/copy-text | Drag a rectangle on screen; its text is copied to the clipboard (offline OCR) | opens a window |
/ask-ai | Take the selection and open the palette in AI mode | opens a window |
/settings, /shortcuts | Settings; the shortcuts window | opens a window |
/keyboard | Windows touch keyboard | opens a window |
/suspend | Pause / resume all SlyPilot hotkeys (gaming mode) | system |
Sound, display and system
| Command | What it does | Notes |
|---|---|---|
| `/vol up\ | down\ | mute\ |
| `/media play\ | next\ | prev\ |
| `/mic-mute [0\ | 1]` | Mute / unmute the Windows microphone |
/app-vol <app> <0-100>, `/app-mute [0\ | 1]` | Volume or mute of one program |
| `/audio list\ | next\ | ` |
| `/audio-preset conference\ | focus\ | night\ |
| `/brightness up\ | down\ | <0-100>` |
/timer [min], /timer-cancel | Productivity timer | |
/monitor-off, /lock, /sleep-pc | Screens off, lock Windows, sleep | careful |
Voice and macros
| Command | What it does | Notes |
|---|---|---|
/say <phrase> | Run any voice command by its words (section 4) | depends on the command |
/voice | Mute / unmute the voice listener | |
/macro <name> | Run a voice macro you recorded | depends on the macro |
| `/ai-dictate start\ | stop\ | toggle` |
/read-aloud | Read the selection (or clipboard) aloud; while reading, pause / resume | |
/voice-help | The voice command guide | opens a window |
Program housekeeping
| Command | What it does | Notes |
|---|---|---|
/reload | Restart SlyPilot | careful |
/quit | Exit SlyPilot | careful |
4. /say: Any Voice Command, From a Button
/say runs a voice command by its words, through the same dispatcher the microphone uses. Any command in the Voice Command Reference can be run this way, including the many that have no switch of their own:
SlyCtl.exe /say "snap left"
SlyCtl.exe /say "go to desktop two"
SlyCtl.exe /say "mute microphone"
SlyCtl.exe /say "workspace work"- It does not need a microphone. It is the way to use voice commands from a Stream Deck, a macro pad, a script or the on-screen keyboard.
- The answer goes to the log. Each call writes one line to
logs\crash.log(next to the program for the zip, in the install folder for the setup program):VOICE SAY: 'snap left' -> '<what SlyPilot answered>'. If a button does nothing, that line tells you whether the phrase was understood. - Risky commands still ask. A command that is marked Needs "confirm" in the voice command list asks for confirmation first, as it does by voice. Do not put those on a button you could press by accident.
- Use the phrases from the voice command list as written; a made-up phrase is not understood. A few commands only work in a certain kind of program (a browser or an editor in front, for example), and the list says so.
- Phrases that start with
?are developer test hooks. Leave them alone.
5. Examples
Stream Deck and macro pads
Add a button that launches a program (in the Stream Deck software this is usually the "Open" action under System; other macro-pad programs have an equivalent):
| Field | Value |
|---|---|
| Program / file | C:\Users\<you>\AppData\Local\Programs\SlyPilot\SlyCtl.exe (setup program) or the folder where you unzipped it |
| Arguments | /goto 2 or /say "snap left" |
If your software has only one box, put the path in quotes first and the arguments after it. If a button needs several steps, point it at a small .cmd file (below). Good first buttons: /goto 1 ... /goto 4, /say "snap left", /say "snap right", /radial, /touch, /mic-mute, /vol up, /vol down, /ws "MorningDev".
A Windows shortcut with its own hotkey
Right-click the desktop, New -> Shortcut, enter "C:\...\SlyCtl.exe" /say "next desktop", name it, then in its Properties give it a Shortcut key (Windows only honours shortcut keys on shortcuts that sit on the desktop or in the Start menu).
Batch file
@echo off
rem Put the programs in a folder for work and snap them
"%LOCALAPPDATA%\Programs\SlyPilot\SlyCtl.exe" /ws "MorningDev"
"%LOCALAPPDATA%\Programs\SlyPilot\SlyCtl.exe" /say "snap left"A batch file does not wait for a program without a console. To wait and read the exit code, use start "" /wait "...\SlyCtl.exe" /goto 2 and then check %ERRORLEVEL%.
PowerShell
$ctl = "$env:LOCALAPPDATA\Programs\SlyPilot\SlyCtl.exe"
# fire and forget
& $ctl /say "next desktop"
# wait for it and read the exit code (0 = delivered)
$p = Start-Process $ctl -ArgumentList '/say', '"snap left"' -PassThru -Wait
$p.ExitCodeAutoHotkey v2
; Ctrl+F9 snaps the window to the left half, Ctrl+F10 goes to desktop 2
^F9::Run('"C:\Path\To\SlyCtl.exe" /say "snap left"', , "Hide")
^F10::Run('"C:\Path\To\SlyCtl.exe" /goto 2', , "Hide")Task Scheduler, a login script, a calendar tool
Anything that can start a program can start a switch. For example, a scheduled task that runs SlyCtl.exe /audio-preset night in the evening, or a script that runs /ws-save "end of day" before you log off.
The mag switches (Magnifier, presenter tools, drawing board)
| Switch | Does |
|---|---|
SlyPilot.exe mag on / off / toggle / in / out / zoom 4 | The Windows Magnifier |
mag full / lens / dock / invert [on / off] | Its modes and colours |
mag glass [on / off / peek / shape / colours / park / follow] | SlyPilot's magnifying glass |
mag typing [off], mag strip [top / bottom / left / right / off], mag loupe [off], mag colour | Typing glass, strip, pixel loupe, copy the colour under the pointer |
mag region [clear / corner / bigger / smaller / last], mag profile [next / night / 3] | Watched areas, profiles |
mag monitors, mag screen [off / 2 / all / other], mag freeze [off / shot / edit], mag record | Monitors, second-screen view (Pro), freeze, record the magnifier (Pro) |
mag draw [off / zoom] | The drawing board |
mag spotlight [on / off / bigger / smaller / shape], mag highlight [on / off], mag laser, mag keys [on / off], mag read [lens / spotlight / window], mag timer [N / stop] | Presenter tools |
mag present [on / off / N], mag panel [off] | Presenting mode (N minutes), the panel of big buttons |
Bind them to a Stream Deck button or a macro pad key like any other switch. The full list is in skills\slypilot\references\cli-commands.md of the program folder.
6. Agents, and the Difference From Switches
AI coding agents (Claude Code, Gemini CLI, Codex and others) use a different, gated command: SlyPilot.exe agent <verb> and the SlyPilot.exe mcp server. It is off until you choose a level in the tray menu, always names the window it acts on, answers in JSON, and asks you to click for risky actions. Everything about it is in MCP & Agent Automation. Its exit codes are 0 ok, 1 error, 2 SlyPilot not reachable, 3 your approval is needed, 4 phrase not understood, and 5 a check or wait came out false or timed out.
Caution: switches and
/sayare not covered by that gate. They are meant for your macros, buttons and scripts. Any program running as you on this PC can runSlyPilot.exe /goto 2or/say "...", whether or not agent control is on, and the agent levels and approval windows do not apply to them. If you let a program or an AI tool run commands on your PC, remember that this door exists. SlyPilot's agent skill tells agents not to use it to get around a refused request.
7. Troubleshooting
| Problem | What to try |
|---|---|
| Nothing happens | Is SlyPilot running (its icon is in the tray)? If it was not running, the first call may only have started it; send the command again. |
/say does nothing | Open logs\crash.log and look for the VOICE SAY: line of your call. It shows what the phrase was turned into. Use the exact wording from the voice command list. |
| The command acts on the wrong window | Switches that say window in front act on the window you were working in. Click that window first; SlyPilot's own windows are skipped. |
| A button works, then a path with spaces stops it | Put the path in double quotes. The parameters of a switch go outside those quotes. |
SlyCtl.exe exit code 2 | It cannot find SlyPilot.exe in its own folder. Keep the two files together (or use SlyPilot.exe). |
agent or mcp prints nothing through SlyCtl | SlyCtl has no console. Run those with SlyPilot.exe. |
| A switch I read about does not exist | Names change between versions. Check the list in your install folder (skills\slypilot\references\cli-commands.md) or SlyPilot.exe /help. |
8. Frequently Asked Questions
Do I need Stream Deck hardware? No. Any program that can start another program with arguments will do: a Windows shortcut, a batch file, AutoHotkey, Task Scheduler.
Why not just use the hotkeys? Hotkeys are fine at the keyboard. A button helps when your hands are on another device, when you want a single key to do several things (a .cmd file), or when you want something that has no hotkey (most voice commands).
Can a phone do the same? Yes, in a different way, with SlyPilot Pro: the Phone Remote (Chrome on Android) has a command search that runs the same commands, with permissions you choose per phone.
Is there a way to see what a button did? For /say, the log line. For other switches, the effect itself; classic switches do not answer.
Where are all the keyboard shortcuts? In the Keyboard & Gestures Cheat Sheet.