Back to Kubescape

Kubescape CLI Reference

docs/cli-reference.md

4.0.612.0 KB
Original Source

Kubescape CLI Reference

This document provides a complete reference for all Kubescape CLI commands and options.

Global Options

These options are available for all commands:

OptionDescription
--cache-dir <path>Cache directory (default: ~/.kubescape)
--kube-context <context>Kubernetes context to use (default: current-context)
-l, --logger <level>Log level: debug, info, warning, error, fatal
--server <url>Backend discovery server URL
-h, --helpHelp for any command

kubescape scan

Scan Kubernetes clusters, files, or images for security issues.

Synopsis

bash
kubescape scan [target] [flags]

Target Types

  • No target: Scans the current cluster
  • Path: Scans local YAML files, Helm charts, or Kustomize directories
  • URL: Scans a Git repository

Flags

FlagDescriptionDefault
--account <id>Kubescape SaaS account IDfrom cache
--access-key <key>Kubescape SaaS access keyfrom cache
--compliance-threshold <float>Fail if compliance score is below threshold0
--controls-config <path>Path to controls configuration file-
-e, --exclude-namespaces <ns>Namespaces to exclude (comma-separated)-
--exceptions <path>Path to exceptions file-
-f, --format <format>Output format: pretty-printer, json, junit, sarif, html, pdf, prometheuspretty-printer
--include-namespaces <ns>Namespaces to include (comma-separated)-
--keep-localDon't report results to backendfalse
--kubeconfig <path>Path to kubeconfig file-
-o, --output <path>Output file pathstdout
--scan-imagesAlso scan container images for vulnerabilitiesfalse
--severity-threshold <sev>Fail if findings at or above severity: low, medium, high, critical-
--submitSubmit results to Kubescape SaaSfalse
--use-artifacts-from <path>Load artifacts from local directory (offline mode)-
--use-from <path>Load specific policy from path-
-v, --verboseDisplay all resources, not just failed onesfalse
--view <type>View type: security, control, resourcesecurity

Examples

bash
# Scan current cluster
kubescape scan

# Scan with specific framework
kubescape scan framework nsa
kubescape scan framework mitre
kubescape scan framework cis-v1.23-t1.0.1

# Scan specific control
kubescape scan control C-0005 -v

# Scan local files
kubescape scan /path/to/manifests/

# Scan Git repository
kubescape scan https://github.com/org/repo

# Output to JSON file
kubescape scan --format json --output results.json

# Set compliance threshold (exit 1 if below)
kubescape scan --compliance-threshold 80

# Exclude namespaces
kubescape scan --exclude-namespaces kube-system,kube-public

kubescape scan framework

Scan against a specific security framework.

Synopsis

bash
kubescape scan framework <framework-name> [target] [flags]

Available Frameworks

FrameworkDescription
nsaNSA-CISA Kubernetes Hardening Guidance
mitreMITRE ATT&CK® for Kubernetes
cis-v1.23-t1.0.1CIS Kubernetes Benchmark
soc2SOC 2 compliance
pci-dssPCI DSS compliance
hipaaHIPAA compliance

Examples

bash
kubescape scan framework nsa
kubescape scan framework mitre --include-namespaces production
kubescape scan framework cis-v1.23-t1.0.1 /path/to/manifests

kubescape scan control

Scan for a specific control.

Synopsis

bash
kubescape scan control <control-id> [target] [flags]

Examples

bash
# Scan for privileged containers
kubescape scan control C-0057 -v

# Scan specific files for a control
kubescape scan control C-0013 /path/to/deployment.yaml

kubescape scan workload

Scan a specific workload.

Synopsis

bash
kubescape scan workload <kind>/<name> [flags]

Flags

FlagDescription
--namespace <ns>Namespace of the workload

Examples

bash
kubescape scan workload Deployment/nginx --namespace default
kubescape scan workload DaemonSet/fluentd --namespace logging

kubescape scan image

Scan a container image for vulnerabilities.

Synopsis

bash
kubescape scan image <image>:<tag> [flags]

Flags

FlagDescription
--exceptions <path>Path to exceptions file
-p, --password <pass>Registry password
-u, --username <user>Registry username
--use-default-matchersUse default vulnerability matchers

Examples

bash
# Scan public image
kubescape scan image nginx:1.21

# Scan with verbose output
kubescape scan image nginx:1.21 -v

# Scan private registry image
kubescape scan image myregistry.io/myimage:tag -u myuser -p mypass

kubescape fix

Auto-fix misconfigurations in Kubernetes manifest files.

Synopsis

bash
kubescape fix <report-file> [flags]

Flags

FlagDescriptionDefault
--dry-runPreview changes without applyingfalse
--no-confirmApply without confirmationfalse
--skip-user-valuesSkip changes requiring user valuestrue

Examples

bash
# Generate scan results
kubescape scan /path/to/manifests --format json --output results.json

# Apply fixes
kubescape fix results.json

# Preview fixes
kubescape fix results.json --dry-run

# Apply without prompts
kubescape fix results.json --no-confirm

kubescape patch

Patch container images to fix OS-level vulnerabilities.

Synopsis

bash
kubescape patch [flags]

Flags

FlagDescriptionDefault
-i, --image <image>Image to patch (required)-
-t, --tag <tag>Output image tag<image>-patched
-a, --addr <addr>BuildKit daemon addressunix:///run/buildkit/buildkitd.sock
--timeout <duration>Patching timeout5m
--ignore-errorsContinue on errorsfalse
-u, --username <user>Registry username-
-p, --password <pass>Registry password-
-f, --format <format>Output format-
-o, --output <path>Output filestdout
-v, --verboseVerbose outputfalse

Examples

bash
# Start buildkitd first
sudo buildkitd &

# Patch an image
sudo kubescape patch --image nginx:1.22

# Custom output tag
sudo kubescape patch --image nginx:1.22 --tag nginx:1.22-fixed

# Verbose output
sudo kubescape patch --image nginx:1.22 -v

kubescape list

List available frameworks and controls.

Synopsis

bash
kubescape list <type> [flags]

Types

TypeDescription
frameworksList available security frameworks
controlsList available security controls

Flags

FlagDescriptionDefault
--account <id>Account ID for custom frameworks-
--access-key <key>Access key-
--format <format>Output format: pretty-print, jsonpretty-print

Examples

bash
kubescape list frameworks
kubescape list controls
kubescape list controls --format json

kubescape download

Download artifacts for offline/air-gapped use.

Synopsis

bash
kubescape download <type> [name] [flags]

Types

TypeDescription
artifactsDownload all artifacts (frameworks, controls, config)
frameworkDownload a specific framework
controlDownload a specific control

Flags

FlagDescriptionDefault
-o, --output <path>Output path~/.kubescape
--account <id>Account ID-
--access-key <key>Access key-

Examples

bash
# Download all artifacts
kubescape download artifacts --output /path/to/offline

# Download specific framework
kubescape download framework nsa --output /path/to/nsa.json

# Use downloaded artifacts
kubescape scan --use-artifacts-from /path/to/offline

kubescape config

Manage Kubescape configuration.

Subcommands

SubcommandDescription
viewView current configuration
setSet configuration value
deleteDelete cached configuration

Examples

bash
# View configuration
kubescape config view

# Set account ID
kubescape config set accountID <account-id>

# Set cloud report URL
kubescape config set cloudReportURL https://api.example.com

# Delete configuration
kubescape config delete

kubescape operator

Interact with the in-cluster Kubescape operator.

Synopsis

bash
kubescape operator scan <type> [flags]

Scan Types

TypeDescription
configurationsTrigger configuration scan
vulnerabilitiesTrigger vulnerability scan

Examples

bash
kubescape operator scan configurations
kubescape operator scan vulnerabilities

kubescape vap

Manage Kubernetes Validating Admission Policies.

Subcommands

deploy-library

Deploy the Kubescape CEL admission policy library.

bash
kubescape vap deploy-library | kubectl apply -f -

create-policy-binding

Create a ValidatingAdmissionPolicyBinding.

bash
kubescape vap create-policy-binding [flags]

Flags:

FlagDescriptionRequired
-n, --name <name>Binding nameYes
-p, --policy <id>Policy/control IDYes
--namespace <ns>Namespace selector (repeatable)No
--label <k=v>Label selector (repeatable)No
-a, --action <action>Action: Deny, Audit, WarnNo (default: Deny)
-r, --parameter-reference <name>Parameter referenceNo

Examples

bash
# Deploy policy library
kubescape vap deploy-library | kubectl apply -f -

# Create binding
kubescape vap create-policy-binding \
  --name deny-privileged \
  --policy c-0057 \
  --namespace production \
  --action Deny | kubectl apply -f -

kubescape mcpserver

Start the MCP (Model Context Protocol) server for AI assistant integration.

Synopsis

bash
kubescape mcpserver

Description

Starts an MCP server that exposes Kubescape data to AI assistants. The server communicates via stdio.

Prerequisites

  • Kubescape operator installed in the cluster
  • kubectl configured with cluster access

Examples

bash
# Start MCP server
kubescape mcpserver

Claude Desktop Configuration

json
{
  "mcpServers": {
    "kubescape": {
      "command": "kubescape",
      "args": ["mcpserver"]
    }
  }
}

kubescape version

Display version information.

Synopsis

bash
kubescape version

kubescape completion

Generate shell completion scripts.

Synopsis

bash
kubescape completion <shell>

Supported Shells

  • bash
  • zsh
  • fish
  • powershell

Examples

bash
# Bash
kubescape completion bash > /etc/bash_completion.d/kubescape

# Zsh
kubescape completion zsh > "${fpath[1]}/_kubescape"

# Fish
kubescape completion fish > ~/.config/fish/completions/kubescape.fish

Environment Variables

Kubescape respects the following environment variables:

VariableDescription
KS_ACCOUNTDefault account ID
KS_CACHE_DIRCache directory path
KS_EXCLUDE_NAMESPACESDefault namespaces to exclude
KS_INCLUDE_NAMESPACESDefault namespaces to include
KS_FORMATDefault output format
KS_LOGGERLog level
KS_LOGGER_NAMELogger name
KUBECONFIGPath to kubeconfig file
HTTPS_PROXYHTTPS proxy URL
HTTP_PROXYHTTP proxy URL
NO_PROXYHosts to exclude from proxy

Exit Codes

CodeDescription
0Success
1Failure (threshold exceeded, scan failed, etc.)

See Also