domino logo
3.6
  • Get Started
  • Domino Cloud
  • Collaborate
  • Projects
  • Work with Data
  • Workspaces
  • Environments
  • Executions
  • Deploy Models and Apps
  • Organizations
  • Security and Credentials
  • Notifications
  • Search
  • Domino CLI
  • Troubleshooting
  • Get Help
domino logo
About Domino
Domino Data LabKnowledge BaseData Science BlogTraining
User Guide
>
Domino CLI
>
Domino CLI Reference

Domino CLI Reference

Install and get started with the CLI

How to install and get started with the Domino CLI

Run your code

run [--direct][--wait][--no-sync][--tier][--local] <file> [args…​]

"run" will copy all files in your project folder to the cloud, where it will execute the specified file with any arguments you have specified, unless you have specified the --local flag.

Use domino sync before domino run <script> if receiving an error like “blob file not found”

The optional --wait flag runs your script synchronously, that is, the command does not return until your job finishes.

The optional --direct flag lets you run a shell command directly on the Domino machines.

The optional --no-sync flag runs the latest version of code on the server, without uploading any local changes on your computer.

The optional --tier flag lets you select a specific hardware tier to execute the specified file on.

The optional --local flag lets you run your script on your local machine.

The optional --title flag lets you supply a title for the run.

Local runs are useful if your desired compute environment is not immediately available, but you would like to record your results in Domino. When a local run is invoked, Domino commits a snapshot of project files to the server and then runs the given command (for example, python main.py) on the local machine. When the command has completed, Domino detects results that have been produced and commits those back to the server, tracking them as “results” of the run as though the command ran on the server.

Viewing the “Results” for Run #16 will bring up a page showing the output of the main.py where colleagues can view and discuss the output.

Screen Shot 2017 03 07 at 9.49.38 PM

Examples
domino run calculateStats.R
domino run runModel.m model1 .05
domino run --wait runModel.m model1 .05
domino run --direct "pip freeze | grep pandas"
domino run --tier "Large" calculateStats.R
domino run --local "python main.py"

Projects

Create a new project

create [projectName]

create will create a new project by making a new folder on your computer and telling the Domino server about your new project. Optionally, you can specify the name of the project. If you don’t specify a name, Domino will ask you for one. To create a project on behalf of an organization you belong to, use the --owner flag.

Examples
domino create
domino create myProject
domino create --owner myOrg myProject

Create a project in a directory that already has files

init [projectName]

init will create a new Domino project inside your current folder. This is useful if you already have a working folder and you’d like to convert it to a Domino project. While the "create" command creates a new folder inside your current directory, init will initialize a project from your current folder. The --owner flag can be used to set an organization you belong to as the project owner.

Note
Examples
domino init
domino init myProject
domino init --owner myOrg myProject

Get a project from the server onto your computer for the first time

get [username]/projectName

get will find an existing project on the server and copy it down to your computer. This is useful to get a project you created on a different computer, or to get a project that someone else created, and you are collaborating on.

If you are getting someone else’s project, specify their username and the project name. If you are getting one of your own projects, you can omit the username.

Examples
domino get otherUser/someProject
domino get myProject

Connect a folder to an existing project

restore

restore will connect your current directory to an existing Domino project on the server. Restore will look for evidence of a project name inside .domino/config.json. If it doesn’t find such a file, it will prompt you for the name of an existing project to use.

This is particularly useful if you are using Domino and git to track the same folder. If you clone a project with git, git will likely have ignored the hidden files that identify it has a Domino project. So you can git clone and then domino restore to re-connect the folder to its Domino project.

Example
domino restore

Files

Synchronize the files on your computer with the server

sync

sync will synchronize the project folder on your computer with the project stored on the server. This is equivalent to running a download followed by an upload.

Example
domino sync

Download the latest version of your files

download

download will download the latest copy of your files from the cloud into your current project folder. If you have made changes that conflict with changes in the cloud, you will see both versions of the conflicting file side-by-side.

There are two reasons files in the cloud might change: first, your collaborators on a project might make changes; second, you might have executed a run that produced new output files.

Example
domino download

Upload your files without starting a run

upload [-m "message"]

upload will upload your current project folder contents to the cloud, but will not begin a new run. The optional message flag lets you record a message, which will be displayed when browsing past commits on the Files tab of your project.

Note
Example
domino upload -m "this is a great message"

Datasets

Upload folder to a Dataset

Upload all the files in a folder from your local machine to an existing Dataset. Existing files will be overwritten unless you use the --fileUploadSetting option.

Note

domino upload-dataset <project-owner>/<project-name>/<dataset-name> <folder path>

Example
domino upload-dataset --fileUploadSetting Overwrite jsmith/global-predictions/global-data /Users/myUser/data

Choose one --fileUploadSetting option to handle path collisions as follows:

  1. Ignore: If a file already exists in the Dataset, the new file is ignored.

  2. Overwrite: If a file already exists in the Dataset, the new file overwrites the existing file.

  3. Rename: If a file already exists in the Dataset, _1 is appended to the uploaded filename. For example, /Users/myUser/data/file.txt becomes /Users/myUser/data/file_1.txt,

Here is the full syntax where --fileUploadSetting and the corresponding parameter are optional:

domino upload-dataset --fileUploadSetting Ignore/Overwrite/Rename <project-owner>/<project-name>/<dataset-name> <folder path>

Create a snapshot

Use the following command to create a snapshot that is visible and populated after the backend finishes copying the files in the dataset.

Note
domino create-snapshot <project-owner>/<project-name>/<dataset-name>

Create a dataset from a snapshot

Use the following command to create a dataset from a snapshot where <snapshot-integer> maps to a valid snapshot number in the dataset.

Note
  domino create-dataset-from-snapshot <project-owner>/<project-name>/<dataset-name> <snapshot-number> <new-dataset-name>

Get help

help

help will print out a list of commands you can run, with information about each one, similar to this page.

Examples

domino help domino help run

Get the version of your CLI

version

version will output your CLI version

Examples

domino --version

Domino Data LabKnowledge BaseData Science BlogTraining
Copyright © 2022 Domino Data Lab. All rights reserved.