Skip to contents

Read a project's target progress data for the most recent run of tar_make() or similar. Only the most recent record is shown.


  names = NULL,
  fields = "progress",
  store = targets::tar_config_get("store")



Optional, names of the targets. If supplied, the output is restricted to the selected targets. The object supplied to names should be NULL or a tidyselect expression like any_of() or starts_with() from tidyselect itself, or tar_described_as() to select target names based on their descriptions.


Optional, names of progress data columns to read. Set to NULL to read all fields.


Character of length 1, path to the targets data store. Defaults to tar_config_get("store"), which in turn defaults to _targets/. When you set this argument, the value of tar_config_get("store") is temporarily changed for the current function call. See tar_config_get() and tar_config_set() for details about how to set the data store path persistently for a project.


A data frame with one row per target and the following columns:

  • name: name of the target.

  • type: type of target: "stem" for non-branching targets, "pattern" for dynamically branching targets, and "branch" for dynamic branches.

  • parent: name of the target's parent. For branches, this is the name of the associated pattern. For other targets, the pattern is just itself.

  • branches: number of dynamic branches of a pattern. 0 for non-patterns.

  • progress: the most recent progress update of that target. Could be "dispatched", "completed", "skipped", "canceled", or "errored". "dispatched" means the target was sent off to be run, but in the case of tar_make() with a crew controller, the target might not actually start running right away if the crew workers are all busy.

Storage access

Several functions like tar_make(), tar_read(), tar_load(), tar_meta(), and tar_progress() read or modify the local data store of the pipeline. The local data store is in flux while a pipeline is running, and depending on how distributed computing or cloud computing is set up, not all targets can even reach it. So please do not call these functions from inside a target as part of a running pipeline. The only exception is literate programming target factories in the tarchetypes package such as tar_render() and tar_quarto().


if (identical(Sys.getenv("TAR_EXAMPLES"), "true")) { # for CRAN
tar_dir({ # tar_dir() runs code from a temp dir for CRAN.
    tar_target(x, seq_len(2)),
    tar_target(y, 2 * x, pattern = map(x))
}, ask = FALSE)
tar_progress(starts_with("y_")) # see also any_of()