Curiosity CLI

The Curiosity CLI (curiosity-cli) is a command-line tool for interacting with the Curiosity Workspace. It lets you manage deployments, ingest data, promote custom code between environments, and run administrative tasks.

Full reference

A page-per-command reference now lives under Developer Resources → Curiosity CLI. This page is a short cheat sheet from the customization angle; jump to /cli/ for installation, common options, and every flag of every command.

Installation

Install as a global .NET tool:

dotnet tool install Curiosity.CLI --global

Update later with:

dotnet tool update Curiosity.CLI --global

Full instructions, including local manifest installs and CI usage: Installation.

Common arguments

Most commands take the same two arguments to reach a workspace:

  • --server / -s — the URL of your workspace (e.g., https://my-workspace.example.com/).
  • --token / -t — a Library Token, created under Manage → Tokens → Library. Pass auto to read a previously stored token.
  • --timeout — per-request timeout in seconds (default: 90).

More in Common Options.

Quick reference

Command Purpose
test Verify URL + token by running a tiny query.
store-token Encrypt and store a token so other commands can use --token auto.
wait-for Block until the workspace's readiness probe returns true.
serve Serve a local custom-front-end bundle and proxy API calls to a remote workspace. --watch also compiles the project and reloads on every change.
upload-front-end Push a compiled Mosaik.FrontEnd bundle to a workspace.
inspect Report supported/unsupported files in a folder before ingestion.
upload-folder One-shot ingest of a local folder.
monitor Continuous folder sync.
upload-folder-with-permissions Windows: one-shot ingest that also propagates Active Directory ACLs.
monitor-with-permissions Windows: continuous sync that keeps ACLs aligned with AD.
ingest-pst Extract emails from a PST archive and upload them.
git-sync Serve a local git repo to the workspace's git tracker.
export-workspace-definitions Download custom tasks, indexes, and endpoints as a zip or directory.
import-workspace-definitions Upload custom tasks, indexes, and endpoints back into a workspace.
synthetic-csv / synthetic-json Copy a local CSV/JSON file with the same structure but synthetic values. No workspace needed.

Synthetic copies of local files

synthetic-csv and synthetic-json are the two commands that never reach a workspace: they take no --server and no --token, and read and write local files only.

curiosity-cli synthetic-csv  --input ./customers.csv --output ./customers.synthetic.csv
curiosity-cli synthetic-json --input ./export.json   --output ./export.synthetic.json

--input / -i and --output / -o are the only arguments, and both are required. The output keeps the input's structure — the header row and row count for CSV, every key, the nesting and every array length for JSON. Only the leaf values are replaced.

Each command samples the file first and classifies every column (for JSON, every property path) as boolean, numeric, repeated category, free text, or date, then rewrites the values according to that classification. A date column keeps the format it was written in, its granularity and any Z or +02:00 offset, and reproduces how often it was empty in the source. Re-running a command on the same input always produces the same output, so a synthetic file can be regenerated instead of stored next to the real one.

Every detected kind, the date rules, and the limits of what "synthetic" means here: Synthetic data.

Typical workflows from a customization perspective

© 2026 Curiosity. All rights reserved.