---
title: Getting started
description: Ping CLI is a cross-platform command-line tool for managing the configuration of Ping Identity services. This guide walks you through verifying your installation, connecting to services, and running your first commands.
component: pingcli
version: 1.0
page_id: pingcli:using_pingcli:getting-started
canonical_url: https://developer.pingidentity.com/pingcli/1.0/using_pingcli/getting-started.html
revdate: June 5, 2026
section_ids:
  install-the-cli: Install the CLI
  connect-to-ping-identity-services: Connect to Ping Identity services
  authenticate: Authenticate
  understand-command-structure: Understand command structure
  get-help-for-any-command: Get help for any command
  global-options: Global options
  enable-shell-completion: Enable shell completion
  output-formats: Output formats
  send-feedback: Send feedback
  next-steps: Next steps
  learn-more: Learn more
---

# Getting started

Ping CLI is a cross-platform command-line tool for managing the configuration of Ping Identity services. This guide walks you through verifying your installation, connecting to services, and running your first commands.

## Install the CLI

To begin, select the appropriate method of installation instructions for your platform:

[icon: apple, set=fab, size=3x]

#### [macOS](../install/macos.html)

Install using Homebrew (recommended) or as a standalone binary.

[icon: linux, set=fab, size=3x]

#### [Linux](../install/linux.html)

Install using Homebrew, a native package (.apk, .deb, .rpm), or a standalone binary.

[icon: windows, set=fab, size=3x]

#### [Windows](../install/windows.html)

Install using a standalone binary download using PowerShell.

|   |                                                                                                                         |
| - | ----------------------------------------------------------------------------------------------------------------------- |
|   | Ping CLI can also be run as a container. Refer to [Docker installation](../install/docker.html) for setup instructions. |

Confirm Ping CLI is installed and check the version:

```console
pingcli --version
```

If the command returns a version number, Ping CLI is ready to use. If the command is not found, return to the installation instructions for your platform and ensure the executable is in your system's PATH.

## Connect to Ping Identity services

Ping CLI supports connections to multiple Ping Identity products and services simultaneously. Connection settings are organized into **profiles**: each profile represents a distinct logical environment, such as sandbox, development, or testing.

Within a profile, one instance of each supported product can be connected. For example, a `development` profile might point to your PingOne development tenant and a PingFederate development instance, while a separate `sandbox` profile connects to sandbox tenants of the same products. Switching the active profile redirects all CLI commands to the corresponding set of product instances without changing any individual service configuration.

This model lets you maintain separate credentials and service endpoints for each environment and switch between them quickly with a single command:

```console
pingcli config profiles use sandbox
```

The active profile is used automatically by every command that does not specify `--profile` explicitly.

To configure your first profile, use the interactive setup wizard:

```console
pingcli init
```

The wizard prompts you to select the services you want to connect, choose an authentication method, and enter the required credentials. Your answers are saved to `.pingcli/config.yaml` in your home directory.

|   |                                                                                                                                                                                    |
| - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | Individual service connectors expose their own `init` subcommand. For example, to configure only the PingOne connection for the active profile:```console
pingcli pingone init
``` |

For advanced setup (including scripted environments, multiple profiles, and CI/CD pipelines), see [Configure CLI settings](configure-settings.html). For a full guide to creating and switching between profiles, see [Managing Configuration Profiles](managing-configuration-profiles.html).

## Authenticate

After configuring your connections, log in to all configured services at once:

```console
pingcli auth login
```

Verify that authentication succeeded:

```console
pingcli auth status
```

The status command shows which services are authenticated, which have expired tokens, and which are not yet configured. When you are done, revoke and clear stored tokens with:

```console
pingcli auth logout
```

For token storage options and per-connector authentication, see [Authenticating to services](authenticating-to-services.html).

## Understand command structure

Ping CLI commands follow a consistent pattern:

```
pingcli [global options] <command> [subcommand] [flags]
```

Top-level commands correspond to functional areas:

| Command                | Purpose                                                                      |
| ---------------------- | ---------------------------------------------------------------------------- |
| `pingcli init`         | Run the guided setup wizard to connect Ping CLI to services.                 |
| `pingcli auth`         | Authenticate to all configured services, or check and revoke authentication. |
| `pingcli pingone`      | Administration tools for the PingOne platform and its universal services.    |
| `pingcli davinci`      | Administration tools for the DaVinci universal service.                      |
| `pingcli config`       | Manage the CLI configuration and profiles.                                   |
| `pingcli agent-skills` | Find and install agent skills for Ping CLI.                                  |
| `pingcli completion`   | Generate shell completion scripts.                                           |
| `pingcli feedback`     | Report issues and send feedback on the CLI.                                  |

Service connectors expose their own subcommands for operations, API requests, and authentication. For example, `pingcli pingone environments list` lists all PingOne environments, and `pingcli pingone api` sends a custom REST request to the PingOne management API.

## Get help for any command

Append `--help` to any command or subcommand to see its options and examples:

```console
pingcli --help
pingcli pingone --help
pingcli pingone environments --help
```

The help output lists available subcommands, flags, and usage examples. For a complete reference of every command and parameter, see the [Command reference](../command_reference/pingcli.html).

## Global options

The following options are available on all Ping CLI commands:

| Option                    | Description                                                                  |
| ------------------------- | ---------------------------------------------------------------------------- |
| `-h, --help`              | Display help for the command.                                                |
| `-O, --output-format`     | Set the output format: `text` (default), `json`, or `ndjson`.                |
| `-P, --profile`           | Specify a named configuration profile to use for the command.                |
| `-C, --config`            | Path to a custom configuration file (default: `$HOME/.pingcli/config.yaml`). |
| `--no-color`              | Disable colored text output.                                                 |
| `-D, --detailed-exitcode` | Return distinct exit codes for success (0), errors (1), and warnings (2).    |
| `--debug`                 | Enable debug output, including stack traces and transaction IDs.             |
| `--log-level`             | Set the console log level: `DEBUG`, `INFO`, `WARN` (default), or `ERROR`.    |

You can find a full list of configuration keys and their environment variable equivalents in [Configuration settings reference](../settings_reference/configuration-settings-reference.html).

## Enable shell completion

Ping CLI supports tab completion for bash, zsh, fish, and PowerShell. To enable it for your current session:

* bash

* zsh

* fish

* PowerShell

```console
source <(pingcli completion bash)
```

```console
source <(pingcli completion zsh)
```

```console
pingcli completion fish | source
```

```console
pingcli completion powershell | Out-String | Invoke-Expression
```

For instructions on making completion persistent across sessions, see [pingcli completion](../command_reference/pingcli_completion.html).

## Output formats

By default, Ping CLI outputs results as human-readable text. For machine processing or scripting, switch to JSON or newline-delimited JSON:

```console
pingcli --output-format json pingone environments list
```

The `--output-format` flag is available on all commands and can be set as a persistent default in your configuration:

```console
pingcli config set "outputFormat=json"
```

For more on the different output formats available, see [Output formats](output-formats.html) and for examples of handling and filtering output, see [Filtering and transforming output](filtering-output.html).

## Send feedback

To report issues or share feedback directly from the CLI:

```console
pingcli feedback
```

The command prints links to the Ping CLI issue tracker and feedback channels.

## Next steps

[icon: plug, set=fas, size=3x]

#### [Connect to services](connecting-ping-services.html)

Configure connections to PingOne, PingFederate, and other Ping Identity services.

[icon: key, set=fas, size=3x]

#### [Authenticate](authenticating-to-services.html)

Learn about interactive login, client credentials, token storage options, and non-interactive flows.

[icon: terminal, set=fas, size=3x]

#### [Command reference](../command_reference/pingcli.html)

Browse every command, subcommand, and flag available in Ping CLI.

## Learn more

* [pingcli config profiles use](../command_reference/pingcli_config_profiles_use.html)

* [pingcli init](../command_reference/pingcli_init.html)

* [pingcli pingone init](../command_reference/pingcli_pingone_init.html)

* [pingcli auth login](../command_reference/pingcli_auth_login.html)

* [pingcli auth status](../command_reference/pingcli_auth_status.html)

* [pingcli auth logout](../command_reference/pingcli_auth_logout.html)

* [pingcli completion](../command_reference/pingcli_completion.html)

* [pingcli config set](../command_reference/pingcli_config_set.html)

* [Configuration settings reference](../settings_reference/configuration-settings-reference.html)
