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 only a few built-in providers, such as core, and downloads every other provider 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.

If you run an internal mirror instead, point the updates_url setting at it. cnspec then downloads providers from <updates_url>/providers and keeps updating them automatically.

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

Turn off provider auto-update

By default, every cnspec command installs the provider it needs if it's missing and updates it when a newer version is available. cnspec checks the list of available provider versions at most once an hour. Disable this when you want cnspec to use only what you've already installed. The same setting also stops cnspec from updating itself.

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
azuredevopsAzure DevOps organizations and repositories
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
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
ibmIBM Cloud accounts
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
notionNotion workspaces
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 and OpenTofu 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 a specific version, append it to the name:

cnspec providers install aws@14.0.0

To install from the preview release channel for one command, without changing any configuration:

cnspec providers install aws --channel preview

--channel has no effect when you pin a version or install from a file or URL.

To install only a provider's configuration and resource schema, without its binary:

cnspec providers install aws --schema-only

A schema-only install is much smaller than the full provider. It's enough to compile queries against the provider's resources, but not to connect to assets. To scan, install the provider fully.

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/14.0.1/os_14.0.1_linux_arm64.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 one or more specific providers:

cnspec providers update vsphere

Providers already on the latest version are skipped. Add --channel preview to update from the preview channel for this one command.

Remove a provider

cnspec providers delete terraform

On this page