Skip to main content

robomotion-deskbot

robomotion-deskbot is the robot. It connects a machine to your workspace and executes flows there.

Not to be confused with

roboctl manages the workspace over the API and never runs a flow itself, and robomotion-agent connects the machine so the Designer can reach it for screen capture and image nodes.

Command-Line Help

➜ ~ robomotion-deskbot --help
Robomotion desktop robot

Usage:
robomotion-deskbot [command]

Available Commands:
connect Connects to your workspace
help Help about any command

Flags:
-c, --config string Robomotion config file (default $HOME/.config/robomotion/config.properties)
-h, --help help for robomotion-deskbot
--stdin get input from stdin
-v, --version version for robomotion-deskbot

Use "robomotion-deskbot [command] --help" for more information about a command.

Connect Command

In order to connect a robot to your workspace, you can use the connect command.

Connects to your workspace

Usage:
robomotion-deskbot connect [flags]

Flags:
--disable-features string Disable features including auto-enabled ones
--enable-features string Enable experimental features
-h, --help help for connect
-i, --identity string Robomotion identity
--lock Connects robot in lock mode
--log-level string Robomotion log level ('debug', 'info', 'warning', 'error', 'off')
--logdir string Robomotion log directory
-n, --no-attach Do not attach to Flow Designer
-p, --proxy string Proxy server to use for requests. [<proxy-scheme>://]<proxy-host>[:<proxy-port>]
--remember Remembers last used Robomotion credentials
-r, --robot string Robomotion robot name or id
-s, --send-crash-dumps Sends crash dumps to Robomotion
--session Read a session token from stdin instead of asking for a password
--sso string Sign in through a browser, optionally naming the provider
-t, --token string Robomotion robot token
-w, --workspace string Robomotion workspace

Global Flags:
-c, --config string Robomotion config file (default $HOME/.config/robomotion/config.properties)
--stdin get input from stdin
FlagShortDescription
--workspace-wWorkspace to connect the robot to
--identity-iEmail address of the user to associate the robot with
--robot-rRobot name or ID from the Admin Console
--token-tRobot token from the Admin Console
--ssoSign in through a browser instead of a password. Optionally name the provider: google, github, microsoft, ldap
--sessionRead a session token from stdin instead of prompting for a password
--lockLock mode: refuse to run any flow that is not already cached
--no-attach-nDo not attach to the Flow Designer. Faster, and correct for an unattended robot
--rememberRemember the credentials so later connect calls need no arguments
--proxy-p[<scheme>://]<host>[:<port>] for outbound traffic
--log-leveldebug, info, warning, error, off
--logdirWhere to write logs
--send-crash-dumps-sForward crash dumps to Robomotion
--enable-featuresTurn on experimental features, comma separated. e.g. --enable-features=LargeMessageObjects,Diagnostics
--disable-featuresTurn off features, including ones that are on by default. e.g. --disable-features=LargeMessageObjects,EventBatching
--config-cConfig file. Defaults to $HOME/.config/robomotion/config.properties

Credentials from the environment

Anything passed as a flag is visible to every user on the machine through ps and /proc/<pid>/cmdline. For an unattended robot that is a real exposure, so the robot falls back to these environment variables whenever the matching flag is empty:

VariableEquivalent flag
ROBOMOTION_WORKSPACE-w, --workspace
ROBOMOTION_ROBOT_ID-r, --robot
ROBOMOTION_ROBOT_TOKEN-t, --token
ROBOMOTION_USER_EMAIL-i, --identity

Flags take precedence; the environment is consulted only when the flag is absent. This is the intended path for Docker and systemd deployments — Linux VPS has a unit file that uses it.

note

--token requires both --robot and --workspace (or their environment equivalents). If either is missing the command prints its usage and exits without connecting.

Where files live

Path
Config$HOME/.config/robomotion/config.properties
Binaries and drivers (Linux, macOS)~/.config/robomotion/bin
Binaries and drivers (Windows)%LOCALAPPDATA%\Robomotion\bin

Example Usages

Connect with User Credentials


robomotion-deskbot connect -i john.doe@acme.inc -w rpa.acme.inc

If the credentials are correct, the available robots in your workspace will be listed.

Use the arrow keys to navigate: ↓ ↑ → ←
? Select Your Robot:
▸ Butler [ID: 624609c6-1a27-458f-ace5-3889dc554e28]
Jarvas [ID: 20f1cdb9-d8d9-448b-984c-9188deb24e8e]

After your selection, the selected robot will start working on your computer.

{"level":"info","msg":"Connecting to rpa.acme.inc","status":"connecting","time":"2022-10-21T13:24:46+03:00"}
{"level":"info","msg":"Connected to rpa.acme.inc as Butler [v26.8.2]","status":"connected","time":"2022-10-21T13:24:46+03:00"}

Connect with Robot Credentials

You can generate a Robot token from the Admin Console -> Robots screen.

robomotion-deskbot connect -r 624609c6-1a27-458f-ace5-3889dc554e28 -t ccb15ec1cbf40ae79fe0a0f317c78a23 -w rpa.acme.inc

This command will connect the robot directly without showing a selection menu.

note

If you connect a robot with robot credentials you will not see the robot in Flow Designer when you press Run. Because the robot is connected with Robot Credentials and not the User Credentials it is not yet associated with a user. In order to associate the robot with a user you can add -i your_email parameter to the previous connect command. This user will now be able to see the robot from Flow Designer.

Connect through single sign-on

When your workspace authenticates against Google, GitHub, Microsoft or LDAP, there is no password to type:

robomotion-deskbot connect -w rpa.acme.inc --sso google

A browser opens for the provider to authenticate you, and the robot connects when it returns. Naming the provider is optional — omit it and you are asked to choose.

Connect unattended, with no secret on the command line

The shape to use on a server. See Linux VPS for the systemd unit around it.

export ROBOMOTION_WORKSPACE=rpa.acme.inc
export ROBOMOTION_ROBOT_ID=624609c6-1a27-458f-ace5-3889dc554e28
export ROBOMOTION_ROBOT_TOKEN=...

robomotion-deskbot connect --no-attach --lock --log-level info

--lock is the hardening measure worth adding in production: the robot refuses to run any flow that is not already cached, so newly-published work cannot reach it without a deliberate step.

Next