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. Passautoto 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
- Promote a custom front-end —
servelocally, thenupload-front-endper environment. See the end-to-end loop in Development Workflow. - Promote custom code (endpoints, tasks, indexes) —
export-workspace-definitionsfrom dev, commit the artifact,import-workspace-definitionsinto staging/prod. - Ingest a network share —
inspectfirst, thenupload-folderormonitor. For AD-permissioned shares on Windows, use the*-with-permissionsvariants. - Share a sample of real data —
synthetic-csv/synthetic-jsonproduce a structurally identical copy with made-up values, for a bug report or a test fixture.