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.
| Command | What it does |
|---|---|
danio | Open the interface: a window and tray icon on a desktop, the terminal interface without one |
danio tui | The 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 tray | Run in the tray only |
danio serve | Run 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
| Command | What 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 ls | Change 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.
| Command | What it does |
|---|---|
danio workspace | The 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> --password | Join with the local network join password |
danio workspace join <host address> --ask | Ask to join and wait for an admin there to approve |
danio workspace discover | Find 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|admin | Create 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:
| Command | What it does |
|---|---|
danio device | The workspace's devices |
danio device block|unblock <device> | Block, unblock |
danio device access <device> none|viewer|station|admin | Change access: None, Viewer, Workstation, Admin |
danio device render <device> on|off | Turn 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
| Command | What it does |
|---|---|
danio service | Whether danio starts with the computer and whether it is running |
danio service install | Start with the computer (systemd on Linux, at sign-in on Windows), and start now |
danio service uninstall | No longer start with the computer. A running danio isn't affected |
danio service restart | Restart, switching to the new version danio upgrade downloaded |
danio service stop | Stop the running danio |
Update and uninstall
| Command | What it does |
|---|---|
danio upgrade | Update to the latest release |
danio upgrade check | Only 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
| Command | What 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 --fix | Print only the commands that install missing system libraries |
danio doctor --libs | Print only the install commands for system libraries Blender is missing |
danio config | Show 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 version | Show 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.
| Command | What 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 update | Reinstall 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 new | Generate a random token for DANIO_TOKEN |
Environment variables
| Variable | What it does |
|---|---|
DANIO_PORT | The port of this device's interface |
DANIO_ADDRESS | The 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_HOME | Where the whole data folder goes |
DANIO_TOKEN | The local token, which you can paste on the web sign-in page |
DANIO_TOKEN_FILE | Read 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.