Installation

Manage cnspec Providers

Learn how cnspec providers work, when to manage them yourself, and how to install, update, and remove them.

cnspec scans dozens of platforms, from AWS to Windows hosts. The code that knows how to talk to a given platform lives in a provider, and providers are loaded on demand: cnspec ships with no providers installed, and downloads each one the first time you need it.

How automatic provider management works

Suppose you install cnspec on a Linux workstation. No providers are installed yet.

  • You run cnspec scan local. cnspec needs the os provider, downloads it, then runs the scan. The os provider stays on disk for next time.
  • You run cnspec shell aws. cnspec needs the aws provider, downloads it, opens the shell.

For most users this just works and there's nothing to manage. The exceptions are:

  • Containers, where the provider download repeats every time the container starts.
  • Read-only hosts, where cnspec can't write the provider to disk.
  • Air-gapped hosts, where cnspec can't reach releases.mondoo.com.

The next three sections walk through each.

Containers

By default, every fresh container that runs a cnspec command re-downloads providers, which slows down scans and burns network. To avoid that, do one of the following:

Read-only hosts

If cnspec can't write to the host, it can't download or update providers either. Install the providers you need ahead of time and turn off auto-update so cnspec doesn't try to fetch updates and warn on every command.

In a read-only environment, you're responsible for keeping installed providers current.

Air-gapped hosts

In air-gapped networks, cnspec can't reach releases.mondoo.com to fetch providers. Download the providers you need on a connected machine, copy them across, and install them from the file. Then disable auto-update so cnspec stops trying to fetch updates.

In an air-gapped environment, you're responsible for keeping installed providers current.

Turn off provider auto-update

By default, every cnspec command checks for and installs the latest version of the provider it needs (if it isn't already installed). Disable this when you want cnspec to use only what you've already installed.

For all commands

Set auto_update: false in the cnspec configuration file. The file location depends on whether you want the setting to apply system-wide or just to one user:

  • Linux, all users: /etc/opt/mondoo/mondoo.yml
  • macOS, all users: /Library/Mondoo/etc/mondoo.yml
  • Linux and macOS, single user: ~/.config/mondoo/mondoo.yml
  • Windows, all users: C:\ProgramData\Mondoo\mondoo.yml
  • Windows, single user: C:\Users\{username}\.config\mondoo\mondoo.yml
auto_update: false

The configuration key uses an underscore (auto_update), while the command line flag uses a hyphen (--auto-update). Writing auto-update in the file has no effect. For every setting the file accepts, read The cnspec configuration file.

When auto-update is off, check releases.mondoo.com/providers/ periodically and update providers manually.

For a single command

Pass --auto-update=false to skip the check just once:

cnspec scan --auto-update=false

The flag overrides the auto_update setting in mondoo.yml.

Available providers

You can browse and download every provider at releases.mondoo.com/providers/. Past versions are kept indefinitely.

ProviderTarget
activedirectoryActive Directory domains
aiModel Context Protocol (MCP) servers
alicloudAlibaba Cloud accounts
ansibleAnsible playbooks and projects
aristaArista EOS network devices
artifactoryJFrog Artifactory instances
atlassianAtlassian Cloud (Jira, Confluence, Bitbucket)
auth0Auth0 tenants
awsAmazon Web Services accounts and resources
azureMicrosoft Azure subscriptions
bicepAzure Bicep files and ARM templates
bigipF5 BIG-IP devices
bitwardenBitwarden organizations
cassandraApache Cassandra clusters
checkpointCheck Point Security Management servers
claudeClaude AI platform accounts
clickhousecloudClickHouse Cloud organizations
clickhousedbClickHouse servers
cloudflareCloudflare accounts
cloudformationAWS CloudFormation and SAM templates
databricksDatabricks accounts and workspaces
datadogDatadog accounts
db2IBM Db2 databases
depsdevdeps.dev open source package metadata
digitaloceanDigitalOcean accounts
dropboxDropbox Business teams
elasticsearchElasticsearch clusters
equinixEquinix Metal organizations and projects
fortiosFortinet FortiOS devices
gcpGoogle Cloud projects and folders
githubGitHub organizations and repositories
gitlabGitLab groups and projects
google-workspaceGoogle Workspace accounts
grafanaGrafana organizations
hcpHashiCorp Cloud Platform organizations
helmHelm charts
hetznerHetzner Cloud projects
huggingfaceHugging Face models, datasets, and spaces
ipinfoipinfo.io address lookups
ipmiIntelligent Platform Management Interface (IPMI) endpoints
iruIru (formerly Kandji) tenants
jamfJamf Pro accounts
jumpcloudJumpCloud organizations
junosJuniper Junos OS devices
k8sKubernetes clusters and manifests
keycloakKeycloak servers
kustomizeKustomize overlays
mikrotikMikroTik RouterOS devices
mistralMistral AI workspaces
mondooMondoo Platform spaces and assets
mongoSelf-hosted MongoDB servers
mongodbatlasMongoDB Atlas organizations and projects
ms365Microsoft 365 tenants
mssqlMicrosoft SQL Server instances
mysqldbMySQL and MariaDB servers
neonNeon organizations and accounts
netlifyNetlify accounts
networkDNS, TLS, and HTTP for hosts and domains
networkdevicesCisco IOS and NX-OS devices
networkdiscoverySubdomain enumeration
nextdnsNextDNS accounts
nmapNmap host and network scans
nutanixNutanix Prism Central instances
ociOracle Cloud Infrastructure tenancies
oktaOkta organizations
ollamaOllama instances
opcuaOPC UA devices
openaiOpenAI accounts
opensearchOpenSearch clusters
openstackOpenStack projects
oracledbOracle Database instances
osLinux, macOS, Windows, BSD, AIX hosts and containers
panosPalo Alto Networks PAN-OS devices
portainerPortainer instances
postgresdbPostgreSQL servers
proxmoxProxmox VE hypervisors
redfishRedfish management controllers (BMCs)
redisdbRedis and Valkey servers
shodanShodan host and domain lookups
slackSlack workspaces
snowflakeSnowflake accounts
stackitSTACKIT projects
tailscaleTailscale tailnets
terraformTerraform HCL, plans, and state
togetherTogether AI accounts
unifiUbiquiti UniFi controllers
vcdVMware Cloud Director
vercelVercel accounts
vllmvLLM inference servers
vsphereVMware vSphere
weaviateWeaviate vector databases
yaraYARA rule scans
zoomZoom accounts

To list what's installed locally:

cnspec providers

For all providers subcommands, run cnspec providers -h.

Install a provider manually

To install the latest version of a provider:

cnspec providers install NAME

For example:

cnspec providers install k8s

To install from a downloaded archive:

cnspec providers install -f providers/os/dist/os.tar.xz

To install from a URL:

cnspec providers install --url https://releases.mondoo.com/providers/os/9.0.7/os_9.0.7_linux_arm.tar.xz

For all flags, run cnspec providers install -h.

Update providers manually

To update every installed provider to its latest version:

cnspec providers update

To update a single provider:

cnspec providers update vsphere

Remove a provider

cnspec providers delete terraform

On this page