ASTA Cloud
Evidence-first security testing for AI agents, RAG applications, MCP servers, prompts, tools, memory, permissions, and agent workflows.
The first product is a local Python CLI. It is not a SaaS application and does not call an LLM.
Authorized use only
ASTA Cloud scans local directories you explicitly supply. Use it only on systems and code you are authorized to test. It never executes the scanned application, never follows symlinks outside the target directory, and never transmits findings or secrets.
Install
python -m pip install asta-cloud
For local development:
python -m pip install -e ".[dev]"
Requires Python 3.11 or newer.
Docker (GHCR)
docker run --rm -v "$PWD:/target:ro" ghcr.io/narendranadh6/asta-cloud:latest \
scan /target --format text
Images publish to GitHub Container Registry on each GitHub release.
PyPI packages publish on each GitHub release as well (pip install asta-cloud). Maintainer setup: docs/publishing.md.
CI
GitHub Actions runs ruff, mypy, pytest (Python 3.11 and 3.12), generates a SARIF report from examples/vulnerable_agent, and verifies the Docker image. See .github/workflows/ci.yml.
Scan
asta scan ./examples/vulnerable_agent \
--config asta.yaml \
--format json \
--output results.json
Omit --output to print to stdout. --format accepts json (default), sarif, or text.
# SARIF for CI / GitHub Code Scanning
asta scan ./examples/vulnerable_agent --format sarif --output results.sarif
# Grep-friendly text
asta scan ./examples/vulnerable_agent --format text
# Confirm findings locally (never executes target code)
asta scan ./examples/vulnerable_agent --validate --format json
# Adopt in CI with a baseline (fail only on new findings)
asta scan ./examples/vulnerable_agent --baseline asta-baseline.json --update-baseline
asta scan ./examples/vulnerable_agent --baseline asta-baseline.json --format sarif
# Scan an MCP server example
asta scan ./examples/vulnerable_mcp_server --format json
# Scan a RAG application example
asta scan ./examples/vulnerable_rag_app --format json
# Scan an agent workflow example
asta scan ./examples/vulnerable_workflow_app --format json
Exit codes
| Code | Meaning |
|---|---|
| 0 | Scan finished; no findings at or above fail_on (default: high) |
| 1 | Scan finished; at least one finding at or above fail_on |
| 2 | Usage, config, path, or I/O error |
Security boundaries
- Scan only the directory you pass as
TARGET. - Never scan URLs or internet targets.
- Never execute target code (
ast.parseonly). - Never read files outside the target (except an explicitly passed
--config). - Never follow symlinks that resolve outside the target.
- Redact secret values in reports. Do not collect or transmit secrets.
- All findings are suspected. ASTA Cloud does not claim a vulnerability was validated unless a later validation step actually ran.
See docs/scan.md for framework detection, taint analysis, rule catalog, config keys, and report formats.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file asta_cloud-0.9.0.tar.gz.
File metadata
- Download URL: asta_cloud-0.9.0.tar.gz
- Upload date:
- Size: 37.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
906fe0c798dbf0c7f7a082cf487edf62926e860ca381ce3c72653441108aac5f
|
|
| MD5 |
e48cdc2c0117ac475ed5812ea3fc5799
|
|
| BLAKE2b-256 |
593c5d45d3eb70f0b79e48eb512c8dbd9c1995323f9c9a9bdbb4529bf2702455
|
File details
Details for the file asta_cloud-0.9.0-py3-none-any.whl.
File metadata
- Download URL: asta_cloud-0.9.0-py3-none-any.whl
- Upload date:
- Size: 58.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec0934c619b6ac954cda1685d189c75399d3694d5ec436a6e9c9fcafb510f92e
|
|
| MD5 |
2cca0a6789fb80d2cda31f3a6723d7ef
|
|
| BLAKE2b-256 |
bcd3ffb61f119123cd3c883aec4013dc9b6ee9911ab32118b1676200bfe3822c
|