> For the complete documentation index, see [llms.txt](https://docs.unitlab.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.unitlab.ai/api-sdk-cli/clis/cli-overview-and-output-modes.md).

# CLI overview and output modes

Navigate the command tree and choose concise human output or JSON output.

{% hint style="info" %}
**Outcome:** Navigate the command tree and choose concise human output or JSON output.
{% endhint %}

## Find a command

Start with the installed help, then narrow it to the task you want:

```bash
unitlab --help
unitlab project --help
unitlab project upload --help
```

| Work with                       | Command group                       |
| ------------------------------- | ----------------------------------- |
| Project data and uploads        | `unitlab project`                   |
| Upload processing               | `unitlab batch-queue`               |
| Reusable files and grouping     | `unitlab assets`, `unitlab folders` |
| Dataset membership and versions | `unitlab dataset`                   |
| Workflow tasks                  | `unitlab workflow`                  |
| Exported labels                 | `unitlab release`                   |
| Labels and classes              | `unitlab ontology`                  |
| Saved cloud connections         | `unitlab cloud`                     |
| Embedding spaces                | `unitlab embeddings`                |

## Choose readable or JSON output

After [authentication](/api-sdk-cli/get-started/authentication-and-configuration.md), these two commands read the same projects:

```bash
unitlab project list
unitlab project list --json
```

Use the first when reading results in a terminal. Use `--json` when another program parses them. For example, save the result to a local file:

```bash
unitlab project list --json > projects.json
```

`projects.json` is command output for your script. It is not a media-upload manifest. Most resource commands support `--json`; confirm options with that command's `--help`.

For a complete create/upload/check sequence, use the [CLI quickstart](/api-sdk-cli/get-started/cli-quickstart.md).

## Upload guides

* [Project files and folders](/api-sdk-cli/sdks/project-uploads.md) with the Python SDK.
* [CLI project uploads](/api-sdk-cli/clis/cli-projects-and-data-units.md) and [CLI Asset uploads](/api-sdk-cli/clis/cli-assets-and-folders.md).
* [Data Group automation](/api-sdk-cli/sdks/data-group-automation.md) using filename rules.
* [Annotation imports](/api-sdk-cli/sdks/annotation-imports.md), available through the Python SDK. Version 3.1.3 does not include an annotation-import CLI command.

## Check failures before retrying

A command can report partial success. For uploads, keep the Batch Queue ID and inspect both local upload failures and server processing failures. For exports, keep the release ID and check preparation status. Repeating a create or upload command can create another resource.

Start with a small dataset and use the installed command help when upgrading the package.

***

> **Related Unitlab capability guides:** [Unitlab’s data annotation platform](https://unitlab.ai/en/data-annotation)
