Command: pull

Usage

guild pull [OPTIONS] REMOTE [RUN...]

Copy one or more runs from a remote location.

RUN must be the complete run ID of the remote run.

NOTE: Guild does not currently support listing remote runs. To pull specific runs, query the remote server for the full run ID of each run you want to pull.

You may alternatively use --all to pull all remote runs. If --all is specified, RUN arguments cannot be specified.

--verbose is always enabled when --all is specified.

REMOTE must be define in ~/.guild/config.yml. See REMOTES below for more information.

By default Guild will prompt you before copying. If you want to apply the changes without being prompted, use the --yes option.

Specify Runs

You may use one or more RUN arguments to indicate which runs apply to the command. RUN may be a run ID, a run ID prefix, or a one-based index corresponding to a run returned by the list command.

Indexes may also be specified in ranges in the form START:END where START is the start index and END is the end index. Either START or END may be omitted. If START is omitted, all runs up to END are selected. If END id omitted, all runs from START on are selected. If both START and END are omitted (i.e. the : char is used by itself) all runs are selected.

Filter by Operation

Runs may be filtered by operation using --operation. A run is only included if any part of its full operation name, including the package and model name, matches the value.

Use --operation multiple times to include more runs.

Filter by Label

Use --label to only include runs with labels containing a specified value. To select runs that do not contain a label, specify a dash ‘-’ for VAL.

Use --label multiple times to include more runs.

Filter by Tag

Use --tag to only include runs with a specified tag. Tags must match completely and are case sensitive.

Use --tag multiple times to include more runs.

Filter by Marked and Unmarked

Use --marked to only include marked runs.

Use --unmarked to only include unmarked runs. This option may not be used with --marked.

Filter by Run Start Time

Use --started to limit runs to those that have started within a specified time range.

IMPORTANT: You must quote RANGE values that contain spaces. For example, to filter runs started within the last hour, use the option:

--started 'last hour'

You can specify a time range using several different forms:


after DATETIME
before DATETIME
between DATETIME and DATETIME
last N minutes|hours|days
today|yesterday
this week|month|year
last week|month|year
N days|weeks|months|years ago

DATETIME may be specified as a date in the format YY-MM-DD (the leading YY- may be omitted) or as a time in the format HH:MM (24 hour clock). A date and time may be specified together as DATE TIME.

When using between DATETIME and DATETIME, values for DATETIME may be specified in either order.

When specifying values like minutes and hours the trailing s may be omitted to improve readability. You may also use min instead of minutes and hr instead of hours.

Examples:


after 7-1
after 9:00
between 1-1 and 4-30
between 10:00 and 15:00
last 30 min
last 6 hours
today
this week
last month
3 weeks ago

Filter by Source Code Digest

To show runs for a specific source code digest, use -g or --digest with a complete or partial digest value.

Filter by Run Status

Runs may also be filtered by specifying one or more status filters: --running, --completed, --error, and --terminated. These may be used together to include runs that match any of the filters. For example to only include runs that were either terminated or exited with an error, use --terminated --error, or the short form -Set.

You may combine more than one status character with -S to expand the filter. For example, -Set shows only runs with terminated or error status.

Status filters are applied before RUN indexes are resolved. For example, a run index of 1 is the latest run that matches the status filters.

Remotes

Remotes are non-local systems that Guild can interact with. They are defined in ~/.guild/config.yml under the remotes section.

For a list of supported remotes, see https://guild.ai/remotes/.

Options

-Fo, -o, --operation VAL Filter runs with operations matching VAL.
-Fl, -l, --label VAL Filter runs with labels matching VAL.
-U, --unlabeled Filter only runs without labels (deprecated - use ‘-Fl -’).
-Ft, --tag TAG Filter runs with TAG.
-Fc, --comment VAL Filter runs with comments matching VAL.
-Fm, -M, --marked Filter only marked runs.
-Fn, -N, --unmarked Filter only unmarked runs.
-Fs, --started RANGE Filter only runs started within RANGE. See above for valid time ranges.
-Fd, -D, --digest VAL Filter only runs with a matching source code digest.
-Sr, -R, --running Filter only runs that are still running.
-Sc, -C, --completed Filter only completed runs.
-Se, -E, --error Filter only runs that exited with an error.
-St, -T, --terminated Filter only runs terminated by the user.
-Sp, -P, --pending Filter only pending runs.
-Ss, -G, --staged Filter only staged runs.
-d, --delete Delete local files missing on remote.
-y, --yes Do not prompt before copying.
--help Show this message and exit.

Guild AI version 0.7.3