For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

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


Scope flags

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.


Output formats for list commands

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

Customize columns

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.


Output formats for get, create, and update commands

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.


Pagination flags

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.


Behavior flags

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


Exit codes

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)

--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.

Use exit codes in scripts to gate downstream work:


Environment variables

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/.


Last updated

Was this helpful?