diff --git a/docs.json b/docs.json
index c42a987..e63e5a0 100644
--- a/docs.json
+++ b/docs.json
@@ -90,6 +90,7 @@
},
"environment-setup/configuration",
"environment-setup/operations",
+ "environment-setup/cli",
"environment-setup/security",
"environment-setup/troubleshooting"
]
@@ -146,12 +147,12 @@
},
"redirects": [
{ "source": "/getting-started/overview", "destination": "/overview/tracebloc" },
- { "source": "/getting-started/quickstart", "destination": "/environment-setup/setup-guide" },
+ { "source": "/getting-started/quickstart", "destination": "/environment-setup/quickstart" },
{ "source": "/getting-started/core-concepts", "destination": "/tools-help/key-terms" },
{ "source": "/getting-started/pricing", "destination": "https://tracebloc.io/#pricing" },
- { "source": "/environment-setup/deployment-guide", "destination": "/environment-setup/setup-guide" },
- { "source": "/environment-setup/local-deployment-guide-macos", "destination": "/environment-setup/setup-guide" },
- { "source": "/environment-setup/local-deployment-guide-linux", "destination": "/environment-setup/setup-guide" },
+ { "source": "/environment-setup/deployment-guide", "destination": "/environment-setup/deployment-environments" },
+ { "source": "/environment-setup/local-deployment-guide-macos", "destination": "/environment-setup/deploy-local" },
+ { "source": "/environment-setup/local-deployment-guide-linux", "destination": "/environment-setup/deploy-local" },
{ "source": "/environment-setup/azure-deployment-guide", "destination": "/environment-setup/eks-client-deployment-guide" },
{ "source": "/environment-setup/eks-deployment-guide", "destination": "/environment-setup/eks-client-deployment-guide" },
{ "source": "/environment-setup/architecture", "destination": "/environment-setup/configuration" },
@@ -168,7 +169,7 @@
{ "source": "/collaboration/leaderboard", "destination": "/join-use-case/model-evaluation" },
{ "source": "/collaboration/prizes", "destination": "/join-use-case/overview" },
{ "source": "/create-use-case/set-evaluation", "destination": "/create-use-case/evaluate-models" },
- { "source": "/client-setup/setup-requirements", "destination": "/environment-setup/setup-guide" },
+ { "source": "/client-setup/setup-requirements", "destination": "/environment-setup/quickstart" },
{ "source": "/training-guide/jupyter-notebook", "destination": "/join-use-case/start-training" },
{ "source": "/model-requirements/api-supported", "destination": "/tools-help/tracebloc" },
{ "source": "/model-requirements/model-zoo", "destination": "/create-use-case/templates" },
diff --git a/environment-setup/cli.mdx b/environment-setup/cli.mdx
new file mode 100644
index 0000000..ff83ae5
--- /dev/null
+++ b/environment-setup/cli.mdx
@@ -0,0 +1,101 @@
+---
+title: "tracebloc CLI"
+description: "Manage and operate your workspace from the command line — inspect the cluster, ingest and remove datasets, validate configs."
+---
+
+The `tracebloc` CLI is how you **manage and operate your workspace and its data** from your own machine: inspect the cluster, ingest datasets, remove them, validate configs — with more verbs on the way. It's the friendly front end to the same ingestion protocol the [Helm ingestor chart](https://github.com/tracebloc/client/tree/main/ingestor) speaks, so it works against any workspace running the `tracebloc/client` chart.
+
+
+You never touch Helm, edit YAML, or run `kubectl cp`. `dataset push` discovers your workspace, stages the files, submits, and streams the job for you.
+
+
+## Install
+
+If you deployed with the [Quick Start](/environment-setup/quickstart) one-liner, the CLI is **already installed**. Otherwise:
+
+
+
+ ```bash
+ curl -fsSL https://github.com/tracebloc/cli/releases/latest/download/install.sh | sh
+ ```
+
+
+ ```powershell
+ irm https://github.com/tracebloc/cli/releases/latest/download/install.ps1 | iex
+ ```
+
+
+
+Binaries are cosign-signed and multi-arch. Pin a version with `--version vX.Y.Z` (or `$env:RELEASE_VERSION` on Windows). Verify:
+```bash
+tracebloc version
+```
+
+## Operate your workspace
+
+```bash
+tracebloc cluster info
+```
+Shows the cluster, namespace, parent release, and ingestor-token state — your first check that the CLI can reach your workspace.
+
+
+If `cluster info` reports *"no parent client release found in namespace default"*, your client runs in another namespace — add `-n `, or set it once with `kubectl config set-context --current --namespace `. Every command below accepts `-n`.
+
+
+## Manage data
+
+**Ingest a dataset** — stage local data into your workspace and run ingestion in one step:
+```bash
+tracebloc dataset push ./train.csv \
+ --category tabular_classification \
+ --table my_dataset_train \
+ --intent train \
+ --label-column label
+```
+Omit the flags to run **guided** (the CLI prompts you), or add `--dry-run` to preview without submitting. Under the hood it discovers your workspace, validates the schema locally, mints a token, stages the files to the shared volume, submits, and watches the job.
+
+It covers 9 task categories: `image_classification`, `object_detection`, `keypoint_detection`, `text_classification`, `masked_language_modeling`, `tabular_classification`, `tabular_regression`, `time_series_forecasting`, `time_to_event_prediction`.
+
+**Remove a dataset** — delete its table and staged files:
+```bash
+tracebloc dataset rm my_dataset_train
+```
+
+## Validate a config locally
+
+```bash
+tracebloc ingest validate ingest.yaml
+```
+Checks an `ingest.yaml` against the embedded schema — no cluster required. The declarative form (also accepted by the Helm ingestor chart):
+```yaml
+apiVersion: tracebloc.io/v1
+kind: IngestConfig
+category: tabular_classification
+table: my_dataset_train
+intent: train
+csv: /data/shared/my_dataset/train.csv
+label: label
+```
+
+## Command reference
+
+| Command | Does |
+|---|---|
+| `tracebloc dataset push ` | Stage + ingest a local dataset (guided if you omit flags) |
+| `tracebloc dataset rm ` | Delete a pushed dataset (table + staged files) |
+| `tracebloc cluster info` | Cluster, namespace, parent release, and token state |
+| `tracebloc ingest validate ` | Validate an `ingest.yaml` against the v1 schema, locally |
+| `tracebloc version` | CLI version, git SHA, and build date |
+| `tracebloc completion` | Generate shell completion |
+
+Add `--help` to any command for the full flag list. For workspace lifecycle (upgrade, stop/start, uninstall), see [Operations](/environment-setup/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 staging and submission for you.
+- **[Helm ingestor chart](https://github.com/tracebloc/client/tree/main/ingestor)** — Kubernetes-native / GitOps, when your data is already staged on the cluster.
+
+## Coming soon
+
+Cloud-source ingestion (S3 / GCS / HTTPS) for large datasets, a `dataset list` verb, and `semantic_segmentation` support.
diff --git a/environment-setup/operations.mdx b/environment-setup/operations.mdx
index e256445..3f57c13 100644
--- a/environment-setup/operations.mdx
+++ b/environment-setup/operations.mdx
@@ -5,6 +5,10 @@ description: "Run, monitor, upgrade, and maintain a tracebloc workspace day to d
Everything you do *after* your workspace is running. Commands assume the default namespace `tracebloc` — substitute yours if you changed it.
+
+Day-to-day management — inspecting the cluster, ingesting and removing data — is easiest with the [tracebloc CLI](/environment-setup/cli). The Helm/kubectl commands here cover the lifecycle bits the CLI doesn't (upgrade, stop/start, uninstall) and deeper debugging.
+
+
## Which version am I on?
```bash