Skip to main content

Athena SAST CLI

Client for the Athena engine plus a local OWASP CI/CD gate. The engine stays separate; this repo is the public install surface (PyPI, GitHub Releases, GHCR, GitHub Action).

Auth is environment-only. Never pass ATHENA_API_KEY as a flag. Never commit .env.

Install

pip (PyPI)

pip install athena-sast
export ATHENA_API_URL="https://YOUR_ENGINE"
export ATHENA_API_KEY="..."   # never a flag
athena scan --repo https://github.com/ORG/APP.git --branch main --fail-on high

ATHENA_API_URL is required for engine scans. Set it in the environment (or a secret store). It is not hardcoded in the CLI. Do not put the engine hostname in this repo, issues, or examples.

GitHub Release binary

Download athena-<version>-linux-x64 (or macos-arm64 / windows-x64.exe) and SHA256SUMS from Releases.

chmod +x athena-*-linux-x64
export ATHENA_API_URL="https://YOUR_ENGINE"
export ATHENA_API_KEY="..."
./athena-*-linux-x64 scan --repo https://github.com/ORG/APP.git --branch main --fail-on high

Docker (GHCR)

Runtime env only. The image does not contain keys.

docker run --rm \
  -e ATHENA_API_URL \
  -e ATHENA_API_KEY \
  -v "$PWD":/src -w /src \
  ghcr.io/axiler-sec/athena-sast-cli \
  scan --repo https://github.com/ORG/APP.git --branch main --fail-on high

GitHub Action (any app repo)

Pin a 40-character commit SHA. Do not use @main. Composite actions cannot read secrets.*; put them on the job env:.

name: Athena SAST
on:
  pull_request:
  push:
    branches: [main]
permissions:
  contents: read
  security-events: write
jobs:
  scan:
    runs-on: ubuntu-latest
    env:
      ATHENA_API_URL: ${{ secrets.ATHENA_API_URL }}
      ATHENA_API_KEY: ${{ secrets.ATHENA_API_KEY }}
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - uses: Axiler-Sec/athena_sast_cli@<40-char-sha>
        with:
          repo: https://github.com/${{ github.repository }}.git
          branch: ${{ github.ref_name }}
          fail-on: high

Replace the Action SHA with a real 40-character SHA from this repository (example shape only above). Use pull_request, never pull_request_target with a checkout of the PR head. See SECURITY.md.

Local gate only (no engine secrets): omit repo / unset ATHENA_API_KEY and use modes: pipeline. Do not put localhost in a GitHub secret.

Two modes

Local OWASP CI/CD gate (no API key):

athena scan tests/targets/bad_pipeline.yml
athena owasp

This regex gate scans pipeline YAML, IaC, and source for OWASP CI/CD Security Cheat Sheet risks (CICD-SEC-1 through CICD-SEC-10). It is not as deep as the engine's OpenGrep / Trivy / KICS / Syft analysis. Findings are tagged source: local_owasp.

Engine client (requires env):

export ATHENA_API_URL="https://YOUR_ENGINE"
export ATHENA_API_KEY="..."          # never a CLI flag
export ATHENA_REPO_TOKEN="..."       # private repos
athena scan --repo https://github.com/ORG/APP.git --branch main \
  --modes code-review,secrets,iac,sca,pipeline \
  --format sarif --output athena-results.sarif --fail-on high --quiet

Engine findings are tagged source: engine. Identifiers (CVE/CWE/CVSS) are passed through when the engine sends them and omitted when it does not.

Honesty

  • The engine product agents do not return SARIF. Athena builds SARIF 2.1.0 and labels it sarif_source: cli_normalized.
  • athena compliance prints mapped controls, not a certification.
  • Exit codes are a frozen contract: 0 clean, 1 findings at/above --fail-on, 2 tool/auth/config error.
  • athena monitor records a snapshot: same scan, never exit 1. Without Mongo, snapshot: local_only.

Develop from source

cd athena-sast-cli
python3 -m pip install pytest
python3 athena.py version
python3 -m unittest discover -s tests -v

Cursor MCP (this machine only)

Copy examples/mcp.json.example into a local MCP config. athena mcp is stdio — not a network service. Tool text is redacted.

Product documentation

License

Apache-2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

athena_sast-1.1.1.tar.gz (37.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

athena_sast-1.1.1-py3-none-any.whl (39.9 kB view details)

Uploaded Python 3

File details

Details for the file athena_sast-1.1.1.tar.gz.

File metadata

  • Download URL: athena_sast-1.1.1.tar.gz
  • Upload date:
  • Size: 37.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for athena_sast-1.1.1.tar.gz
Algorithm Hash digest
SHA256 1b284f4d013c6bc62e30698067bff00f99da3a17113e450e0be63683dea63f21
MD5 7ccfcbaa7e6ee291cf0efc7ad2c6a0bf
BLAKE2b-256 365a95bb4dff9417ac6e1a714ad2340b3c0a7e85f0247a7aa37b978343534d3e

See more details on using hashes here.

Provenance

The following attestation bundles were made for athena_sast-1.1.1.tar.gz:

Publisher: release.yml on Axiler-Sec/athena_sast_cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file athena_sast-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: athena_sast-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 39.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for athena_sast-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 90752d6cf4ee9e460af4d9da83b80d17df2e35d8b80a81695895fb359c473a5d
MD5 a0747b89d50eb8ef1568f1ae5047174e
BLAKE2b-256 de614538e7b3526ab4dfa5c7773cfc8f8bebe9adf085667996594b06f0d3ba2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for athena_sast-1.1.1-py3-none-any.whl:

Publisher: release.yml on Axiler-Sec/athena_sast_cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 files

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