Skip to main content
Plexavo

GitHub stars License PyPI version Build status

See your cloud. Secure what matters.

Turn AWS configuration data into clear, actionable security intelligence.


Plexavo interactive scan demo

Plexavo is an open-source cloud security tool that audits AWS accounts for real-world misconfigurations, using your own local AWS credentials the same way aws s3 ls does, so nothing about your account ever leaves your machine.

Each scan produces a 0–100 security score and a plain-English report: what's wrong, what an attacker would actually do with it, and the exact command to fix it.

✦ What it checks

32 checks across 6 categories, run against real AWS accounts:

Category What Plexavo looks for
IAM Privilege escalation paths, wildcard admin, cross-account trust, root usage, dormant credentials
Network Security groups and RDS instances exposed to the internet
Storage Public S3 buckets via ACLs, bucket policies, or missing Block Public Access; buckets with no access logging
Encryption Unencrypted EBS volumes, RDS instances, S3 buckets
Logging CloudTrail coverage and encryption, GuardDuty status
Usage Permissions granted but never used, roles nobody has assumed in 90+ days

See docs/*-TEST-MATRIX.md for how each check was verified.

⚡ Installation

Every path below installs Plexavo into its own isolated environment.

macOS & Linux

curl -LsSf https://astral.sh/uv/install.sh | sh   # skip if you have uv
uv tool install plexavo

Prefer pipx? pipx install plexavo works the same way.

Windows

uv/pipx still work, but the PATH launcher is unsigned and Windows Smart App Control blocks it. Run Plexavo through Python instead:

Option 1, uv (recommended)

uv tool install plexavo
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
if (!(Test-Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }
Add-Content $PROFILE 'function plexavo { & "$env:APPDATA\uv\tools\plexavo\Scripts\python.exe" -m plexavo @args }'

Open a new terminal. plexavo now works like it does on macOS/Linux, routed through uv's signed Python instead of the blocked launcher.

Option 2, plain venv

py -m venv plexavo-venv
.\plexavo-venv\Scripts\Activate.ps1
python -m pip install plexavo
python -m plexavo

Use python -m for everything here too. The venv's own pip.exe and plexavo.exe are unsigned as well, only python.exe is signed.

AI narration (optional)

Want each finding rewritten as a full narrative? Install "plexavo[ai]" instead of plexavo, and set ANTHROPIC_API_KEY. See Cost.

🚀 Using Plexavo

Run it with no arguments and it walks you through everything: picking an AWS profile, choosing HTML or PDF, then scanning and showing your score with every finding.

plexavo             # macOS/Linux, and Windows Option 1
python -m plexavo   # Windows Option 2
Plexavo interactive CLI

Running it on a schedule

Plexavo can also run unattended from cron or a GitHub Actions workflow, and flag a run when something regresses so you get notified without opening a report. See docs/automation.md.

🤖 Using it from Claude Code

Using Claude Code? Install the plexavo-scan plugin, then just ask: "scan my AWS account for security issues using Plexavo." It relays exactly what Plexavo found, and never runs a state-changing AWS command without asking first.

/plugin marketplace add plexavo/Plexavo
/plugin install plexavo-scan@plexavo

Prefer not to add a marketplace? Save plexavo-scan/SKILL.md to ~/.claude/skills/plexavo-scan/SKILL.md (%USERPROFILE%\.claude\skills\plexavo-scan\SKILL.md on Windows) instead, same skill, just without automatic updates.

📊 The report

Reports are generated as HTML, PDF, or both. Every finding gets a free, template-based fix by default, no key, no cost. Full AI-written narration kicks in automatically once an ANTHROPIC_API_KEY is detected, see Cost.

Plexavo HTML report

💰 Cost

Detection and the free templates always cost nothing. Live AI only runs with --explain, using your own ANTHROPIC_API_KEY in your own Anthropic account.

Plexavo never sees your key and never calls the API without it. A full scan with --explain typically costs a few cents.

🤝 Contributing

git clone https://github.com/plexavo/plexavo.git
cd plexavo
uv pip install -e .

See CONTRIBUTING.md for the pattern used to add a new check.

🧨 Break Plexavo

Think you can make Plexavo miss something, or give confusing guidance?

Report it →

Every confirmed, genuinely new finding gets fixed and shipped, and you get a permanent credit in the Hall of Bugs.

No bounty. Public credit only.

🔐 Security

Found a vulnerability in the tool itself, not a misconfiguration in your own AWS account (that's the tool working correctly)?

See SECURITY.md for a private reporting path.

📄 License

AGPL-3.0, see LICENSE.

Use, run, and modify it freely. If you run a modified version as a hosted service, you're required to publish those modifications too.


Plexavo · Open-source cloud security, built to be understood.

Scan. Understand. Fix. Repeat.

Metadata

Release files for plexavo 0.4.1

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

Source distribution (sdist)

Source distribution for plexavo 0.4.1
File Size Uploaded
plexavo-0.4.1.tar.gz 1.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for plexavo 0.4.1
File Interpreter ABI Platform
plexavo-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 3.3 MB

Release files / plexavo-0.4.1.tar.gz

Download URL plexavo-0.4.1.tar.gz
Size 1.7 MB
Tags Source
SHA-256 checksum
How to use checksums
f90f7a62bbd6803380d76625c42c7a772e0f6f8b02019dacb5e6da1715212a1f
BLAKE2b-256 checksum
How to use checksums
8fed66cf14a2acd40dc2c24e82bed7fe6a513d8dc07cc0f97f9735f845657e39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / plexavo-0.4.1-py3-none-any.whl

Download URL plexavo-0.4.1-py3-none-any.whl
Size 1.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
82aa5995a5caf1e6b793d6d0dc24d1c0b0842518ff7d881f9a798502e8abbb18
BLAKE2b-256 checksum
How to use checksums
a1edd471dc196d38821abf4e134669f2132f776c937e54a48ed81a304d888798
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.1

2 release files

0.5.0

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release 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