Skip to content

Get Started with openstatus CLI

Time~10 minutes
LevelIntermediate
Prerequisitesopenstatus account, command line experience

In this tutorial, you’ll learn how to use the openstatus CLI to manage your monitors as code. This enables you to version control your monitoring configuration, automate deployments, and implement GitOps workflows.

  • An openstatus account
  • Command line experience
  • API token from your openstatus workspace (Settings → API)

By the end of this tutorial, you’ll have:

  • openstatus CLI installed on your system
  • Monitors exported to a YAML configuration file
  • Understanding of monitoring as code workflows
  • Ability to manage monitors programmatically
openstatus CLI in action showing monitor management

Install the openstatus CLI to manage your monitors directly from code.

Using Homebrew (recommended):

Terminal window
brew install openstatusHQ/cli/openstatus --cask

Or using the install script:

Terminal window
curl -fsSL https://raw.githubusercontent.com/openstatusHQ/cli/refs/heads/main/install.sh | bash
Terminal window
curl -fsSL https://raw.githubusercontent.com/openstatusHQ/cli/refs/heads/main/install.sh | bash
Terminal window
iwr https://raw.githubusercontent.com/openstatusHQ/cli/refs/heads/main/install.ps1 | iex

Run the following command to confirm the CLI is installed:

Terminal window
openstatus --version

You should see output like:

openstatus version x.x.x

Create an API key in your workspace settings (Settings → API), then set it as an environment variable:

Terminal window
# macOS / Linux
export OPENSTATUS_API_TOKEN=<your-api-token>
Terminal window
# Windows PowerShell
$env:OPENSTATUS_API_TOKEN="<your-api-token>"

Start by importing your existing monitors from your workspace to a YAML file:

Terminal window
openstatus monitors import

You should see output confirming the import:

Successfully imported X monitors to openstatus.yaml

This creates an openstatus.yaml file containing all your current monitors. This file becomes your single source of truth for monitoring configuration.

Checkpoint: Open the openstatus.yaml file and verify it contains your monitors. You should see entries with your monitor names and URLs.

Now you can add, remove, or update monitors in the YAML file and apply your changes:

Terminal window
openstatus monitors apply

The CLI will show you a diff of changes before applying them, ensuring you’re aware of what will be modified.

Excellent work! You’ve successfully:

  • ✅ Installed the openstatus CLI
  • ✅ Configured API authentication
  • ✅ Imported monitors to a YAML file
  • ✅ Learned the monitoring as code workflow

Cause: The CLI binary is not in your PATH.

Fix (macOS/Homebrew):

Terminal window
brew reinstall openstatusHQ/cli/openstatus --cask

Fix (install script): Ensure ~/.local/bin is in your PATH:

Terminal window
export PATH="$HOME/.local/bin:$PATH"

“unauthorized” or “invalid token” error

Section titled ““unauthorized” or “invalid token” error”

Cause: Your API token is missing or incorrect.

Fix:

  1. Verify the token is set: echo $OPENSTATUS_API_TOKEN
  2. Regenerate the token in your workspace settings (Settings → API)
  3. Make sure there are no extra spaces or newlines in the token value

Cause: Your workspace has no monitors, or the token belongs to a different workspace.

Fix: Create at least one monitor in the dashboard first, then retry the import.

Now that you have the CLI set up, you can:

With the CLI, you can:

  • Version control your monitoring configuration with Git
  • Review monitoring changes in pull requests
  • Automate monitor creation for new services
  • Sync monitors across multiple environments
  • Implement GitOps for infrastructure monitoring