ShadowBot CLI
Use the real executable help as the source of truth. Do not trust examples, aliases, or old notes unless they have been verified in the current environment.
Executable
- Prefer
shadowbot.shell-cli.exewhen it resolves onPATH. - In this environment it resolves to
C:\Program Files\ShadowBot\shadowbot.shell-cli.exe. - If resolution is uncertain, verify first with
Get-Command shadowbot.shell-cli.exe.
Hard Rules
- Execute only commands and flags confirmed by
shadowbot.shell-cli.exe -hor<subcommand> -h. - Never invent aliases, hidden commands, IDs, account names, or trigger details.
- Preserve user-provided values exactly, especially usernames, passwords, UUIDs, paths, cron strings, and JSON payloads.
- Quote Windows paths and JSON carefully in PowerShell.
- If the CLI returns an error JSON object, surface the error directly instead of guessing recovery steps.
- If a command is ambiguous, run the nearest
-hhelp page before acting.
Fast Discovery
Start with the smallest help page that answers the question:
shadowbot.shell-cli.exe -h
shadowbot.shell-cli.exe auth -h
shadowbot.shell-cli.exe console task run -h
Top-level command groups confirmed in this environment:
authmodesystemconsolestudioconfiguiassistantas an additional help topic only
The global flags confirmed at root are:
--timeout <duration>-h|--help-v|--version
Verified Workflows
Authentication
Use:
shadowbot.shell-cli.exe auth current
shadowbot.shell-cli.exe auth account list
shadowbot.shell-cli.exe auth login --username <name>
shadowbot.shell-cli.exe auth login --username <name> --password <password>
Important rules from help:
auth login --usernameis required.--passwordis normally required.- You may omit
--passwordonly when the username appears inauth account list. - Login polling flags exist:
--login-timeout,--poll-interval.
Practical flow:
- Run
auth current. - If not logged in, run
auth account list. - If the requested username is remembered, use
auth login --username <name>. - Otherwise use
auth login --username <name> --password <password>. - Re-run
auth current.
System And Mode
Use:
shadowbot.shell-cli.exe system health
shadowbot.shell-cli.exe system state
shadowbot.shell-cli.exe system version
shadowbot.shell-cli.exe mode switch --to console
shadowbot.shell-cli.exe mode switch --to assistant
shadowbot.shell-cli.exe mode switch --to console --force
Notes:
mode switch --tosupports onlyconsole|assistant.--forceexists for forced switch to console.system stateis the safest preflight before UI or studio actions.
UI Operations
Use:
shadowbot.shell-cli.exe ui --exec studio-minmize
shadowbot.shell-cli.exe ui --exec studio-maximize
shadowbot.shell-cli.exe ui --exec console-minimize
shadowbot.shell-cli.exe ui --exec console-maximize
shadowbot.shell-cli.exe ui --exec switch-to-schedule
shadowbot.shell-cli.exe ui --exec switch-to-assistant
shadowbot.shell-cli.exe ui --exec switch-to-console --force
Confirmed --exec values:
studio-minmizestudio-maximizeconsole-minimizeconsole-maximizeswitch-to-scheduleswitch-to-assistantswitch-to-console
Notes:
- The CLI also exposes
--exceas a compatibility alias. - The help text uses the misspelling
studio-minmize; keep it exactly as documented unless runtime evidence shows otherwise.
Config
Discover and modify config through:
shadowbot.shell-cli.exe config list
shadowbot.shell-cli.exe config list --prefix recording
shadowbot.shell-cli.exe config describe --key login.auto-login
shadowbot.shell-cli.exe config get --key login.auto-login
shadowbot.shell-cli.exe config set --key login.auto-login --value true
Use this order:
config listorconfig list --prefix ...config describe --key ...config get --key ...config set --key ... --value ...
The help page lists these current config keys:
startup.auto-startlogin.auto-loginlogin.switch-to-assistantlogin.auto-start-goclose.direct-closequick.mouse-gesture-enabledquick.keyboard-shortcut-enabledapp-run.auto-hide-robot-windowapp-run.shutdown-explorer-after-task-stopdesigner.auto-savedesigner.auto-anchordesigner.ai-selector-enabledrecording.enabledrecording.save-moderecording.save-duration-secondsrecording.ignore-manual-or-hotkeyrecording.auto-clear-filerecording.max-size-gbrecording.storage-pathperformance.render-mode
Console: Pages, Theme, Links
Use:
shadowbot.shell-cli.exe console page switch --target app
shadowbot.shell-cli.exe console theme switch --target dark
shadowbot.shell-cli.exe console link open --target community
Confirmed values:
console page switch --target:app|trigger|market|tutorial|excellenceconsole theme switch --target:light|dark|defaultconsole link open --target:community|comic|web-console|achievement|dev-feedback
Console: Apps
List and inspect apps:
shadowbot.shell-cli.exe console app
shadowbot.shell-cli.exe console app --app-type subscribed --search invoice
shadowbot.shell-cli.exe console app detail --app-id <uuid>
shadowbot.shell-cli.exe console app versions --app-id <uuid>
shadowbot.shell-cli.exe console app publish --app-id <uuid> --update-log "notes"
Useful flags:
console app:--app-type,--page,--page-size,--searchconsole app detail:--app-id, optional--app-typeconsole app versions:--app-id, optional--app-type,--page,--page-sizeconsole app publish:--app-id, optional--update-log
App recycle bin:
shadowbot.shell-cli.exe console app recycle --app-id <uuid>
shadowbot.shell-cli.exe console app recycle list
shadowbot.shell-cli.exe console app recycle delete --app-id <uuid>
App groups:
shadowbot.shell-cli.exe console app group list
shadowbot.shell-cli.exe console app group create --name "Finance"
shadowbot.shell-cli.exe console app group update --id <group-id> --name "Finance"
shadowbot.shell-cli.exe console app group delete --id <group-id>
shadowbot.shell-cli.exe console app group move --app-id <uuid> --group-id <group-id>
shadowbot.shell-cli.exe console app group remove --app-id <uuid>
Collaborators:
shadowbot.shell-cli.exe console app collaborator list --app-id <uuid>
shadowbot.shell-cli.exe console app collaborator org-users list --app-id <uuid> --keyword foo
shadowbot.shell-cli.exe console app collaborator add --app-id <uuid> --account exact@account
shadowbot.shell-cli.exe console app collaborator remove --app-id <uuid> --account exact@account
Important rules:
- Collaborator add/remove requires exact
--account; no fuzzy matching. org-users listis for discovery only;addstill needs the exact account value.
Console: Tasks
Use:
shadowbot.shell-cli.exe console task run --app-id <uuid>
shadowbot.shell-cli.exe console task run --app-id <uuid> --inputs '{"k":"v"}'
shadowbot.shell-cli.exe console task status --task-id <uuid>
shadowbot.shell-cli.exe console task logs --task-id <uuid> --limit 50
shadowbot.shell-cli.exe console task stop --task-id <uuid> --reason "manual stop"
shadowbot.shell-cli.exe console task history --page 1 --page-size 20
Notes:
console task rundefaults to sync mode with streaming logs.--asyncswitches to immediate-return mode.- Sync mode flags:
--wait-timeout,--poll-interval,--log-limit.
Recommended flow:
- Find the app ID with
console app --search .... - Run
console task run --app-id <uuid>. - Capture the returned task ID.
- Use
status,logs, orstopagainst that task ID.
Console: Triggers
Global trigger commands:
shadowbot.shell-cli.exe console trigger list
shadowbot.shell-cli.exe console trigger list --type file
shadowbot.shell-cli.exe console trigger get --id <trigger-id>
shadowbot.shell-cli.exe console trigger enable --id <trigger-id>
shadowbot.shell-cli.exe console trigger disable --id <trigger-id>
shadowbot.shell-cli.exe console trigger delete --id <trigger-id>
Confirmed flags:
console trigger list --type:all|file|hotkey|email|scheduleconsole trigger list --kind: compatibility aliasall|event|schedule
Typed trigger commands:
shadowbot.shell-cli.exe console trigger file list
shadowbot.shell-cli.exe console trigger file add --app-id <uuid> --name "Watch Folder" --details-json '{"folderPath":"C:\\\\in","filesToMonitor":"*.*","includeSubFolders":true,"fileEventsToMonitor":"created"}'
shadowbot.shell-cli.exe console trigger file update --id <trigger-id> --details-json '{...}'
shadowbot.shell-cli.exe console trigger hotkey list
shadowbot.shell-cli.exe console trigger hotkey add --app-id <uuid> --name "Run" --details-json '{"modifierKeys":"Ctrl+Alt","virtualKey":"R"}'
shadowbot.shell-cli.exe console trigger hotkey update --id <trigger-id> --details-json '{...}'
shadowbot.shell-cli.exe console trigger email list
shadowbot.shell-cli.exe console trigger email add --app-id <uuid> --name "Mail" --details-json '{...}'
shadowbot.shell-cli.exe console trigger email update --id <trigger-id> --details-json '{...}'
shadowbot.shell-cli.exe console trigger schedule list
shadowbot.shell-cli.exe console trigger schedule add --app-id <uuid> --name "Daily" --cron "0 9 * * *"
shadowbot.shell-cli.exe console trigger schedule update --id <trigger-id> --app-id <uuid> --name "Daily" --cron "0 9 * * *"
Typed trigger flag patterns:
- common add/update flags:
--app-id, optional--app-name,--name,--enabled,--queue-when-busy,--timeout - file trigger
--details-json:folderPath/filesToMonitor/includeSubFolders/fileEventsToMonitor - hotkey trigger
--details-json:modifierKeysandvirtualKey - email trigger
--details-json: email trigger detail object - schedule trigger:
--cron, optional--end-time
Be careful:
schedule updatecurrently documents--app-id,--name, and--cronas required.- For update commands,
--enabled,--queue-when-busy, and--timeoutare only applied when explicitly set.
Console: Messages
Use:
shadowbot.shell-cli.exe console message list
shadowbot.shell-cli.exe console message list --status unread --size 20
shadowbot.shell-cli.exe console message read --id <uuid>
shadowbot.shell-cli.exe console message read-all
Confirmed --status values:
allunreadread
Console: Extensions
Use:
shadowbot.shell-cli.exe console extension list
shadowbot.shell-cli.exe console extension get --type chrome
shadowbot.shell-cli.exe console extension install --type edge --wait
Confirmed extension types:
chromeedgedevicescreen-unlockbackground-wakeup
Install notes:
--waitpolls until installed or timeout.- Polling flags:
--wait-timeout,--poll-interval. - Business dialogs are silent, but UAC prompts may still require manual confirmation.
Studio
Use:
shadowbot.shell-cli.exe studio create --name "Demo"
shadowbot.shell-cli.exe studio open --name "Demo"
shadowbot.shell-cli.exe studio open-app --app-id <uuid>
shadowbot.shell-cli.exe studio current get
shadowbot.shell-cli.exe studio current update-info --name "Demo" --description "desc"
shadowbot.shell-cli.exe studio current save
shadowbot.shell-cli.exe studio current sync
Notes:
studio createcreates then sync-closes.studio opencreates and keeps studio open.studio open-appexpects no studio already open.studio current update-info --nameis required.- Advanced options on
update-info:--remember-databook true|false,--allow-view-source true|false,--clear-description,--clear-instruction.
Known Non-Commands
Do not use these unless future runtime verification proves otherwise:
shadowbot.shell-cli.exe loginshadowbot.shell-cli.exe appsshadowbot.shell-cli.exe messages
In this environment they return unknown command.
Response Style
- Report the exact command you ran.
- Summarize only the key result.
- If the CLI returns machine-readable error JSON, include the critical fields directly.
- When acting on mutable resources, mention the specific ID or account used.