PricingDocsAccount

Command line

Open the interface, submit tasks, join workspaces and manage danio on this machine from a terminal.

Most of what you can do in the interface, you can also do in a terminal. When you SSH into a render server to look into a problem, or write a script to submit in bulk, the command line is easier. Run danio help any time for the full list.

Commands ask the danio running on this computer to do the work. When no danio is running, a command starts one temporarily in its own process.

Open the interface

On a desktop, run danio to open the window and tray icon. Run it on a server over SSH and you get the terminal interface.

CommandWhat it does
danioOpen the interface: a window and tray icon on a desktop, the terminal interface without one
danio tuiThe interface in the terminal, laid out like the web interface, with the same actions
danio web [--addr host:port] [--no-open]Open the interface in a browser, for machines without a desktop
danio show <page>Open a page in the danio window, such as /?job=<task>
danio trayRun in the tray only
danio serveRun danio only, with no interface, for Linux servers and systemd

When no danio is running, danio tui and danio web bring their own: tui stops it when you quit, and web keeps running until you press Ctrl-C. To keep danio running in the background, use danio service install below.

Submit and manage tasks

These commands work on the workspace this computer hosts by default. To work on another workspace this device has joined, add --workspace <name or ID>. This works with submit, update, jobs, job, pause, resume, cancel and project.

danio submit sh010.blend --project "Short film" --frames 1-250
CommandWhat it does
danio submit <file.blend> --project <project>Submit, one task per scene. Takes --scene, --frames, --chunk, --name and --note; --here renders on this device without going through the store
danio update <task>Update a task. Keeps the previous version's entry .blend by default and uploads only the files that changed
danio jobs [--json]List tasks
danio job <task> [--json]Task details: versions, render progress, chunks
danio pause|resume|cancel <task>Pause, resume, cancel
danio render <task>Render a task already submitted to the store on this device
danio project add <name>Create a project. Takes --python on|off and --include <glob>
danio project set <name> / danio project lsChange a project's settings, list projects

Add --json when a script needs to read the output.

Workspaces and devices

On a server without a desktop, use danio workspace to join a workspace, open it to other devices and hand out tokens.

CommandWhat it does
danio workspaceThe workspaces this device hosts or has joined
danio workspace join <host address>Join with a device token, read from the prompt or a pipe
danio workspace join <host address> --passwordJoin with the local network join password
danio workspace join <host address> --askAsk to join and wait for an admin there to approve
danio workspace discoverFind workspaces open to join on the local network
danio workspace port <port>Open to other devices, such as 7420; 0 closes it
danio workspace address [address…]Which network interfaces the host listens on and the URL given to devices, such as https://danio.example.com
danio workspace token add <name> --access none|viewer|station|adminCreate a token; --render makes the device accept renders after joining, --multi lets several devices share it
danio workspace token ls / rm <token ID>List tokens, revoke one
danio workspace takeover <shared folder>Take over the workspace from the backup in its store; the recovery key is read from the prompt
danio workspace set-host <address>Change to the new address after the host's address changes

Take over a workspace on object storage like this:

danio workspace takeover s3://<bucket>/<prefix> --endpoint <address>

Keys are read from the prompt, or you can provide them with DANIO_S3_ACCESS_KEY, DANIO_S3_SECRET_KEY and DANIO_RECOVERY_KEY.

Manage devices with danio device. A device can be given by ID or name:

CommandWhat it does
danio deviceThe workspace's devices
danio device block|unblock <device>Block, unblock
danio device access <device> none|viewer|station|adminChange access: None, Viewer, Workstation, Admin
danio device render <device> on|offTurn rendering on or off for that device. Takes effect the next time it contacts the host

Set the workspace's store with danio store add <name> <SMB path or local path> and view it with danio store ls. A workspace has only one store.

This machine

These commands deal only with the computer you are using: starting with the computer, updating, uninstalling, checking the environment and changing this device's configuration.

Service

CommandWhat it does
danio serviceWhether danio starts with the computer and whether it is running
danio service installStart with the computer (systemd on Linux, at sign-in on Windows), and start now
danio service uninstallNo longer start with the computer. A running danio isn't affected
danio service restartRestart, switching to the new version danio upgrade downloaded
danio service stopStop the running danio

Update and uninstall

CommandWhat it does
danio upgradeUpdate to the latest release
danio upgrade checkOnly check whether there is a new version
danio upgrade list [--pre]List releases; --pre includes pre-releases
danio upgrade <version>Switch to a specific version, such as 0.2.0. Going back works too
danio upgrade --from <host address>Switch to the version that workspace's host is running
danio uninstall [--data] [--yes]Stop danio and remove the program; --data removes the data too

When downloads from GitHub are slow, add --mirror <address> to danio upgrade to use a download mirror, such as https://mirror.example.com/. Without it, danio uses "Download mirror" from the settings.

Check and configure

CommandWhat it does
danio status [--json]Whether danio is running and where the data folder is
danio doctor [--json]Check whether this computer can submit and render
danio doctor --fixPrint only the commands that install missing system libraries
danio doctor --libsPrint only the install commands for system libraries Blender is missing
danio configShow this device's configuration, config/danio.toml
danio config get <key> / set <key> <value>Read or change one setting in this device's configuration, such as danio config set node.gpus 0,1
danio versionShow the version

This device's configuration holds only this machine's own settings: cache folder, work folder, Blender path, and render machine settings (see Configuration for the full reference). Project settings are in the project.

Plugins and API

Plugins run on the host, for example to send Feishu or Slack notifications or sync with another system. To write one, see Plugin development; for the API, see HTTP API.

CommandWhat it does
danio plugin [--json]List plugins: state, version, permissions, latest error
danio plugin add <npm package | folder | .tgz>Install. Shows the permissions it wants first, and enables it once you confirm
danio plugin on|off|rm <plugin>Enable, disable, delete
danio plugin updateReinstall all plugins from where each came from
danio plugin config <plugin> [key=value]…Change settings. Without values, it asks for each one
danio openapi [--lang en]Print the API description (OpenAPI 3.1 JSON); --lang en for the English version
danio token newGenerate a random token for DANIO_TOKEN

Environment variables

VariableWhat it does
DANIO_PORTThe port of this device's interface
DANIO_ADDRESSThe address of this device's interface, listening only on 127.0.0.1 by default. Written the same way as for danio workspace address, with several separated by commas
DANIO_HOMEWhere the whole data folder goes
DANIO_TOKENThe local token, which you can paste on the web sign-in page
DANIO_TOKEN_FILERead the local token from a file instead of DANIO_TOKEN

For example, set DANIO_ADDRESS when you want to open a server's danio web interface from another computer.

DANIO_HOME contains the workspace database. It must be on a local disk, not pointed at an SMB or NFS share. The Docker image already sets DANIO_HOME=/data, so just mount a folder on a local volume of the NAS to /data. See Run the host on a NAS.