Local-first, read-only AWS audit CLI. Generate a VP/CFO-ready AWS audit report in minutes.
Project description
Kulshan
The blood test for your AWS bill.
Generate a local AWS audit report in minutes.
pip install kulshan
aws login
kulshan report
No setup. No data uploads. No infrastructure changes.
Just your AWS account and your laptop.
What is Kulshan?
Kulshan reads your AWS account and generates a business-ready report covering:
- Cost anomalies and trends
- Waste and orphaned resources
- Tag compliance and cost attribution
- Commitment health (RI/SP coverage)
- Spend forecasting and acceleration
- Security posture
- DR readiness
Think of it as a baseline before deeper FinOps work, platform evaluations, or leadership reviews.
What You Get
An HTML report you can open in a browser and hand to your VP, CFO, or platform team. Also available as JSON, SARIF, and CSV.
The report scores your account 0-100 across each dimension, highlights the top actions by dollar impact, and provides an executive summary paragraph.
Install
pip install kulshan
Requires Python 3.9+. macOS, Linux, Windows.
AWS Credentials
Kulshan uses your existing AWS CLI credentials.
Recommended:
aws login
kulshan report
If your AWS CLI does not support aws login, use:
aws sso login
or configure credentials with:
aws configure
More Commands
kulshan doctor # Verify credentials and permissions
kulshan report --quick # Fast scan (3 regions, ~60s)
kulshan report -o report.html # Save as HTML
kulshan report --packs security,sweep # Run specific packs
kulshan report --packs all # Full 10-pack diagnostic
kulshan shell # Interactive REPL
Trust & Security
Read-only by design. No write permissions required. Published IAM policy included.
- 147 read-only audit actions, zero write actions
- Reports stay on your machine, no uploads
- No telemetry, no phone-home
- Open source: Apache 2.0
AWS API Cost
Typical run cost: approximately $0.15-$0.25 in AWS Cost Explorer API charges. All non-cost packs use free AWS APIs.
About the Name
Kulshan is the Lummi name for the mountain known colonially as Mt. Baker, meaning "great white watcher." We acknowledge the Lummi and Nooksack peoples as the original namers of this mountain.
Built by
Mission FinOps | Mission, BC, Canada.
AI Agents
Kulshan works with Claude Code, Codex, Kiro, Cursor, and any agent that can run shell commands. See agents/ for integration docs.
License
Apache 2.0. Free and open source forever.
Project details
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 kulshan-0.1.4.tar.gz.
File metadata
- Download URL: kulshan-0.1.4.tar.gz
- Upload date:
- Size: 218.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1c1bdd8b13985dd8e4349e2150cdefbaa85e5f58a988c4e49bfed05f743b5e1
|
|
| MD5 |
6b2712b8017317e54d4145b4d0e14c74
|
|
| BLAKE2b-256 |
2951ffb7bd8cdbfc9bce5edc34823dcdb8fbc7737816fc2723ea8c4fe1b7acb6
|
Provenance
The following attestation bundles were made for kulshan-0.1.4.tar.gz:
Publisher:
publish.yml on azz-kikkr/kulshan
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kulshan-0.1.4.tar.gz -
Subject digest:
d1c1bdd8b13985dd8e4349e2150cdefbaa85e5f58a988c4e49bfed05f743b5e1 - Sigstore transparency entry: 1873719980
- Sigstore integration time:
-
Permalink:
azz-kikkr/kulshan@cabcaf63c57a9602486eb9e187b1e1cc75f5fe8c -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/azz-kikkr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cabcaf63c57a9602486eb9e187b1e1cc75f5fe8c -
Trigger Event:
push
-
Statement type:
File details
Details for the file kulshan-0.1.4-py3-none-any.whl.
File metadata
- Download URL: kulshan-0.1.4-py3-none-any.whl
- Upload date:
- Size: 286.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fee9e026465660398aeeabb0238d236306e4afe04b40cf29f90e0527fdb89ca0
|
|
| MD5 |
dd21850310c7976a1e3e3488381e25b9
|
|
| BLAKE2b-256 |
f9a44d5c2d0481d24eba26c15d5dafb79b13a06003675022139247bf3f1838d1
|
Provenance
The following attestation bundles were made for kulshan-0.1.4-py3-none-any.whl:
Publisher:
publish.yml on azz-kikkr/kulshan
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kulshan-0.1.4-py3-none-any.whl -
Subject digest:
fee9e026465660398aeeabb0238d236306e4afe04b40cf29f90e0527fdb89ca0 - Sigstore transparency entry: 1873720005
- Sigstore integration time:
-
Permalink:
azz-kikkr/kulshan@cabcaf63c57a9602486eb9e187b1e1cc75f5fe8c -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/azz-kikkr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cabcaf63c57a9602486eb9e187b1e1cc75f5fe8c -
Trigger Event:
push
-
Statement type: