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 <path> finds your secure environment, checks your data on your machine, copies it in, and follows the ingest to the end.Install
If you deployed with the Quick Start one-liner, the CLI is already installed. Otherwise, install the CLI on its own:- macOS / Linux
- Windows (PowerShell)
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:
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 <path> ingests a dataset: it copies the files into your secure environment’s storage, checks them there, and lists the dataset on tracebloc. Your data never leaves your infrastructure.
tracebloc data <path> is a shortcut for the same command. On a terminal, the CLI looks at the files first and asks only what they can’t say.
An ingest goes through these steps, and nothing is copied until the last one:
- The path. Drag a file or folder into the terminal, or type its path.
- The questions. For a table, which column the model should predict. The task when two tasks fit the data.
- The checks. The layout, the values, and what training needs. A problem that stops the ingest is a blocker; one you decide on is a warning.
- The summary. What goes where, and what leaves your secure environment.
- Ingest it as Training data or Test data. Your answer starts the copy.
--no-input; see Scripted ingest.
Guided ingest
tracebloc data ingest <path> on a terminal runs the guided ingest on this page. The commands, flags and checks in Scripted ingest work the same from a script.Give the path
Type the path aftertracebloc data, or run tracebloc data alone and drag the file or folder into the terminal when it asks:
~/My\ Data/patients\ \(2024\).csv.
Paths with spaces, quotes or a trailing space work as your terminal pastes them. tracebloc data . takes the folder you are in. If you give the folder above your dataset, the CLI finds the dataset inside it:
Answer the questions
The column to predict. For a table, the CLI lists each column with a few of its values and asks which one the model should predict. Columns that can’t be predicted, such as an ID column that holds a different value in every row, are listed with the reason and can’t be picked:
For a folder of images or texts, the layout settles the task and the CLI asks no question.
What the dataset holds. The CLI asks whether the data is about real patients. Press Enter for patient data, or choose open or synthetic data:
--holds to answer it up front, and the CLI doesn’t ask.
Columns to leave out. A column whose values look like IDs, names, email addresses or phone numbers could leave your secure environment with the dataset’s statistics. The CLI warns about it and offers to leave it out:
n to keep it. The summary lists what you left out.
The name. The dataset takes its name from the file or folder, for example churn_train for churn_train.csv. The CLI asks for a name only when the one it found is taken. One name in your account always means the same columns, and datasets of one name train together in a use case:
- If a dataset of that name with the same columns is on another of your secure environments, the CLI says so and Enter keeps the name.
- If it has other columns, that’s a blocker, and Enter takes the next free name:
Read the summary
Before anything is copied, the CLI shows what it will ingest, where, and what leaves your secure environment:
Ingest it as has no default. Choose
1 for Training data, the data models learn from, or 2 for Test data, the data models are scored on. Your answer starts the copy. If you pass --intent train or --intent test, the CLI doesn’t ask: the summary offers Ingest it as training data (or test data) and Change something, and asks Go ahead?. A use case needs both; see Pair test data with training data.
Change something
Choose3 to change an answer before you ingest:
The run
Once you choose Training data or Test data, the CLI copies the data and follows it to the end, one tick per step:churn_test.csv next to churn_train.csv, the CLI offers to ingest it now, as the other kind of data, with the same column and task. It takes its name from the first one: churn_w3_train makes the other half churn_w3_test.
y to ingest it. Enter or n ends the ingest, and What’s next? names the command for the other half. Test data that already pairs with training data on tracebloc isn’t offered the training half.
A folder that holds both a training and a test table asks which to ingest: both, or only one of them. For both, the summary asks Go ahead?, with Ingest it as training data or Change something, and the test table follows with the same column and task.
Stopping. Press Ctrl-C at any question and nothing is ingested. Press it during the copy and the CLI removes the partial copy: “Stopped. Nothing was ingested, and the partial copy was removed.” Once the copy is done and the run is submitted, the ingest goes on in your secure environment and the window can close. The dataset shows up in tracebloc data list when it’s done.
Choose the secure environment
The CLI ingests into your active secure environment, and the summary always names it. To ingest into another one this machine reaches, choose Change something › The secure environment, or pass its name:4 and ingests nothing. If you name a secure environment this machine doesn’t reach, the CLI lists the ones it does reach. --secure-environment finds the cluster and namespace for you: it can’t be combined with -n, and a --context that points at another cluster stops the ingest.
If the copy finds no room in your secure environment’s storage, nothing is copied and the run exits 7. Make room on the machine, for example with tracebloc data delete <name>, then ingest again.
Pair test data with training data
A use case trains on training data and scores models on test data for the same task. When you ingest test data, the CLI looks for training data on the same secure environment that it pairs with: the same columns, and no class the training data lacks.Checks before the copy
The CLI reads your files on your machine and runs the checks before anything is copied: the layout, the values, and what training needs. It prints each problem with what to do about it:- Blocker (✖): the ingest can’t go on. In a guided run the CLI waits: “Fix the files, then press Enter to check again.” A scripted run exits
3. - Warning (⚠): the ingest can go on, and you decide. A guided run asks, and its default is the safe answer. A scripted run prints the warning and goes on.
When a fix is a different command, the CLI prints that command in full, so you can copy it.
Scripted ingest
For a script or CI, pass--no-input. The CLI asks nothing: what the flags leave out, the files fill in. When they can’t, the run exits 2 and names the flag to add.
- The task and the name come from the files when you leave out
--taskand--name:✔ Tabular classification · predicts churn · name churn_train, from the files. If the column fits two tasks, the run exits2and prints the command for each, with--task. - The column to predict is
--label-column, for every table. If you mistype it, the run exits2and names the column it’s closest to. - A
--taskthat contradicts the files wins, with a warning that prints the command with the task the files show. - Columns to leave out:
--leave-out <column>, once per column. A column that looks like it could identify people is a warning, and the fix is the command with--leave-out. Naming a column the table doesn’t have stops the run. - Test data is
--intent test. - What the dataset holds:
--holds patient_data,open_dataorsynthetic_data. Without it, the dataset is marked as patient data. On a guided run, it answers the question up front. The mark decides which use case types you can create on the dataset, so pass--holds open_dataor--holds synthetic_datawhen your data is not patient data. - Where it goes:
--secure-environment <name>; see Choose the secure environment. - A dry run:
--dry-runruns the checks and connects to your secure environment, and creates nothing. On a terminal, a dry run asks its questions one by one, in four numbered steps, instead of showing the summary.
Image resolution
Every image has to be exactly the same size.--target-size is that size, written WxH: the width, the letter x, then the height, for example 512x512. The ingest checks every image against it and rejects any that differ, so resize the odd ones out before you ingest. Without the flag, the CLI takes the most common size among your images. --min-size WxH rejects images smaller than that before the ingest; set it to the smallest size your model can train on. Images smaller than 32x32 always stop the run before the copy.
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 tracebloc data.Tasks
Pick one with--task:
Dataset layout
What you pass as<path> 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.
- Tabular / time series
- Image
- Text
A single CSV — pass the file itself, or a folder holding exactly one An Excel workbook (
.csv:.xlsx or .xlsm) works too, as a file or as the only file in a folder: the copy holds its sheet as CSV. A workbook with more than one visible sheet needs --sheet.
Time-series forecasting orders the rows by a column named timestamp.
Time-series classification adds fixed sequence_id and timestamp columns — see its template.Key flags
Run
tracebloc data ingest --help for the full list.
Exit codes
Useful when you scriptdata ingest:
What’s next
When the training data and the test data are both in, the CLI names the next step:tracebloc data list.
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). Right after the delete, the CLI asks your secure environment to report its datasets to tracebloc, and My Data shows the dataset as Deleted within a few minutes. If that report can’t be made (for example, tracebloc is unreachable), the CLI says so and still exits 0: your secure environment’s next scheduled report, about hourly while it runs, marks the dataset Deleted. The dataset’s catalog entry on tracebloc is kept as a record, so experiments that used it keep their history. tracebloc data rm is an alias. Both commands accept --output-json; for data delete, platform_notified says whether tracebloc was told.
Validate a config locally
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:
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.