docs/sources/as-code/observability-as-code/grafana-cli/set-up-grafana-cli.md
You can configure Grafana CLI in two ways: using environment variables or through a configuration file.
{{< admonition type="note" >}}
Configuration items may change depending on your set-up. For example, use org-id for Grafana on-prem, but use stack-id for Grafana Cloud.
{{< /admonition >}}
Grafana CLI communicates with Grafana via its REST API, which requires authentication credentials.
At a minimum, set the URL of your Grafana instance and the organization ID:
GRAFANA_SERVER='http://localhost:3000' GRAFANA_ORG_ID='1' grafanactl config check
Depending on your authentication method, you may also need to set:
To persist your configuration, consider creating a context.
Contexts allow you to easily switch between multiple Grafana instances.
By default, the CLI uses a context named default. To configure it use:
grafanactl config set contexts.default.grafana.server http://localhost:3000
grafanactl config set contexts.default.grafana.org-id 1
# Authenticate with a service account token
grafanactl config set contexts.default.grafana.token service-account-token
# Or use basic authentication
grafanactl config set contexts.default.grafana.user admin
grafanactl config set contexts.default.grafana.password admin
You can define additional contexts in the same way:
grafanactl config set contexts.staging.grafana.server https://staging.grafana.example
grafanactl config set contexts.staging.grafana.org-id 1
{{< admonition type="note" >}}
In these examples, default and staging are the names of the contexts.
{{< /admonition >}}
Grafana CLI stores its configuration in a YAML file. The CLI determines the configuration file location in the following order:
--config flag is provided, the specified file is used.$XDG_CONFIG_HOME is set:
$XDG_CONFIG_HOME/grafanactl/config.yaml$HOME is set:
$HOME/.config/grafanactl/config.yaml$XDG_CONFIG_DIRS is set:
$XDG_CONFIG_DIRS/grafanactl/config.yaml{{< admonition type="note" >}}
Use grafanactl config check to display the configuration file currently in use.
{{< /admonition >}}
Check the current configuration:
grafanactl config check
{{< admonition type="note" >}} This command is useful to troubleshoot your configuration. {{< /admonition >}}
List all available contexts:
grafanactl config list-contexts
Switch to a specific context:
grafanactl config use-context staging
View the full configuration:
grafanactl config view