Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 6.7.0 instead.
Reason given by maintainers: Tidying up release.

Steampunk Spotter Command-Line Interface (CLI)

PyPI

Steampunk Spotter is the shift-left governance platform and AI guardrail for Ansible Playbooks and Terraform configurations. It enforces policy, compliance, security and version checks deterministically, so only code that meets your organization’s standards reaches production, whether an engineer or an AI tool wrote it.

The Steampunk Spotter CLI brings these checks to your console and CI/CD pipelines. Use it to scan Ansible content such as playbooks, roles, collections and task files, as well as Terraform configurations, and to fix issues automatically.

The following instructions explain how to get started with the Steampunk Spotter CLI to scan Ansible content and get recommendations.

Installation

Steampunk Spotter CLI requires Python 3 and is available as a steampunk-spotter Python package.

$ pip install steampunk-spotter

We recommend installing the package into a clean Python virtual environment.

Usage

After the CLI is installed, you can explore its commands and options by running spotter --help. The --help/-h option is also available for every command.

Limitations

The current release version of Steampunk Spotter contains the following limitations that also apply to the CLI:

  • with the FREE subscription plan, you can perform up to 100 scans/month,
  • with the INDIVIDUAL, TEAM, or ENTERPRISE subscription plan you can perform an unlimited number of scans,
  • for the ENTERPRISE subscription plan, contact us at steampunk@xlab.si to discuss your needs.

MCP server

Use the Spotter MCP server to connect Spotter scanning abilities with AI agents. It is available as a separate steampunk-spotter-mcp Python package and requires Python >= 3.10.

Add the following entry to your MCP configuration:

{
  "mcpServers": {
    "spotter": {
      "command": "uvx",
      "args": ["--python", ">=3.10", "steampunk-spotter-mcp@latest"]
    }
  }
}

See the MCP server README for agent-specific setup, other installation options and credentials.

Authentication

To use CLI, you have to supply your Steampunk Spotter user account credentials. If you don't have an account, use spotter register command that will direct you to the page where you can create one.

Steampunk Spotter supports two kinds of credentials: 1) API token (can be generated in the user settings within the Spotter App), and 2) username and password.

  • Use --token/-t global option to supply your token credential. Alternatively, set the SPOTTER_TOKEN environment variable to contain the API token.
  • Use --username/-u and --password/-p global options to supply your username and password. Alternatively, set the SPOTTER_USERNAME and SPOTTER_PASSWORD environment variables.
  • You can run spotter <options> login to persist your credentials in the Steampunk Spotter CLI's local storage, where <options> stand for one of the approaches described above.

After that, you can start scanning right away.

Scanning

The CLI spotter scan command is used for scanning Ansible content (playbooks, roles, collections, or task files) and returning the scan results.

Ansible content

The scan command will automatically detect the type of your Ansible content and scan it. Here are some examples of running scans:

# scan playbook
$ spotter scan path/to/playbook.yaml

# scan multiple files at once
$ spotter scan path/to/taskfile.yaml \
               path/to/playbook.yaml \
               path/to/role \
               path/to/collection

# scan any folder that contains Ansible content
$ spotter scan path/to/folder

Selecting the target project

This part is only relevant for users with a TEAM plan or higher.

By default, the scan results are stored in the first project of the user's first organization (in the app).

Users that have multiple organizations or projects in the app can use --project-id option to specify the UUID of an existing target project, where the scan result will be stored.

$ spotter scan --project-id <project-id> .

You can learn your project id by logging into the app, selecting the appropriate organization and navigating to the project's dashboard.

Excluding values

By default, CLI parses full Ansible YAML content with all values from playbooks (e.g., parameter values from Ansible modules, variables from Ansible plays, etc.). With values, we can discover additional tips for improvements. CLI will try to detect and omit any secrets (e.g., passwords, SSH keys, cloud credentials, etc.) from being transmitted. If you want to omit parsing and sending the values, you can use --exclude-values option.

$ spotter scan --exclude-values playbook.yaml

Excluding metadata

By default, CLI collects metadata (i.e., file names, line, and column numbers, YAML markers) from Ansible content. This is needed for enriched user experience in the Spotter App and to get additional tips for improvements. If you want to use metadata just for displaying the scan output, which means that no data about your Ansible content structure is sent to the backend server, you can use --exclude-metadata option.

$ spotter scan --exclude-metadata playbook.yaml

Automated application of suggestions to your code

There is also a --rewrite option that rewrites your files with fixes after scanning. This action will modify your files.

$ spotter scan --rewrite playbook.yaml

Next steps

For more comprehensive usage, issue spotter scan --help. Please refer to Steampunk Spotter Documentation for further instructions.

Acknowledgment

This tool was created by XLAB Steampunk, IT automation specialists and leading experts in building Enterprise Ansible Collections.

Metadata

Release files for steampunk-spotter 6.7.0a3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for steampunk-spotter 6.7.0a3
File Actions
steampunk_spotter-6.7.0a3-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for steampunk_spotter-6.7.0a3-py3-none-win_amd64.whl
steampunk_spotter-6.7.0a3-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details for steampunk_spotter-6.7.0a3-py3-none-musllinux_1_2_x86_64.whl
steampunk_spotter-6.7.0a3-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details for steampunk_spotter-6.7.0a3-py3-none-musllinux_1_2_aarch64.whl
steampunk_spotter-6.7.0a3-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details for steampunk_spotter-6.7.0a3-py3-none-manylinux_2_17_x86_64.whl
steampunk_spotter-6.7.0a3-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details for steampunk_spotter-6.7.0a3-py3-none-manylinux_2_17_aarch64.whl
steampunk_spotter-6.7.0a3-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for steampunk_spotter-6.7.0a3-py3-none-macosx_11_0_arm64.whl
steampunk_spotter-6.7.0a3-py3-none-macosx_10_9_x86_64.whl Python 3 none macOS 10.9+ x86-64 Details for steampunk_spotter-6.7.0a3-py3-none-macosx_10_9_x86_64.whl

Total release size: 37.6 MB

Release files / steampunk_spotter-6.7.0a3-py3-none-win_amd64.whl

Download URL steampunk_spotter-6.7.0a3-py3-none-win_amd64.whl
Size 5.7 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
108031b2d1b92175cc26d6e6ff13e03998d57444a492dc57f186f1fb587c7694
BLAKE2b-256 checksum
How to use checksums
0d2186f1ac48d49449dd2cce7a91fea1222063b94c7be8aee6ac17e8ad10cb04
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.14

Release files / steampunk_spotter-6.7.0a3-py3-none-musllinux_1_2_x86_64.whl

Download URL steampunk_spotter-6.7.0a3-py3-none-musllinux_1_2_x86_64.whl
Size 5.5 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
83b6dfa5f9125de2f95f3e45edafe7218285831b1c76a21b1113c6ef4d15451d
BLAKE2b-256 checksum
How to use checksums
008b85f5db4e9abf505e4f0f37c29ae5c3fd8ef2a3d35973e54f8c17dfde1d7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.14

Release files / steampunk_spotter-6.7.0a3-py3-none-musllinux_1_2_aarch64.whl

Download URL steampunk_spotter-6.7.0a3-py3-none-musllinux_1_2_aarch64.whl
Size 5.0 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
2843b39509d423ed05fc1154b05885c25b80e6d59a839bcdea02e06897afa080
BLAKE2b-256 checksum
How to use checksums
d23ddf3ee6cac0a082b6048470b38ba262a36704f332793ddc6d9aa971d1e368
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.14

Release files / steampunk_spotter-6.7.0a3-py3-none-manylinux_2_17_x86_64.whl

Download URL steampunk_spotter-6.7.0a3-py3-none-manylinux_2_17_x86_64.whl
Size 5.5 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
590a2c034633a068c85efe86cc3bb49b6b747c767dd12361304f7be4a219edfa
BLAKE2b-256 checksum
How to use checksums
06d6649677cce6624c4c174dfd2b8a2d31e35f1c5c72cc94a9f07b6941454f69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.14

Release files / steampunk_spotter-6.7.0a3-py3-none-manylinux_2_17_aarch64.whl

Download URL steampunk_spotter-6.7.0a3-py3-none-manylinux_2_17_aarch64.whl
Size 5.0 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
c0b2a3752de029fbfa1c7bc78faee6d51bfce5c518a6523ab94daa408b0f7bf6
BLAKE2b-256 checksum
How to use checksums
3ae854c2f0d3ae3b0b3c6189a823773b708fe3200692eecafe88cf8047984fd4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.14

Release files / steampunk_spotter-6.7.0a3-py3-none-macosx_11_0_arm64.whl

Download URL steampunk_spotter-6.7.0a3-py3-none-macosx_11_0_arm64.whl
Size 5.2 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
890df148bbfd4d8f58ffa928b96d0812cad063690cb0c91d67b595e1595d9213
BLAKE2b-256 checksum
How to use checksums
afe57ce553c6ea9d51e71ffda27b78919611a8786482bf1328b1dc1b7d65f93c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.14

Release files / steampunk_spotter-6.7.0a3-py3-none-macosx_10_9_x86_64.whl

Download URL steampunk_spotter-6.7.0a3-py3-none-macosx_10_9_x86_64.whl
Size 5.6 MB
Tags Python 3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
42fad9024cac3bf9db82bdc74edd4daf3e3e8cbcba2d537b6bb4f384dc238468
BLAKE2b-256 checksum
How to use checksums
4d02aa1041a782388d988b6e4174cfb75ec5c83428dfebda81cb7523d5a8bc9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.14

Security for steampunk-spotter 6.7.0a3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

6.7.0a3 This release

7 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page