Skip to main content

What is Ankra CLI?

The Ankra CLI is a powerful command-line interface for interacting with the Ankra platform. It enables you to manage clusters, chat with AI about your infrastructure, browse Helm charts, manage credentials, deploy stacks, and automate platform operations directly from your terminal.

Features

  • SSO Login Browser-based authentication with PKCE
  • AI Chat Interactive and one-shot AI-powered troubleshooting
  • Organisation Management List, switch, create organisations, manage members
  • Cluster Management List, select, reconcile, provision, deprovision, delete, and clone clusters
  • Kubernetes Resources Browse pods, deployments, services, nodes, and other resources directly
  • Pod Logs Stream and tail pod logs with namespace and container filtering
  • Stack Management Create, list, rename, delete, clone between clusters, and view stack history
  • Addon Management List, configure, update, and uninstall cluster addons
  • Operations & Jobs Track operations, cancel running jobs, filter by kind and timestamp
  • Agent Management View agent status, manage tokens, trigger upgrades
  • Manifest Management List and inspect cluster manifests
  • In-Cluster Helm List and uninstall Helm releases running in the cluster
  • Helm Charts Browse, search, and get details on available charts
  • Helm Registries Manage organisation Helm registries and registry credentials
  • SOPS Encryption Encrypt and decrypt manifest and addon configuration files
  • Hetzner Cloud Provision and manage Hetzner Kubernetes clusters
  • OVH Cloud Provision and manage OVH Kubernetes clusters
  • UpCloud Provision and manage UpCloud Kubernetes clusters
  • Credentials Manage cloud provider and Git credentials
  • API Tokens Create, list, revoke, and delete API tokens
  • Shell Completion Generate completion scripts for bash, zsh, fish, and powershell
  • Secure Credentials stored locally in ~/.ankra.yaml

Installation

bash <(curl -sL https://github.com/ankraio/ankra-cli/releases/latest/download/install.sh)
After installation, verify with:
ankra --version

Direct Download

Download the binary directly from GitHub Releases.
chmod +x ankra
mv ankra ~/bin/ankra  # or /usr/local/bin/ankra

Authentication

The easiest way to authenticate is using browser-based SSO:
ankra login
This will:
  1. Open your browser to the Ankra login page
  2. After you authenticate, save your credentials locally
  3. You can then use all ankra CLI commands
Your credentials are saved to ~/.ankra.yaml. To logout and clear credentials:
ankra logout

Environment Variables (Alternative)

You can also use environment variables:
export ANKRA_API_TOKEN=your-token-here
export ANKRA_BASE_URL=https://platform.ankra.app  # optional
Add to your shell profile (~/.zshrc or ~/.bashrc) for persistence.

Quick Start

# 1. Login with SSO
ankra login

# 2. List your clusters
ankra cluster list

# 3. Select a cluster to work with
ankra cluster select

# 4. Start chatting with AI about your infrastructure
ankra chat "What's the status of my deployments?"

Command Reference

Authentication

login

Authenticate with the Ankra platform using browser-based SSO.
ankra login

logout

Remove saved credentials from ~/.ankra.yaml.
ankra logout

Organisation Management

Aliases: ankra org, ankra organisation, ankra organization

org list

List all organisations you belong to.
ankra org list

org switch

Switch to a different organisation.
ankra org switch <org_id>

org current

Show the currently selected organisation.
ankra org current

org create

Create a new organisation.
ankra org create <name>
ankra org create <name> --country <code>

org members

List members of an organisation.
ankra org members              # current organisation
ankra org members <org_id>     # specific organisation

org invite

Invite a user to the current organisation.
ankra org invite <email>
ankra org invite <email> --role admin    # role: member, admin, read-only

org remove

Remove a user from the current organisation.
ankra org remove <user_id>
ankra org remove <user_id> -f   # skip confirmation

AI Chat

chat

AI-powered chat for troubleshooting and assistance. Interactive mode:
ankra chat
ankra chat --cluster my-cluster  # with cluster context
One-shot mode:
ankra chat "Why are my pods in CrashLoopBackOff?"
ankra chat --cluster staging "How do I scale my deployment?"
Commands in interactive mode:
  • exit, quit, q Exit chat
  • clear Clear conversation history

chat health

Get AI-analyzed cluster health for the selected cluster.
ankra chat health
ankra chat health --ai  # include detailed AI analysis (default: true)

chat history

List previous chat conversations.
ankra chat history
ankra chat history --cluster my-cluster  # filter by cluster
ankra chat history --limit 10            # max conversations (default: 20)

chat show

Show a specific conversation.
ankra chat show <conversation_id>

chat delete

Delete a conversation.
ankra chat delete <conversation_id>

Cluster Operations

cluster list

List all clusters.
ankra cluster list

cluster info

Show details of a specific cluster. Defaults to the currently selected cluster if no name is provided. Aliases: ankra cluster get-cluster
ankra cluster info                  # uses selected cluster
ankra cluster info <cluster-name>   # specific cluster

cluster select

Select a cluster for subsequent commands. Supports both interactive selection and direct selection by name.
ankra cluster select                 # interactive picker
ankra cluster select <cluster-name>  # select directly by name

cluster clear

Clear the active cluster selection.
ankra cluster clear

cluster reconcile

Trigger cluster reconciliation to sync desired state with actual state.
ankra cluster reconcile                  # uses selected cluster
ankra cluster reconcile <cluster-name>   # specific cluster

cluster apply

Apply an ImportCluster YAML to the Ankra API.
ankra cluster apply -f <file>

cluster clone

Clone stacks from an existing cluster to a new cluster configuration.
# Clone all stacks
ankra cluster clone source-cluster.yaml new-cluster.yaml

# Clone from a remote URL
ankra cluster clone https://github.com/org/repo/raw/main/cluster.yaml new-cluster.yaml

# Clone only specific stacks
ankra cluster clone cluster.yaml new-cluster.yaml --stack "monitoring" --stack "networking"

# Replace all stacks in target
ankra cluster clone cluster.yaml new-cluster.yaml --clean

# Force merge even with conflicts
ankra cluster clone cluster.yaml new-cluster.yaml --force

# Copy missing files from skipped stacks
ankra cluster clone cluster.yaml new-cluster.yaml --copy-missing
FlagDescription
--cleanReplace all stacks in the target (clean copy)
--forceForce merge even when names conflict
--copy-missingCopy missing files even for skipped stacks
--stackClone only specific stacks by name (repeatable)

cluster provision

Provision (start) a managed cluster.
ankra cluster provision                  # uses selected cluster
ankra cluster provision <cluster-name>   # specific cluster

cluster deprovision

Deprovision (stop) a managed cluster.
ankra cluster deprovision                             # uses selected cluster
ankra cluster deprovision <cluster-name>              # specific cluster
ankra cluster deprovision <cluster-name> --auto-delete  # auto-delete after deprovision
ankra cluster deprovision <cluster-name> --force        # force even if unexpected state
FlagDescription
--auto-deleteAutomatically delete the cluster after deprovisioning
--forceForce deprovision even if cluster is in an unexpected state

cluster roll-to

Roll a cluster resource to a specific version.
ankra cluster roll-to --version <resource_version_id>
ankra cluster roll-to --version <resource_version_id> --cluster <cluster_id>
FlagDescription
--versionResource version ID to roll to (required)
--clusterCluster ID (defaults to selected cluster)

delete cluster

Delete a cluster by name.
ankra delete cluster <name>
ankra delete cluster <name> -f   # skip confirmation

SOPS Encryption

Encrypt and decrypt manifest and addon configuration files using SOPS.

cluster sops-config

Display the SOPS encryption configuration including the public key for the organisation.
ankra cluster sops-config

cluster encrypt manifest

Encrypt a specific key in a manifest file.
ankra cluster encrypt manifest <manifest_name> --key <key_name> -f <cluster.yaml>
Example:
ankra cluster encrypt manifest trinity-database-secret --key TRINITY_DB_PASSWORD -f cluster.yaml
This will:
  1. Find the manifest in the cluster YAML
  2. Read the referenced manifest file
  3. Encrypt the specified key using your organisation’s SOPS key
  4. Update the manifest file with encrypted values
  5. Add the key to encrypted_paths in the cluster YAML

cluster encrypt addon

Encrypt a specific key in an addon configuration file.
ankra cluster encrypt addon --name <addon_name> --key <key_name> -f <cluster.yaml>
Example:
ankra cluster encrypt addon --name grafana --key adminPassword -f cluster.yaml

cluster decrypt manifest

Decrypt and print a manifest file.
ankra cluster decrypt manifest <manifest_name> -f <cluster.yaml>
Example:
ankra cluster decrypt manifest trinity-database-secret -f cluster.yaml
You can add new encrypted keys to files that are already SOPS-encrypted, as long as they were encrypted with your organisation’s key.
If a file was encrypted by a different organisation, you’ll need to decrypt it first using the original key, then encrypt it with your organisation’s key.

Stack Management

All stack commands operate on the currently selected cluster.

cluster stacks list

List all stacks for the active cluster.
ankra cluster stacks list
ankra cluster stacks list <stack-name>  # show details for a specific stack

cluster stacks create

Create a new stack.
ankra cluster stacks create my-stack
ankra cluster stacks create my-stack --description "Application stack"

cluster stacks delete

Delete a stack.
ankra cluster stacks delete <stack-name>

cluster stacks rename

Rename a stack.
ankra cluster stacks rename <old-name> <new-name>

cluster stacks history

Show change history for a stack.
ankra cluster stacks history <stack-name>

cluster stacks clone

Clone a stack to another cluster as a draft.
ankra cluster stacks clone <stack-name> --to <target-cluster>
ankra cluster stacks clone my-stack --to production --name my-stack-prod
ankra cluster stacks clone my-stack --to production --include-config=false
FlagShortDescription
--to-tTarget cluster name or ID (required)
--name-nCustom name for the cloned stack
--include-configInclude addon configurations (default: true)
Encrypted values are not transferred during cloning. You’ll need to reconfigure secrets in the target cluster.

Addon Management

All addon commands operate on the currently selected cluster.

cluster addons list

List all addons for the active cluster, or show details for a specific addon.
ankra cluster addons list
ankra cluster addons list <addon-name>

cluster addons available

List addons available for installation.
ankra cluster addons available

cluster addons settings

Get settings for a specific addon.
ankra cluster addons settings <addon-name>

cluster addons update

Update settings for an addon from a JSON file.
ankra cluster addons update <addon-name> -f <settings.json>

cluster addons uninstall

Uninstall an addon from the cluster.
ankra cluster addons uninstall <addon-name>
ankra cluster addons uninstall <addon-name> --delete  # also delete permanently
FlagDescription
--deleteAlso delete the addon permanently

Operations Management

All operations commands operate on the currently selected cluster.

cluster operations list

List operations for the active cluster, or show details for a specific operation.
ankra cluster operations list
ankra cluster operations list <operation_id>

cluster operations cancel

Cancel a running operation.
ankra cluster operations cancel <operation_id>

cluster operations cancel-job

Cancel a specific job within an operation.
ankra cluster operations cancel-job <operation_id> <job_id>

cluster operations jobs

List jobs for a specific operation.
ankra cluster operations jobs <operation_id>
ankra cluster operations jobs <operation_id> --kind reconcile
ankra cluster operations jobs <operation_id> --since "2025-01-01T00:00:00Z"
FlagDescription
--kindFilter by job kind
--sinceShow jobs updated since this UTC timestamp

Agent Management

All agent commands operate on the currently selected cluster.

cluster agent status

Get the agent status for the selected cluster.
ankra cluster agent status

cluster agent token

Get or generate the agent token.
ankra cluster agent token
ankra cluster agent token --generate  # generate a new token

cluster agent upgrade

Upgrade the agent on the selected cluster.
ankra cluster agent upgrade

Manifest Management

cluster manifests list

List manifests for the active cluster, or show details for a specific manifest.
ankra cluster manifests list
ankra cluster manifests list <manifest-name>

Kubernetes Resources

Browse and inspect Kubernetes resources in the active cluster. All commands operate on the currently selected cluster.

cluster get pods

List pods or get a specific pod’s manifest.
ankra cluster get pods
ankra cluster get pods -n kube-system
ankra cluster get pods --all-namespaces
ankra cluster get pods my-pod -n default           # get a specific pod's manifest
ankra cluster get pods --node worker-1             # filter by node
ankra cluster get pods --name nginx                # filter by name (contains)
ankra cluster get pods -o json                     # output as JSON
FlagShortDescription
--namespace-nKubernetes namespace
--all-namespaces-AList across all namespaces
--nodeFilter by node name
--nameFilter by pod name (contains)
--output-oOutput format: table, json, yaml (default: table)

cluster get <kind>

List resources of a specific kind. Dedicated commands are available for common resource types: deployments, services, nodes, namespaces, ingresses, events, configmaps, secrets, statefulsets, daemonsets, k8s-jobs, cronjobs
ankra cluster get deployments
ankra cluster get deployments -n kube-system
ankra cluster get services --all-namespaces
ankra cluster get nodes
ankra cluster get events -n default
ankra cluster get secrets -n my-app -o json
ankra cluster get deployments my-deploy -n default   # get a specific resource's manifest
FlagShortDescription
--namespace-nKubernetes namespace
--all-namespaces-AList across all namespaces
--nameFilter by resource name
--selector-lLabel selector
--output-oOutput format: table, json, yaml (default: table)
nodes and namespaces are cluster-scoped and do not accept namespace flags.

cluster get resources

Fetch any Kubernetes resource type by kind. Use this for resource kinds not covered by the dedicated commands above.
ankra cluster get resources PersistentVolumeClaim -n default
ankra cluster get resources NetworkPolicy --all-namespaces
ankra cluster get resources CertificateRequest --group cert-manager.io -o json
FlagShortDescription
--namespace-nKubernetes namespace
--all-namespaces-AList across all namespaces
--nameFilter by resource name
--selector-lLabel selector
--output-oOutput format: table, json, yaml (default: table)
--api-versionAPI version (default: v1)
--groupAPI group (e.g., apps, networking.k8s.io)

cluster logs

Stream log output from a pod in the active cluster.
ankra cluster logs my-pod -n default
ankra cluster logs my-pod -n default -c my-container
ankra cluster logs my-pod -n default --tail 100
ankra cluster logs my-pod -n default --since 3600
FlagShortDescription
--namespace-nKubernetes namespace (required)
--container-cContainer name (defaults to pod name)
--tailNumber of lines from the end of the logs
--sinceSeconds of logs to retrieve

Helm Charts

charts list

List available Helm charts.
ankra charts list
ankra charts list --page 2 --page-size 50
ankra charts list --subscribed  # show only subscribed charts
Search for Helm charts by name.
ankra charts search nginx
ankra charts search prometheus

charts info

Get detailed information about a chart.
ankra charts info nginx
ankra charts info grafana --repository https://grafana.github.io/helm-charts

In-Cluster Helm Releases

Manage Helm releases running in the active cluster. These commands operate on the currently selected cluster.

cluster helm releases

List Helm releases in the cluster.
ankra cluster helm releases
ankra cluster helm releases -n kube-system
ankra cluster helm releases --all-namespaces
ankra cluster helm releases -o json
FlagShortDescription
--namespace-nKubernetes namespace
--all-namespaces-AList across all namespaces (default)
--output-oOutput format: table, json (default: table)

cluster helm uninstall

Uninstall a Helm release from the cluster.
ankra cluster helm uninstall my-release -n default
FlagShortDescription
--namespace-nKubernetes namespace (required)

Helm Registries

Manage organisation-level Helm chart registries and registry credentials.

helm registries list

List all Helm chart registries.
ankra helm registries list

helm registries get

Get details of a Helm chart registry.
ankra helm registries get <name>

helm registries create

Create a Helm chart registry from a JSON spec file.
ankra helm registries create -f registry-spec.json
FlagShortDescription
--file-fPath to registry spec JSON file (required)

helm registries delete

Delete a Helm chart registry.
ankra helm registries delete <name>
ankra helm registries delete <name> -f   # skip confirmation
FlagShortDescription
--force-fSkip confirmation prompt

Helm Registry Credentials

helm credentials list

List all Helm registry credentials.
ankra helm credentials list

helm credentials create

Create a Helm registry credential with username and password. The password is prompted interactively.
ankra helm credentials create --name my-cred --username user
# Password: ****
# Helm registry credential 'my-cred' created successfully!
FlagDescription
--nameCredential name (required)
--usernameRegistry username (required)

helm credentials delete

Delete a Helm registry credential.
ankra helm credentials delete <name>
ankra helm credentials delete <name> -f   # skip confirmation
FlagShortDescription
--force-fSkip confirmation prompt

Hetzner Clusters

Provision, manage, and scale Kubernetes clusters on Hetzner Cloud.

cluster hetzner create

Create a new Hetzner cluster.
ankra cluster hetzner create \
  --name my-cluster \
  --credential-id <hetzner-credential-id> \
  --ssh-key-credential-ids <key-id-1>,<key-id-2> \
  --location fsn1
FlagDefaultDescription
--namerequiredCluster name
--credential-idrequiredHetzner API credential ID
--ssh-key-credential-idsSSH key credential IDs (comma-separated for multiple keys)
--ssh-key-credential-idSSH key credential ID (single key, for backward compatibility)
--locationrequiredHetzner datacenter (e.g., fsn1, nbg1, hel1)
--control-plane-count1Number of control plane nodes
--control-plane-server-typecx33Server type for control planes
--worker-count1Number of worker nodes
--worker-server-typecx33Server type for workers
--bastion-server-typecx23Server type for the bastion host
--network-ip-range10.0.0.0/16Private network IP range
--subnet-range10.0.1.0/24Subnet range
--distributionk3sKubernetes distribution
--kubernetes-versionlatestKubernetes version

cluster hetzner deprovision

Deprovision a Hetzner cluster and delete all associated resources.
ankra cluster hetzner deprovision <cluster_id>

cluster hetzner workers

Get the current worker count and scaling limits.
ankra cluster hetzner workers <cluster_id>

cluster hetzner node-group

Manage node groups for a Hetzner cluster.
ankra cluster hetzner node-group list <cluster_id>
ankra cluster hetzner node-group add <cluster_id> --name <name> --instance-type <type> --count <n>
ankra cluster hetzner node-group scale <cluster_id> <group_name> <count>
ankra cluster hetzner node-group upgrade <cluster_id> <group_name> <instance_type>
ankra cluster hetzner node-group delete <cluster_id> <group_name>

cluster hetzner scale

Scale all worker nodes up or down (legacy, prefer node-group scale).
ankra cluster hetzner scale <cluster_id> <worker_count>
Examples:
# Scale up to 5 workers
ankra cluster hetzner scale abc-123 5

# Scale down to 2 workers
ankra cluster hetzner scale abc-123 2

cluster hetzner k8s-version

Get the current Kubernetes version and distribution.
ankra cluster hetzner k8s-version <cluster_id>

cluster hetzner upgrade

Upgrade the Kubernetes (k3s) version on all nodes. Only supports upgrading one minor version at a time; downgrades are not supported.
ankra cluster hetzner upgrade <cluster_id> <target_version>
Examples:
# Upgrade to v1.35.1+k3s1
ankra cluster hetzner upgrade abc-123 v1.35.1+k3s1

OVH Clusters

Provision, manage, and scale Kubernetes clusters on OVH Cloud.

cluster ovh create

Create a new OVH cluster.
ankra cluster ovh create \
  --name my-cluster \
  --credential-id <ovh-credential-id> \
  --ssh-key-credential-id <ssh-key-credential-id> \
  --region GRA7
FlagDefaultDescription
--namerequiredCluster name
--credential-idrequiredOVH API credential ID
--ssh-key-credential-idrequiredSSH key credential ID
--regionrequiredOVH Cloud region (e.g., GRA7, SBG5, BHS5)
--control-plane-count1Number of control plane nodes
--control-plane-flavor-idb2-15Instance flavor for control planes
--worker-count1Number of worker nodes
--worker-flavor-idb2-15Instance flavor for workers
--gateway-flavor-idb2-7Instance flavor for the gateway
--network-vlan-id0VLAN ID for the private network
--subnet-cidr10.0.1.0/24Subnet CIDR range
--dhcp-start10.0.1.100DHCP allocation range start
--dhcp-end10.0.1.200DHCP allocation range end
--distributionk3sKubernetes distribution
--kubernetes-versionlatestKubernetes version

cluster ovh deprovision

Deprovision an OVH cluster and delete all associated resources.
ankra cluster ovh deprovision <cluster_id>

cluster ovh workers

Get the current worker count and scaling limits.
ankra cluster ovh workers <cluster_id>

cluster ovh node-group

Manage node groups for an OVH cluster.
ankra cluster ovh node-group list <cluster_id>
ankra cluster ovh node-group add <cluster_id> --name <name> --instance-type <type> --count <n>
ankra cluster ovh node-group scale <cluster_id> <group_name> <count>
ankra cluster ovh node-group upgrade <cluster_id> <group_name> <instance_type>
ankra cluster ovh node-group delete <cluster_id> <group_name>

cluster ovh scale

Scale all worker nodes up or down (legacy, prefer node groups via Settings > Nodes).
ankra cluster ovh scale <cluster_id> <worker_count>
Examples:
# Scale up to 5 workers
ankra cluster ovh scale abc-123 5

# Scale down to 2 workers
ankra cluster ovh scale abc-123 2

cluster ovh k8s-version

Get the current Kubernetes version and distribution.
ankra cluster ovh k8s-version <cluster_id>

cluster ovh upgrade

Upgrade the Kubernetes (k3s) version on all nodes. Only supports upgrading one minor version at a time; downgrades are not supported.
ankra cluster ovh upgrade <cluster_id> <target_version>
Examples:
# Upgrade to v1.35.1+k3s1
ankra cluster ovh upgrade abc-123 v1.35.1+k3s1

UpCloud Clusters

Provision, manage, and scale Kubernetes clusters on UpCloud.

cluster upcloud create

Create a new UpCloud cluster.
ankra cluster upcloud create \
  --name my-cluster \
  --credential-id <upcloud-credential-id> \
  --ssh-key-credential-id <ssh-key-credential-id> \
  --zone fi-hel1
FlagDefaultDescription
--namerequiredCluster name
--credential-idrequiredUpCloud API credential ID
--ssh-key-credential-idrequiredSSH key credential ID
--zonerequiredUpCloud zone (e.g., fi-hel1, de-fra1, nl-ams1)
--control-plane-count1Number of control plane nodes
--control-plane-plan2xCPU-4GBPlan for control plane nodes
--worker-count1Number of worker nodes
--worker-plan2xCPU-4GBPlan for worker nodes
--bastion-plan1xCPU-2GBPlan for the bastion host
--network-ip-range10.0.0.0/16Private network IP range
--distributionk3sKubernetes distribution
--kubernetes-versionlatestKubernetes version

cluster upcloud deprovision

Deprovision an UpCloud cluster and delete all associated resources.
ankra cluster upcloud deprovision <cluster_id>

cluster upcloud workers

Get the current worker count and scaling limits.
ankra cluster upcloud workers <cluster_id>

cluster upcloud node-group

Manage node groups for an UpCloud cluster.
ankra cluster upcloud node-group list <cluster_id>
ankra cluster upcloud node-group add <cluster_id> --name <name> --instance-type <plan> --count <n>
ankra cluster upcloud node-group scale <cluster_id> <group_name> <count>
ankra cluster upcloud node-group upgrade <cluster_id> <group_name> <plan>
ankra cluster upcloud node-group delete <cluster_id> <group_name>

cluster upcloud scale

Scale all worker nodes up or down (legacy, prefer node-group scale).
ankra cluster upcloud scale <cluster_id> <worker_count>
Examples:
# Scale up to 5 workers
ankra cluster upcloud scale abc-123 5

# Scale down to 2 workers
ankra cluster upcloud scale abc-123 2

cluster upcloud k8s-version

Get the current Kubernetes version and distribution.
ankra cluster upcloud k8s-version <cluster_id>

cluster upcloud upgrade

Upgrade the Kubernetes (k3s) version on all nodes. Only supports upgrading one minor version at a time; downgrades are not supported.
ankra cluster upcloud upgrade <cluster_id> <target_version>

OVH Credentials

Manage OVH API credentials and SSH key credentials.

credentials ovh list

List all OVH API credentials.
ankra credentials ovh list

credentials ovh create

Create an OVH API credential. You will be prompted securely for the application key, application secret, and consumer key.
ankra credentials ovh create --name my-ovh-cred --project-id <project-id>
# OVH Application Key: mykey
# OVH Application Secret: ****
# OVH Consumer Key: ****
# OVH credential 'my-ovh-cred' created successfully!
FlagDescription
--nameCredential name (required)
--project-idOVH Cloud project ID (required)

credentials ovh ssh-key list

List all SSH key credentials.
ankra credentials ovh ssh-key list
Aliases: ankra credentials ovh ssh-keys list, ankra credentials ovh ssh list

credentials ovh ssh-key create

Create an SSH key credential for OVH clusters.
# Generate a new keypair
ankra credentials ovh ssh-key create --name my-key --generate

# Provide your own public key
ankra credentials ovh ssh-key create --name my-key --public-key "ssh-ed25519 AAAA..."
FlagDescription
--nameCredential name (required)
--public-keySSH public key string
--generateGenerate a new keypair (private key returned once)
When using --generate, the private key is displayed only once. Save it immediately.

Hetzner Credentials

Manage Hetzner API credentials and SSH key credentials. Aliases: ankra credentials hetzner, ankra creds hz

credentials hetzner list

List all Hetzner API credentials.
ankra credentials hetzner list

credentials hetzner create

Create a Hetzner API credential. The API token is prompted for securely (masked input, not stored in shell history).
ankra credentials hetzner create --name my-hetzner-token
# Hetzner API Token: ****
# Hetzner credential 'my-hetzner-token' created successfully!
FlagDescription
--nameCredential name (required)

credentials hetzner ssh-key list

List all SSH key credentials.
ankra credentials hetzner ssh-key list
Aliases: ankra credentials hetzner ssh-keys list, ankra credentials hetzner ssh list

credentials hetzner ssh-key create

Create an SSH key credential.
# Generate a new keypair
ankra credentials hetzner ssh-key create --name my-key --generate

# Provide your own public key
ankra credentials hetzner ssh-key create --name my-key --public-key "ssh-ed25519 AAAA..."
FlagDescription
--nameCredential name (required)
--public-keySSH public key string
--generateGenerate a new keypair (private key returned once)
When using --generate, the private key is displayed only once. Save it immediately.

UpCloud Credentials

Manage UpCloud API credentials and SSH key credentials. Aliases: ankra credentials upcloud, ankra creds uc

credentials upcloud list

List all UpCloud API credentials.
ankra credentials upcloud list

credentials upcloud create

Create an UpCloud API credential. You will be prompted securely for the API token.
ankra credentials upcloud create --name my-upcloud-cred
# UpCloud API Token: ****
# UpCloud credential 'my-upcloud-cred' created successfully!
FlagDescription
--nameCredential name (required)

credentials upcloud ssh-key list

List all SSH key credentials.
ankra credentials upcloud ssh-key list
Aliases: ankra credentials upcloud ssh-keys list, ankra credentials upcloud ssh list

credentials upcloud ssh-key create

Create an SSH key credential for UpCloud clusters.
# Generate a new keypair
ankra credentials upcloud ssh-key create --name my-key --generate

# Provide your own public key
ankra credentials upcloud ssh-key create --name my-key --public-key "ssh-ed25519 AAAA..."
FlagDescription
--nameCredential name (required)
--public-keySSH public key string
--generateGenerate a new keypair (private key returned once)
When using --generate, the private key is displayed only once. Save it immediately.

Credentials

Aliases: ankra credentials, ankra credential, ankra cred, ankra creds

credentials list

List all credentials.
ankra credentials list
ankra credentials list --provider github  # filter by provider

credentials get

Get details of a specific credential.
ankra credentials get <credential_id>

credentials validate

Check if a credential name is available.
ankra credentials validate my-new-credential

credentials delete

Delete a credential.
ankra credentials delete <credential_id>

API Tokens

Aliases: ankra tokens, ankra token

tokens list

List all API tokens.
ankra tokens list

tokens create

Create a new API token.
ankra tokens create my-ci-token
ankra tokens create my-temp-token --expires "2026-12-31T00:00:00Z"

tokens revoke

Revoke an API token (must be revoked before deletion).
ankra tokens revoke <token_id>

tokens delete

Delete a revoked API token.
ankra tokens delete <token_id>

Shell Completion

Generate or install shell completion scripts.
ankra completion bash                 # print bash completion script
ankra completion zsh                  # print zsh completion script
ankra completion fish                 # print fish completion script
ankra completion powershell           # print powershell completion script
ankra completion install              # install completions for current shell
ankra completion install --shell zsh  # install for a specific shell

Global Flags

FlagDescription
--versionShow CLI version
--helpShow help for any command
--base-urlBase URL for the Ankra API
--configConfig file (default: ~/.ankra.yaml)
--tokenAPI token for authentication

Configuration

The CLI stores configuration in ~/.ankra.yaml:
token: your-api-token
base-url: https://platform.ankra.app
token_id: token-uuid
token_name: ankra-cli-hostname-username
Token resolution priority (highest to lowest):
  1. --token flag (explicit CLI argument)
  2. Config file token (saved by ankra login)
  3. ANKRA_API_TOKEN environment variable
The base URL can be overridden with --base-url or the ANKRA_BASE_URL environment variable.

Troubleshooting

Common Issues

PATH issues:
which ankra  # verify installation location
echo $PATH   # check PATH includes ankra location
Authentication errors:
ankra logout  # clear credentials
ankra login   # re-authenticate
Check version:
ankra --version
Get help:
ankra --help
ankra cluster --help
ankra chat --help

Error Messages

  • “No active cluster selected” Run ankra cluster select first
  • “Resource not found” Verify the resource name and selected cluster
  • “Unauthorized” Re-authenticate with ankra login

Support & Resources

For more advanced usage, see the full documentation or contact support.