Skip to main content
The tracebloc CLI is how you manage your secure environment and its data from your own machine: sign in, connect this machine to tracebloc, ingest datasets, list and delete them, check the connection, and set how much of the machine training may use. tb is the short alias — every command on this page works as tb … too.
You never touch Helm, edit YAML, or run kubectl. tracebloc data ingest finds your secure environment, checks your data locally, copies it in, runs the ingestion, and streams the progress for you.

Install

If you deployed with the Quick Start one-liner, the CLI is already installed. Otherwise, install the CLI on its own:
Binaries are cosign-signed and multi-arch; the installer also creates the tb alias (unless an unrelated tb is already installed). Pin a version with sh -s -- --version vX.Y.Z (or $env:TRACEBLOC_RELEASE_VERSION='vX.Y.Z' on Windows). Verify:
Run tracebloc with no arguments for a welcome screen that shows who you’re signed in as, whether your secure environment is running, and the next commands to try.

Sign in and connect this machine

login works on a headless or SSH machine — the browser doesn’t have to be on the same machine — and is safe to re-run (pass --force to switch accounts). client create takes its name from --name or TRACEBLOC_CLIENT_NAME, otherwise it generates one; on a cluster that already runs a secure environment, it adopts that one instead of creating a second one.

Check your secure environment

doctor exits 0 when healthy, 2 when it found a problem, 3 when it can’t read your local config. --diagnose writes a redacted support bundle you can send to tracebloc.
If a command exits with code 4, it found no secure environment or shared storage on the cluster, or the cluster’s data ingestor is too old for the task. The error message says which. If the ingestor is too old, try again after your secure environment’s hourly auto-upgrade has run (tracebloc upgrade updates only the CLI); otherwise run tracebloc doctor. If your secure environment runs in a namespace the CLI did not find, add -n <your-namespace>. cluster info, doctor, resources, and the data commands all accept -n, --context, and --kubeconfig.

Ingest a dataset

tracebloc data ingest copies a local dataset into your secure environment’s storage, runs the ingestion, and follows it to completion. Your data never leaves your infrastructure.
For object detection, there is no label column. The CLI reads the image size from your first image; pass --target-size to state it:
Ingest the test split the same way with --intent test and its own --name. Omit the flags on a terminal to run guided: the CLI asks four numbered questions (split, name, path and task), then the questions your task needs, such as the label column or the image resolution. See Guided ingest. Add --dry-run to check your data and your secure environment without creating anything.

Guided ingest

Run tracebloc data ingest on a terminal without flags, and the CLI asks one question at a time. A flag you do pass becomes that question’s default, and the question is still asked. If your flags already answer every question, the CLI goes straight to the review. Questions with a numbered list. Type the option’s number, or its name: the whole option, or its first word (for a task, the --task value alone). Case doesn’t matter. A number always means the position in the list. If a word matches more than one option, or the answer matches none, the CLI asks again: “Type a number from 1 to N or the option’s name”. Press Enter to take the default shown in brackets, for example [2]. Other questions. Type the value. Press Enter to take the default shown in brackets. If the answer isn’t valid, the CLI says why and asks again. On any question except the last, type ? for a short hint. Press Ctrl-C to stop at any step, or answer n at the last question: the CLI prints “Cancelled — nothing was ingested.” and creates nothing. Defaults from your last run. The defaults for split, name, path and task come from your previous guided ingest that finished or ran with --dry-run. The CLI saves those four answers in ~/.tracebloc/ingest-recall.json. Each dataset needs its own name, so check the name and the path when you switch between train and test: after ingesting the test split, the name offered may still be the test dataset’s. If the name you confirm already holds a dataset, the CLI asks “A dataset named … already exists — replace it?” before it copies anything. Answer n unless you mean to replace that dataset.

Image resolution

For an image task, the guided run asks for Image resolution: the size your images already are, written WxH — the width, the letter x, then the height, for example 1920x1080. tracebloc checks that every image has exactly this size; the ingest doesn’t resize them (training later resizes to the model’s input size). Press Enter to read it from your first image. --target-size and --min-size take the same WxH format. Type the letter x between the two numbers, not the × sign your file manager may show. To read an image’s size:
  • macOS: run sips -g pixelWidth -g pixelHeight <file> in Terminal, or select the file in Finder, choose File > Get Info and read Dimensions under More Info.
  • Linux: run file <file>; for a JPEG or PNG it prints the width and height.
  • Windows: right-click the file, choose Properties > Details and read Dimensions.
tracebloc data push (and tracebloc dataset push) is a deprecated alias of tracebloc data ingest and will be removed in a future release. Use data ingest.

Tasks

Pick one with --task:

Dataset layout

What you pass as <dataset> depends on the task family. A bare .csv file is accepted only for tabular and time-series tasks; image and text datasets must be a folder.
A single CSV — pass the file itself, or a folder holding exactly one .csv:
Time-series classification adds fixed sequence_id and timestamp columns — see its template.
Each task’s dataset template shows its exact columns and an example — for example causal language modeling, sequence-to-sequence, token classification, sentence-pair classification, embeddings, and semantic segmentation.
One data ingest is capped at 1 GiB total and 500 MiB per file. For image datasets, the images and their annotation or mask files count together.
If your dataset is over the cap, make it smaller (JPEG instead of PNG, a lower resolution, or fewer samples), or ingest it with the Helm ingestor chart, which has no size limit.

Key flags

Run tracebloc data ingest --help for the full list.

Exit codes

Useful when you script data ingest:

List and delete datasets

data delete is destructive and can’t be undone; it asks for confirmation (--yes skips it, --dry-run shows what would be deleted). The dataset’s catalog entry on tracebloc is kept as a record and marked unavailable, so experiments that used it keep their history. tracebloc data rm is an alias. Both commands accept --output-json.

Validate a config locally

Checks an ingest.yaml against the embedded v1 schema in milliseconds — no cluster required. Exits 0 when valid, 2 on schema violations, 3 when the file can’t be read or parsed. The declarative form (also accepted by the Helm ingestor chart), shown for a tabular dataset:
For object_detection, leave out csv and label and give images and annotations instead.

Command reference

data also answers to dataset. Add --help to any command for the full flag list, --verbose for step-by-step detail, or --plain to turn off color. For lifecycle tasks (upgrade, stop/start, uninstall), see Operations.

CLI or Helm chart?

Both submit to the same ingestion protocol — pick the one that fits your workflow:
  • CLI — local data on your workstation; the everyday choice. Handles copying and submission for you.
  • Helm ingestor chart — Kubernetes-native / GitOps, when your data is already staged on the cluster.