diff --git a/apps/docs/content/docs/en/cli/authentication.mdx b/apps/docs/content/docs/en/cli/authentication.mdx
index b913ddf7550..72ad91065b0 100644
--- a/apps/docs/content/docs/en/cli/authentication.mdx
+++ b/apps/docs/content/docs/en/cli/authentication.mdx
@@ -56,11 +56,18 @@ re-logging into an existing profile preselects the one already configured.
## Checking who you are
```bash
-sim whoami
+sim whoami # resolved settings, plus a live check that they work
+sim whoami --no-verify # resolved settings only, no request
```
-Prints the resolved endpoint, workspace, output format, and account, and which
-source each value came from.
+Prints the resolved endpoint, workspace, and output format, and which source each
+value came from, then reads the configured workspace to prove the key is accepted
+and can reach it.
+
+It exits `0` when the check passes, `1` when the credentials are wrong, and `2`
+when the check could not be made at all — no workspace to check against, or an
+endpoint that did not answer. The split matters in CI: only `1` is fixed by
+logging in again.
## Signing out
diff --git a/apps/docs/content/docs/en/cli/commands.mdx b/apps/docs/content/docs/en/cli/commands.mdx
index dab4a4295f2..cbe18f15bbf 100644
--- a/apps/docs/content/docs/en/cli/commands.mdx
+++ b/apps/docs/content/docs/en/cli/commands.mdx
@@ -78,12 +78,22 @@ sim logout [options]
-## Show the resolved profile and where each setting came from
+## Show the resolved profile, where each setting came from, and whether it works
```bash
-sim whoami
+sim whoami [options]
```
+**Options**
+
+
+
+| Option | Required | Description |
+| --- | --- | --- |
+| `--no-verify` | No | Skip the API check and only print the resolved settings. |
+
+
+
## List the profiles defined in the config and credentials files
```bash
diff --git a/apps/docs/content/docs/en/cli/credentials.mdx b/apps/docs/content/docs/en/cli/credentials.mdx
index 534d284bf88..ff0e850e2c3 100644
--- a/apps/docs/content/docs/en/cli/credentials.mdx
+++ b/apps/docs/content/docs/en/cli/credentials.mdx
@@ -31,7 +31,7 @@ sim credentials delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
diff --git a/apps/docs/content/docs/en/cli/custom-tools.mdx b/apps/docs/content/docs/en/cli/custom-tools.mdx
index 4830c239cc6..97e61c50269 100644
--- a/apps/docs/content/docs/en/cli/custom-tools.mdx
+++ b/apps/docs/content/docs/en/cli/custom-tools.mdx
@@ -49,7 +49,7 @@ sim custom-tools delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
diff --git a/apps/docs/content/docs/en/cli/files.mdx b/apps/docs/content/docs/en/cli/files.mdx
index 43e106fac57..77cf0ca74c2 100644
--- a/apps/docs/content/docs/en/cli/files.mdx
+++ b/apps/docs/content/docs/en/cli/files.mdx
@@ -22,7 +22,7 @@ sim files batch-delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--file-ids ` | Yes | File identifiers to update. (space-separated, or @path / @- with one value per line). |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -40,7 +40,7 @@ sim files create [options]
| --- | --- | --- |
| `--name ` | Yes | File name, including its extension. Path separators and dot segments are rejected. |
| `--content-type ` | No | MIME type. When omitted, it is inferred from the file extension. |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
| `--content ` | No | Initial file content. Omit or send an empty string for a zero-byte file. The 70,000,000-character bound guards the JSON envelope; the decoded bytes must be at most 50 MiB, and a longer base64 payload is rejected with `413`. Use an upload session for anything larger. |
| `--encoding ` | No | Encoding of the content field. Accepted values: `utf-8`, `base64`. |
@@ -58,7 +58,7 @@ sim files folders create
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -74,7 +74,7 @@ sim files folders delete [options]
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -85,7 +85,7 @@ sim files folders delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--recursive` | No | Delete the folder and its descendants. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -124,8 +124,8 @@ Also available as `sim files folders mv`.
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
-| `destination` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
+| `destination` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -151,7 +151,7 @@ sim files delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -238,7 +238,7 @@ sim files list [options]
| Option | Required | Description |
| --- | --- | --- |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
| `--scope ` | No | Which lifecycle set to list: `active` (default) for live files, `archived` for files a `DELETE` soft-deleted. `folderPath` resolves against active folders only, so pairing it with `scope=archived` returns an empty page when the containing folder was archived too. Accepted values: `active`, `archived`. |
| `--search ` | No | Case-insensitive substring match against the file name. |
| `--sort-by ` | No | Field used to sort the result. Sorting by `name` is case-sensitive and follows the storage collation, so do not rely on a case-insensitive order. Accepted values: `name`, `size`, `uploadedAt`, `updatedAt`. |
@@ -292,10 +292,10 @@ sim files rename [options]
-## Restore file
+## Restore an archived file
```bash
-sim files restore create
+sim files restore
```
**Arguments**
@@ -357,7 +357,7 @@ sim files upload [options]
| Option | Required | Description |
| --- | --- | --- |
-| `--folder ` | No | Destination folder path (defaults to /). |
+| `--folder ` | No | Folder path as shown in the app; defaults to the root folder. |
| `--name ` | No | Store it under a different name. |
diff --git a/apps/docs/content/docs/en/cli/knowledge.mdx b/apps/docs/content/docs/en/cli/knowledge.mdx
index 2333dc80edb..90f17671e7b 100644
--- a/apps/docs/content/docs/en/cli/knowledge.mdx
+++ b/apps/docs/content/docs/en/cli/knowledge.mdx
@@ -61,7 +61,7 @@ sim knowledge documents delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -116,7 +116,7 @@ sim knowledge documents list [options]
## Update document
```bash
-sim knowledge documents update [options]
+sim knowledge documents update [options]
```
**Arguments**
@@ -125,7 +125,7 @@ sim knowledge documents update [options]
| Argument | Required | Description |
| --- | --- | --- |
-| `id` | Yes | Unique knowledge base identifier. |
+| `knowledgeBaseId` | Yes | Unique knowledge base identifier. |
| `documentId` | Yes | Unique knowledge document identifier. |
@@ -209,7 +209,7 @@ sim knowledge create [options]
| `--name ` | Yes | Human-readable knowledge base name. |
| `--description ` | No | Optional knowledge base description. |
| `--chunking-config ` | No | Chunking configuration; defaults are applied when omitted. (JSON, or @path / @- to read a file or stdin). |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
@@ -225,7 +225,7 @@ sim knowledge folders create
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -241,7 +241,7 @@ sim knowledge folders delete [options]
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -252,7 +252,7 @@ sim knowledge folders delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--recursive` | No | Delete the folder and its descendants. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -291,8 +291,8 @@ Also available as `sim knowledge folders mv`.
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
-| `destination` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
+| `destination` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -318,7 +318,7 @@ sim knowledge delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -350,7 +350,7 @@ sim knowledge list [options]
| Option | Required | Description |
| --- | --- | --- |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
| `--search ` | No | Case-insensitive substring match against the resource name. |
| `--sort-by ` | No | Field used to sort the result. Sorting by `name` is case-sensitive and follows the storage collation, so do not rely on a case-insensitive order. Accepted values: `name`, `createdAt`, `updatedAt`. |
| `--sort-order ` | No | Sort direction. Accepted values: `asc`, `desc`. |
@@ -361,7 +361,7 @@ sim knowledge list [options]
## List tags
```bash
-sim knowledge tags list
+sim knowledge tags list
```
**Arguments**
@@ -370,7 +370,7 @@ sim knowledge tags list
| Argument | Required | Description |
| --- | --- | --- |
-| `id` | Yes | Unique knowledge base identifier. |
+| `knowledgeBaseId` | Yes | Unique knowledge base identifier. |
@@ -423,7 +423,7 @@ sim knowledge update [options]
| `--name ` | No | New knowledge base name. |
| `--description ` | No | New knowledge base description. |
| `--chunking-config ` | No | New document chunking configuration. (JSON, or @path / @- to read a file or stdin). |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
@@ -440,7 +440,7 @@ sim knowledge mv
| Argument | Required | Description |
| --- | --- | --- |
| `id` | Yes | Unique knowledge base identifier. |
-| `folder` | Yes | Folder path; the leading / is optional |
+| `folder` | Yes | Folder path as shown in the app; the leading / is optional |
diff --git a/apps/docs/content/docs/en/cli/logs.mdx b/apps/docs/content/docs/en/cli/logs.mdx
index 1418a0226b0..d2c3420c550 100644
--- a/apps/docs/content/docs/en/cli/logs.mdx
+++ b/apps/docs/content/docs/en/cli/logs.mdx
@@ -57,12 +57,12 @@ sim logs list [options]
| `--min-cost ` | No | Minimum execution cost in USD, from 0 to 1000000. A run is never charged a negative amount, so a negative bound is rejected rather than treated as a filter that matches every run. |
| `--max-cost ` | No | Maximum execution cost in USD, from 0 to 1000000. A run is never charged a negative amount, so a negative bound is rejected rather than treated as a filter that matches every run. |
| `--model ` | No | AI model used during execution. |
-| `--details ` | No | Response detail level. Accepted values: `basic`, `full`. |
+| `--details ` | No | Response detail level; full is requested by default to name each run’s workflow. Accepted values: `basic`, `full`. |
| `--include-trace-spans` | No | Include trace spans in JSON or YAML output (implies full detail). |
| `--include-final-output` | No | Include final output in JSON or YAML output (implies full detail). |
| `--limit ` | No | Maximum items to return (0 for everything). Defaults to `100`. |
| `--order ` | No | Sort direction by execution start time. This list is sortable only by execution start time, so it takes `order` in place of `sortBy`/`sortOrder`, which it rejects. Accepted values: `asc`, `desc`. |
| `--run-id ` | No | Exact run identifier to match. |
-| `--folder ` | No | Folder path; the leading / is optional (space-separated, or @path / @- with one value per line). |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional (space-separated, or @path / @- with one value per line). |
diff --git a/apps/docs/content/docs/en/cli/mcp-servers.mdx b/apps/docs/content/docs/en/cli/mcp-servers.mdx
index ea6c97506f0..46afdcad279 100644
--- a/apps/docs/content/docs/en/cli/mcp-servers.mdx
+++ b/apps/docs/content/docs/en/cli/mcp-servers.mdx
@@ -58,7 +58,7 @@ sim mcp-servers delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
diff --git a/apps/docs/content/docs/en/cli/reference.mdx b/apps/docs/content/docs/en/cli/reference.mdx
index cd24d1722fb..51250137abb 100644
--- a/apps/docs/content/docs/en/cli/reference.mdx
+++ b/apps/docs/content/docs/en/cli/reference.mdx
@@ -64,12 +64,22 @@ sim logout [options]
## sim whoami
-Show the resolved profile and where each setting came from
+Show the resolved profile, where each setting came from, and whether it works
```bash
-sim whoami
+sim whoami [options]
```
+**Options**
+
+
+
+| Option | Required | Description |
+| --- | --- | --- |
+| `--no-verify` | No | Skip the API check and only print the resolved settings. |
+
+
+
## sim profiles
List the profiles defined in the config and credentials files
@@ -232,7 +242,7 @@ sim credentials delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -402,7 +412,7 @@ sim custom-tools delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -494,7 +504,7 @@ sim files batch-delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--file-ids ` | Yes | File identifiers to update. (space-separated, or @path / @- with one value per line). |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -514,7 +524,7 @@ sim files create [options]
| --- | --- | --- |
| `--name ` | Yes | File name, including its extension. Path separators and dot segments are rejected. |
| `--content-type ` | No | MIME type. When omitted, it is inferred from the file extension. |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
| `--content ` | No | Initial file content. Omit or send an empty string for a zero-byte file. The 70,000,000-character bound guards the JSON envelope; the decoded bytes must be at most 50 MiB, and a longer base64 payload is rejected with `413`. Use an upload session for anything larger. |
| `--encoding ` | No | Encoding of the content field. Accepted values: `utf-8`, `base64`. |
@@ -534,7 +544,7 @@ sim files folders create
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -552,7 +562,7 @@ sim files folders delete [options]
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -563,7 +573,7 @@ sim files folders delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--recursive` | No | Delete the folder and its descendants. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -606,8 +616,8 @@ Also available as `sim files folders mv`.
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
-| `destination` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
+| `destination` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -635,7 +645,7 @@ sim files delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -730,7 +740,7 @@ sim files list [options]
| Option | Required | Description |
| --- | --- | --- |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
| `--scope ` | No | Which lifecycle set to list: `active` (default) for live files, `archived` for files a `DELETE` soft-deleted. `folderPath` resolves against active folders only, so pairing it with `scope=archived` returns an empty page when the containing folder was archived too. Accepted values: `active`, `archived`. |
| `--search ` | No | Case-insensitive substring match against the file name. |
| `--sort-by ` | No | Field used to sort the result. Sorting by `name` is case-sensitive and follows the storage collation, so do not rely on a case-insensitive order. Accepted values: `name`, `size`, `uploadedAt`, `updatedAt`. |
@@ -788,12 +798,12 @@ sim files rename [options]
-### sim files restore create
+### sim files restore
-Restore File
+Restore an archived file
```bash
-sim files restore create
+sim files restore
```
**Arguments**
@@ -859,7 +869,7 @@ sim files upload [options]
| Option | Required | Description |
| --- | --- | --- |
-| `--folder ` | No | Destination folder path (defaults to /). |
+| `--folder ` | No | Folder path as shown in the app; defaults to the root folder. |
| `--name ` | No | Store it under a different name. |
@@ -1000,7 +1010,7 @@ sim knowledge documents delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -1061,7 +1071,7 @@ sim knowledge documents list [options]
Update Document
```bash
-sim knowledge documents update [options]
+sim knowledge documents update [options]
```
**Arguments**
@@ -1070,7 +1080,7 @@ sim knowledge documents update [options]
| Argument | Required | Description |
| --- | --- | --- |
-| `id` | Yes | Unique knowledge base identifier. |
+| `knowledgeBaseId` | Yes | Unique knowledge base identifier. |
| `documentId` | Yes | Unique knowledge document identifier. |
@@ -1158,7 +1168,7 @@ sim knowledge create [options]
| `--name ` | Yes | Human-readable knowledge base name. |
| `--description ` | No | Optional knowledge base description. |
| `--chunking-config ` | No | Chunking configuration; defaults are applied when omitted. (JSON, or @path / @- to read a file or stdin). |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
@@ -1176,7 +1186,7 @@ sim knowledge folders create
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -1194,7 +1204,7 @@ sim knowledge folders delete [options]
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -1205,7 +1215,7 @@ sim knowledge folders delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--recursive` | No | Delete the folder and its descendants. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -1248,8 +1258,8 @@ Also available as `sim knowledge folders mv`.
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
-| `destination` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
+| `destination` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -1277,7 +1287,7 @@ sim knowledge delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -1313,7 +1323,7 @@ sim knowledge list [options]
| Option | Required | Description |
| --- | --- | --- |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
| `--search ` | No | Case-insensitive substring match against the resource name. |
| `--sort-by ` | No | Field used to sort the result. Sorting by `name` is case-sensitive and follows the storage collation, so do not rely on a case-insensitive order. Accepted values: `name`, `createdAt`, `updatedAt`. |
| `--sort-order ` | No | Sort direction. Accepted values: `asc`, `desc`. |
@@ -1326,7 +1336,7 @@ sim knowledge list [options]
List Tags
```bash
-sim knowledge tags list
+sim knowledge tags list
```
**Arguments**
@@ -1335,7 +1345,7 @@ sim knowledge tags list
| Argument | Required | Description |
| --- | --- | --- |
-| `id` | Yes | Unique knowledge base identifier. |
+| `knowledgeBaseId` | Yes | Unique knowledge base identifier. |
@@ -1392,7 +1402,7 @@ sim knowledge update [options]
| `--name ` | No | New knowledge base name. |
| `--description ` | No | New knowledge base description. |
| `--chunking-config ` | No | New document chunking configuration. (JSON, or @path / @- to read a file or stdin). |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
@@ -1411,7 +1421,7 @@ sim knowledge mv
| Argument | Required | Description |
| --- | --- | --- |
| `id` | Yes | Unique knowledge base identifier. |
-| `folder` | Yes | Folder path; the leading / is optional |
+| `folder` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -1518,13 +1528,13 @@ sim logs list [options]
| `--min-cost ` | No | Minimum execution cost in USD, from 0 to 1000000. A run is never charged a negative amount, so a negative bound is rejected rather than treated as a filter that matches every run. |
| `--max-cost ` | No | Maximum execution cost in USD, from 0 to 1000000. A run is never charged a negative amount, so a negative bound is rejected rather than treated as a filter that matches every run. |
| `--model ` | No | AI model used during execution. |
-| `--details ` | No | Response detail level. Accepted values: `basic`, `full`. |
+| `--details ` | No | Response detail level; full is requested by default to name each run’s workflow. Accepted values: `basic`, `full`. |
| `--include-trace-spans` | No | Include trace spans in JSON or YAML output (implies full detail). |
| `--include-final-output` | No | Include final output in JSON or YAML output (implies full detail). |
| `--limit ` | No | Maximum items to return (0 for everything). Defaults to `100`. |
| `--order ` | No | Sort direction by execution start time. This list is sortable only by execution start time, so it takes `order` in place of `sortBy`/`sortOrder`, which it rejects. Accepted values: `asc`, `desc`. |
| `--run-id ` | No | Exact run identifier to match. |
-| `--folder ` | No | Folder path; the leading / is optional (space-separated, or @path / @- with one value per line). |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional (space-separated, or @path / @- with one value per line). |
@@ -1585,7 +1595,7 @@ sim mcp-servers delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -1725,7 +1735,7 @@ sim secrets delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--scope ` | Yes | Whether the secret belongs to the workspace or to the caller. A personal secret belongs to the caller across every workspace, not to one workspace. Accepted values: `workspace`, `personal`. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -1828,7 +1838,7 @@ sim skills delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -1958,7 +1968,7 @@ sim tables columns delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--column-name ` | Yes | Name of the column to delete. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -2080,7 +2090,7 @@ sim tables groups delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--group-id ` | Yes | Workflow group to delete. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -2307,7 +2317,7 @@ sim tables create [options]
| `--name ` | Yes | Identifier: letters, numbers, and underscores; cannot start with a number. |
| `--description ` | No | Optional table description. |
| `--schema ` | Yes | Table schema: {"columns":[{"name":"email","type":"string"}]} (JSON, or @path / @- to read a file or stdin). |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
@@ -2325,7 +2335,7 @@ sim tables folders create
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -2343,7 +2353,7 @@ sim tables folders delete [options]
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -2354,7 +2364,7 @@ sim tables folders delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--recursive` | No | Delete the folder and its descendants. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -2397,8 +2407,8 @@ Also available as `sim tables folders mv`.
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
-| `destination` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
+| `destination` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -2456,7 +2466,7 @@ sim tables rows delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -2487,7 +2497,7 @@ sim tables rows batch-delete [options]
| `--filter ` | No | Predicate: {"all":[{"field":"status","op":"eq","value":"active"}]}; groups use all/any. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin). |
| `--limit ` | No | Maximum items to return (0 for everything). Defaults to `100`. |
| `--row ` | No | Explicit row identifiers to delete. (space-separated, or @path / @- with one value per line). |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -2515,7 +2525,7 @@ sim tables rows find [options]
| Option | Required | Description |
| --- | --- | --- |
-| `--q ` | Yes | Value to find. |
+| `--query ` | Yes | Value to find. |
| `--filter ` | No | Predicate: {"all":[{"field":"status","op":"eq","value":"active"}]}; groups use all/any. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin). |
| `--sort ` | No | Ordered sort keys: [{"field":"createdAt","direction":"desc"}] (direction: asc or desc) (JSON, or @path / @- to read a file or stdin). |
@@ -2598,6 +2608,34 @@ sim tables rows query [options]
+### sim tables rows count
+
+Count rows matching a filter
+
+```bash
+sim tables rows count [options]
+```
+
+**Arguments**
+
+
+
+| Argument | Required | Description |
+| --- | --- | --- |
+| `tableId` | Yes | Unique table identifier. |
+
+
+
+**Options**
+
+
+
+| Option | Required | Description |
+| --- | --- | --- |
+| `--filter ` | No | Predicate: {"all":[{"field":"status","op":"eq","value":"active"}]}; groups use all/any. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin). |
+
+
+
### sim tables rows enrich
Run one row’s enrichment group
@@ -2645,7 +2683,7 @@ sim tables rows batch-update [options]
| `--filter ` | Yes | Predicate: {"all":[{"field":"status","op":"eq","value":"active"}]}; groups use all/any. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin). |
| `--data ` | Yes | Row-data patch applied to every matching row. (JSON, or @path / @- to read a file or stdin). |
| `--limit ` | No | Maximum items to return (0 for everything). Defaults to `100`. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -2732,7 +2770,7 @@ sim tables views delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -2830,7 +2868,7 @@ sim tables delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -2866,7 +2904,7 @@ sim tables list [options]
| Option | Required | Description |
| --- | --- | --- |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
| `--search ` | No | Case-insensitive substring match against the resource name. |
| `--sort-by ` | No | Field used to sort the result. Sorting by `name` is case-sensitive and follows the storage collation, so do not rely on a case-insensitive order. Accepted values: `name`, `createdAt`, `updatedAt`. |
| `--sort-order ` | No | Sort direction. Accepted values: `asc`, `desc`. |
@@ -2874,34 +2912,6 @@ sim tables list [options]
-### sim tables count create
-
-Count Rows
-
-```bash
-sim tables count create [options]
-```
-
-**Arguments**
-
-
-
-| Argument | Required | Description |
-| --- | --- | --- |
-| `tableId` | Yes | Unique table identifier. |
-
-
-
-**Options**
-
-
-
-| Option | Required | Description |
-| --- | --- | --- |
-| `--predicate ` | No | Recursive predicate tree. Each group node is exactly one non-empty `all` or `any` array whose members are further groups or `{ field, op, value }` conditions; the root must be a group, not a bare condition. At most 100 members per group, 10 levels of nesting, and 500 nodes in total. The negating operators include nulls: `ne`, `nin`, `ncontains`, `nlike`, and `nilike` match rows whose column is null or absent, so "not X" is not the complement of "X" over a nullable column. That holds for every column type, multi-select included. To exclude nulls, `all`-combine the negation with `isNotEmpty` (multi-select) or `isNotNull`. Comparison: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`. Membership: `in`, `nin` (array operand). Emptiness: `isEmpty`, `isNotEmpty`, `isNull`, `isNotNull` (no operand). Substring, always case-insensitive, operand matched literally: `contains`, `ncontains`, `startsWith`, `endsWith`. Pattern: `like`/`nlike` (case-sensitive), `ilike`/`nilike` (case-insensitive). **`*` is the only wildcard** and stands for any run of characters; `%`, `_`, and backslash match themselves. Use `like: "Hi*"`, not `like: "Hi%"`. A `select` column compares by option id and restricts its operators: single-select accepts `eq`, `ne`, `in`, `nin`; multi-select accepts `contains`, `ncontains`. Option names are accepted as operands and resolved to ids. (JSON, or @path / @- to read a file or stdin). |
-
-
-
### sim tables update
Update Table
@@ -2928,7 +2938,7 @@ sim tables update [options]
| --- | --- | --- |
| `--name ` | No | Identifier: letters, numbers, and underscores; cannot start with a number. |
| `--description ` | No | Replacement table description, or null to clear it. |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
@@ -2947,7 +2957,7 @@ sim tables mv
| Argument | Required | Description |
| --- | --- | --- |
| `tableId` | Yes | Unique table identifier. |
-| `folder` | Yes | Folder path; the leading / is optional |
+| `folder` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -3007,7 +3017,7 @@ sim tables import [path] [options]
| `--name ` | No | Identifier for the new table: letters, numbers, and underscores; defaults to the sanitized file name. |
| `--table-id ` | No | Import into this existing table instead of creating one. |
| `--mode ` | No | How to write into --table-id (default: append). Accepted values: `append`, `replace`. |
-| `--folder ` | No | Folder path for the new table. |
+| `--folder ` | No | Folder path for the new table, as shown in the app. |
| `--file-id ` | No | Import a file already in the workspace instead of a local path. |
| `--mapping ` | No | Column mapping (--table-id only). |
| `--create-columns ` | No | Columns to create (--table-id only). |
@@ -3195,7 +3205,7 @@ sim workflows create [options]
| --- | --- | --- |
| `--name ` | Yes | Workflow name. |
| `--description ` | No | Optional workflow description. |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
@@ -3213,7 +3223,7 @@ sim workflows folders create
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -3231,7 +3241,7 @@ sim workflows folders delete [options]
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -3242,7 +3252,7 @@ sim workflows folders delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--recursive` | No | Delete the folder and its descendants. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -3285,8 +3295,8 @@ Also available as `sim workflows folders mv`.
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
-| `destination` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
+| `destination` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -3314,7 +3324,7 @@ sim workflows delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -3417,12 +3427,12 @@ sim workflows get
-### sim workflows deployment list
+### sim workflows deployment status
-Get Workflow Deployment
+Show a workflow’s current deployment
```bash
-sim workflows deployment list
+sim workflows deployment status
```
**Arguments**
@@ -3497,7 +3507,7 @@ sim workflows import [options]
| Option | Required | Description |
| --- | --- | --- |
| `--workflow ` | Yes | Workflow export object, bare workflow state, or JSON string containing either form. (JSON, or @path / @- to read a file or stdin). |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
| `--name ` | No | Override for the imported workflow name. |
| `--description ` | No | Override for the imported workflow description. |
@@ -3517,7 +3527,7 @@ sim workflows list [options]
| Option | Required | Description |
| --- | --- | --- |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
| `--deployed-only` | No | Return only workflows with an active deployment when true. |
| `--no-deployed-only` | No | Send --deployed-only as false. |
| `--limit ` | No | Maximum items to return (0 for everything). Defaults to `100`. |
@@ -3599,7 +3609,7 @@ sim workflows update [options]
| --- | --- | --- |
| `--name ` | No | Replacement workflow name. |
| `--description ` | No | Replacement workflow description; null clears it. |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
@@ -3618,7 +3628,7 @@ sim workflows mv
| Argument | Required | Description |
| --- | --- | --- |
| `id` | Yes | Unique workflow identifier. |
-| `folder` | Yes | Folder path; the leading / is optional |
+| `folder` | Yes | Folder path as shown in the app; the leading / is optional |
diff --git a/apps/docs/content/docs/en/cli/scripting.mdx b/apps/docs/content/docs/en/cli/scripting.mdx
index 44627544323..32be39572b9 100644
--- a/apps/docs/content/docs/en/cli/scripting.mdx
+++ b/apps/docs/content/docs/en/cli/scripting.mdx
@@ -86,6 +86,7 @@ filter matching more rows than that silently affects only the first 100. Pass
| --- | --- |
| `0` | Success |
| `1` | Anything else — API error, bad configuration, invalid arguments, or a missing `--yes` |
+| `2` | `sim whoami` only: the check could not be made at all |
Errors print one line to stderr, prefixed `Error:`, plus the API's error code and
validation details when it supplies them. Failures are safe to branch on:
@@ -100,6 +101,20 @@ fi
An unexpected error prints a stack trace — that is a bug in the CLI, so please
[open an issue](https://github.com/simstudioai/sim/issues).
+`sim whoami` splits its failure in two because the fixes differ: `1` means the
+credentials are wrong and a fresh `sim login` is the answer, while `2` means the
+CLI never got a verdict — no workspace to check against, or an endpoint that did
+not answer — and logging in again would not help.
+
+```bash
+sim whoami > /dev/null
+case $? in
+ 0) ;; # ready
+ 1) echo "run: sim login" >&2; exit 1 ;;
+ 2) echo "endpoint unreachable, retrying later" >&2; exit 75 ;;
+esac
+```
+
## Selecting workflow output
`--select-output` takes `blockName.field` selectors. Fields that a run did not
diff --git a/apps/docs/content/docs/en/cli/secrets.mdx b/apps/docs/content/docs/en/cli/secrets.mdx
index 231a493adcd..b13dfb1751f 100644
--- a/apps/docs/content/docs/en/cli/secrets.mdx
+++ b/apps/docs/content/docs/en/cli/secrets.mdx
@@ -32,7 +32,7 @@ sim secrets delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--scope ` | Yes | Whether the secret belongs to the workspace or to the caller. A personal secret belongs to the caller across every workspace, not to one workspace. Accepted values: `workspace`, `personal`. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
diff --git a/apps/docs/content/docs/en/cli/skills.mdx b/apps/docs/content/docs/en/cli/skills.mdx
index e5560dd276f..a965506ec1c 100644
--- a/apps/docs/content/docs/en/cli/skills.mdx
+++ b/apps/docs/content/docs/en/cli/skills.mdx
@@ -49,7 +49,7 @@ sim skills delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
diff --git a/apps/docs/content/docs/en/cli/tables.mdx b/apps/docs/content/docs/en/cli/tables.mdx
index 281a03b44df..9f477ab9501 100644
--- a/apps/docs/content/docs/en/cli/tables.mdx
+++ b/apps/docs/content/docs/en/cli/tables.mdx
@@ -58,7 +58,7 @@ sim tables columns delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--column-name ` | Yes | Name of the column to delete. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -172,7 +172,7 @@ sim tables groups delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--group-id ` | Yes | Workflow group to delete. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -379,7 +379,7 @@ sim tables create [options]
| `--name ` | Yes | Identifier: letters, numbers, and underscores; cannot start with a number. |
| `--description ` | No | Optional table description. |
| `--schema ` | Yes | Table schema: {"columns":[{"name":"email","type":"string"}]} (JSON, or @path / @- to read a file or stdin). |
-| `--folder ` | No | Folder path; the leading / is optional. |
+| `--folder ` | No | Folder path as shown in the app; the leading / is optional. |
@@ -395,7 +395,7 @@ sim tables folders create
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -411,7 +411,7 @@ sim tables folders delete [options]
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -422,7 +422,7 @@ sim tables folders delete [options]
| Option | Required | Description |
| --- | --- | --- |
| `--recursive` | No | Delete the folder and its descendants. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -461,8 +461,8 @@ Also available as `sim tables folders mv`.
| Argument | Required | Description |
| --- | --- | --- |
-| `path` | Yes | Folder path; the leading / is optional |
-| `destination` | Yes | Folder path; the leading / is optional |
+| `path` | Yes | Folder path as shown in the app; the leading / is optional |
+| `destination` | Yes | Folder path as shown in the app; the leading / is optional |
@@ -516,7 +516,7 @@ sim tables rows delete [options]
| Option | Required | Description |
| --- | --- | --- |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -545,7 +545,7 @@ sim tables rows batch-delete [options]
| `--filter ` | No | Predicate: {"all":[{"field":"status","op":"eq","value":"active"}]}; groups use all/any. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin). |
| `--limit ` | No | Maximum items to return (0 for everything). Defaults to `100`. |
| `--row ` | No | Explicit row identifiers to delete. (space-separated, or @path / @- with one value per line). |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -571,7 +571,7 @@ sim tables rows find [options]
| Option | Required | Description |
| --- | --- | --- |
-| `--q ` | Yes | Value to find. |
+| `--query ` | Yes | Value to find. |
| `--filter ` | No | Predicate: {"all":[{"field":"status","op":"eq","value":"active"}]}; groups use all/any. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin). |
| `--sort ` | No | Ordered sort keys: [{"field":"createdAt","direction":"desc"}] (direction: asc or desc) (JSON, or @path / @- to read a file or stdin). |
@@ -648,6 +648,32 @@ sim tables rows query [options]
+## Count rows matching a filter
+
+```bash
+sim tables rows count [options]
+```
+
+**Arguments**
+
+
+
+| Argument | Required | Description |
+| --- | --- | --- |
+| `tableId` | Yes | Unique table identifier. |
+
+
+
+**Options**
+
+
+
+| Option | Required | Description |
+| --- | --- | --- |
+| `--filter ` | No | Predicate: {"all":[{"field":"status","op":"eq","value":"active"}]}; groups use all/any. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin). |
+
+
+
## Run one row’s enrichment group
```bash
@@ -691,7 +717,7 @@ sim tables rows batch-update [options]
| `--filter ` | Yes | Predicate: {"all":[{"field":"status","op":"eq","value":"active"}]}; groups use all/any. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin). |
| `--data ` | Yes | Row-data patch applied to every matching row. (JSON, or @path / @- to read a file or stdin). |
| `--limit ` | No | Maximum items to return (0 for everything). Defaults to `100`. |
-| `-y, --yes` | No | Skip the confirmation. |
+| `-y, --yes` | Yes | Confirm this destructive operation. |
@@ -772,7 +798,7 @@ sim tables views delete