> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/harness-platform/use-harness-cli/harness-cli/global-flags-and-output.md).

# Global flags and output formats

Learn how to use global flags to control scope, output format, pagination, and behavior across all Harness CLI commands.

The Harness CLI provides a set of flags that work consistently across commands. Use these flags to control scope, output formatting, pagination, and command behavior. This page serves as a reference for the shared flags available throughout the CLI.

***

## What you will learn in this topic <a href="#what-you-will-learn-in-this-topic" id="what-you-will-learn-in-this-topic"></a>

By the end of this page, you will know how to:

* Control the account, organization, and project scope of commands.
* Switch between supported output formats.
* Customize which fields appear in command output.
* Paginate through large result sets or retrieve all results.
* Configure the CLI using environment variables.
* Interpret CLI exit codes in scripts and CI pipelines.

***

## Before you begin <a href="#before-you-begin" id="before-you-begin"></a>

* **Harness CLI installed and authenticated**: For setup steps, see [Install and upgrade](/harness-platform/use-harness-cli/harness-cli/install-and-upgrade.md) and [Authenticate](/harness-platform/use-harness-cli/harness-cli/authenticate.md).

***

## Scope flags <a href="#scope-flags" id="scope-flags"></a>

Use scope flags to control which account, organization, and project a command operates against. The CLI resolves scope in the following order: command-line flags, profile defaults, and then environment variables.

| Flag                            | Description                                                   |
| ------------------------------- | ------------------------------------------------------------- |
| `--profile <name>`              | Use a specific authentication profile.                        |
| `--org <id>`                    | Override the organization defined in the active profile.      |
| `--project <id>`                | Override the project defined in the active profile.           |
| `--level account\|org\|project` | Specify the scope for resources that support multiple levels. |

```sh
harness list secret --level account
harness list pipeline --org platform --project production
harness list connector --level org --org platform --profile prod
```

***

## Output formats for list commands <a href="#output-formats-for-list-commands" id="output-formats-for-list-commands"></a>

By default, `list` commands display results in a table. You can use the `--format` flag to produce machine-readable output or export data for external tools.

| Format     | Use case                                 | Notes                              |
| ---------- | ---------------------------------------- | ---------------------------------- |
| `table`    | Interactive terminal use                 | Default format for `list` commands |
| `json`     | Integration with tools that consume JSON | Returns a formatted JSON array     |
| `jsonl`    | Streaming and line-based processing      | Outputs one JSON object per line   |
| `csv`      | Spreadsheet and reporting tools          | Includes a header row              |
| `tsv`      | Tab-delimited processing                 | Includes a header row              |
| `markdown` | Documentation, pull requests, and wikis  | Renders output as a Markdown table |

```sh
harness list pipeline --format json
harness list pipeline --format jsonl | jq -r '.id'
harness list pipeline --format csv > pipelines.csv
harness list pipeline --json
```

### Customize columns <a href="#customize-columns" id="customize-columns"></a>

You can use `--columns` flag to control which columns appear in list output.

Run the `--list-columns` command to view the available columns for a resource.

```sh
harness list pipeline --list-columns
harness list pipeline --columns "name,id,project,lastRun"
harness list pipeline --columns "+lastRun"
harness list pipeline --columns "Name:it.name"
```

***

## Output formats for get, create, and update commands <a href="#output-formats-for-get-create-and-update-commands" id="output-formats-for-get-create-and-update-commands"></a>

Commands that operate on a single resource default to human-readable text output. Use the following flags to change the format or save output to a file.

| Flag                        | Description                                                                                                                           |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `--format text\|json\|yaml` | Output format. Default is `text`.                                                                                                     |
| `--json`                    | Shorthand for `--format json`.                                                                                                        |
| `--yaml`                    | Shorthand for `--format yaml`.                                                                                                        |
| `--fields <names>`          | Print only the specified comma-separated field names, tab-separated on output. Run `--list-fields` to discover available field names. |
| `--list-fields`             | Display available field identifiers and exit.                                                                                         |
| `--raw`                     | Return the complete API response envelope (JSON output only).                                                                         |
| `-o`, `--out <path>`        | Write output to a file instead of standard output.                                                                                    |

```sh
harness get pipeline my-pipeline --format json
harness get pipeline my-pipeline --raw --format json
harness get pipeline my-pipeline -o pipeline.yaml
```

***

## Pagination flags <a href="#pagination-flags" id="pagination-flags"></a>

List commands return paginated results by default. Use these flags to control how many records are returned.

These options are mutually exclusive. Use either `--all`, `--limit` and `--offset`, or `--count`.

| Flag           | Description                                                    |
| -------------- | -------------------------------------------------------------- |
| `--all`        | Retrieve all available results.                                |
| `--limit <N>`  | Return up to N results.                                        |
| `--offset <N>` | Skip the first 'N' results.                                    |
| `--count`      | Return the total number of results without retrieving records. |

```sh
harness list pipeline --count
harness list pipeline --all --format jsonl
harness list pipeline --limit 25 --offset 50
```

***

## Behavior flags <a href="#behavior-flags" id="behavior-flags"></a>

These flags modify how a command runs and are available on every command.

| Flag                  | Description                                                                                                      |
| --------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `--debug`             | Enable debug logging                                                                                             |
| `--timeout <seconds>` | Abort after N seconds; accepts decimals (`1.5`); `0` = no timeout; exits `124` on timeout                        |
| `--ui`                | Launch an interactive TUI - browse lists, pick resources, or open the live execution log viewer (requires a TTY) |
| `-h`, `--help`        | Help for the current command                                                                                     |

```sh
harness list pipeline --debug
harness execute pipeline deploy-prod --timeout 300
harness get execution_log my-pipeline/exec-123 --ui
```

***

## Exit codes <a href="#exit-codes" id="exit-codes"></a>

| Code  | Meaning                                                              |
| ----- | -------------------------------------------------------------------- |
| `0`   | Success                                                              |
| `1`   | Generic failure — validation error, API error, or resource not found |
| `2`   | Usage error — invalid flags or unknown command                       |
| `124` | Timed out — `--timeout` duration exceeded                            |
| `130` | Interrupted by the user (Ctrl+C)                                     |

{% hint style="info" %}
`--follow` is specific to `execute` commands. When you run `execute pipeline --follow`, the CLI exits with the terminal status of the pipeline execution, not `0`.
{% endhint %}

Use exit codes in scripts to gate downstream work:

```sh
if ! harness list pipeline --search deploy-prod --json | jq -e 'length > 0'; then
  echo "no matching pipelines"
  exit 1
fi
```

***

## Environment variables <a href="#environment-variables" id="environment-variables"></a>

Environment variables override saved profile settings and are the preferred authentication method in CI pipelines, Docker containers, and scripted environments.

| Variable              | Description                                                                                                                                        |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `HARNESS_API_KEY`     | API token. Takes precedence over saved profile credentials.                                                                                        |
| `HARNESS_ACCOUNT`     | Account ID. Used together with `HARNESS_API_KEY` for environment variable auth.                                                                    |
| `HARNESS_PROFILE`     | Name of the saved profile to use. Same effect as `--profile <name>`.                                                                               |
| `HARNESS_ORG`         | Default org for commands that need one. Overridden by `--org`.                                                                                     |
| `HARNESS_PROJECT`     | Default project for commands that need one. Overridden by `--project`.                                                                             |
| `HARNESS_API_URL`     | Override the API URL. Typically only needed for self-hosted Harness deployments.                                                                   |
| `HARNESS_DEBUG`       | Set to `1` to enable debug logging without passing `--debug`.                                                                                      |
| `HARNESS_NO_COLOR`    | Set to `1` to disable ANSI colors. `NO_COLOR` is also respected.                                                                                   |
| `HARNESS_CLI_COLUMNS` | Per-noun default `--columns` overrides. Semicolon-separated `noun=cols` pairs — for example `pipeline=id,name,status;execution=id,status,started`. |
| `HARNESS_CLI_HOME`    | Override the location of `~/.harness/`.                                                                                                            |

```sh
export HARNESS_API_KEY=pat.xxxxxxxxxxxxxxxxxx
export HARNESS_ACCOUNT=ZJL7VBAhRq6Pf9G4f5OqLg
harness list pipeline
```

***

## Related articles <a href="#related-articles" id="related-articles"></a>

* [Platform](/harness-platform/use-harness-cli/harness-cli/harness-cli-commands/platform-commands.md): Review detailed examples of platform resource operations.
* [Troubleshooting](/harness-platform/use-harness-cli/harness-cli/troubleshooting.md): Resolve common CLI errors.

{% @harness-feedback/feedback module="harness-ai" pagePath="harness-ai/use-harness-cli/harness-cli/global-flags-and-output" %}
