envtether
Static Configuration Intelligence for Modern Python Applications
envtether is an enterprise-grade static analysis tool designed to help developers understand, validate, secure, and maintain project configuration before deployment.
It acts as the Ruff, SonarQube, or ESLint of application configuration, providing deep insights into how your configuration variables are defined, used, and deployed across your entire stack.
🌟 Key Features
- Comprehensive Discovery: Parses Python code (AST-level),
.envfiles, Docker Compose, Kubernetes manifests, GitHub Actions, Terraform, and more. - Deep Framework Support: Native support for FastAPI, Flask, Django, Pydantic
BaseSettings, Dynaconf, and standardos.getenv. - Advanced Secret Detection: Combines heuristic regex patterns with Shannon entropy analysis to detect hardcoded and exposed credentials (AWS, Azure, GCP, OpenAI, Stripe, etc.) with minimal false positives.
- Cross-File Drift Detection: Identifies misalignments between your
.env.example, Docker Compose, and CI/CD pipelines. - Health Scoring: Computes a holistic health score (0-100) based on 11 dimensions of configuration hygiene, giving you an immediate sense of production readiness.
- Dependency Graph: Builds a directed dependency graph connecting variables to services, files, and deployment targets. Exportable to Mermaid, Graphviz DOT, JSON, and interactive HTML.
- Automated Documentation: Generates beautiful Markdown and HTML documentation of your project's configuration variables.
- CI/CD Integration: Supports SARIF output for GitHub Advanced Security and other CI/CD dashboards.
🚀 Installation
envtether requires Python 3.12 or newer.
pip install envtether
Or using uv:
uv tool install envtether
🛠️ Quick Start
Navigate to your project's root directory and run the CLI:
1. Scan and Analyze
# Full interactive scan with Rich console output
envtether scan .
# Run a comprehensive health check (fails on critical issues)
envtether doctor .
2. Generate a Dependency Graph
Visualise how your configuration connects to your codebase and infrastructure:
envtether graph . --format html --output config-graph.html
3. Generate Documentation
Auto-generate a beautiful configuration reference for your team:
envtether docs . --format markdown --output CONFIG.md
4. CI/CD Integration
Run envtether in your CI pipeline to catch configuration drift and exposed secrets before they are merged:
envtether ci . --format sarif > envtether-results.sarif
🧠 How It Works
- Scanning: Recursively finds all relevant files (ignoring
.gitignore,node_modules, etc.). - Architecture Discovery: Detects the project type (e.g. FastAPI, Docker), cloud providers, and service dependencies (e.g. Redis, PostgreSQL).
- AST Analysis: Parses Python code using
astto findos.getenv,os.environ, and PydanticBaseSettingsdeclarations. - Format Analysis: Parses
.env, Docker Compose, Kubernetes manifests, and Terraform files to track variable definitions. - Cross-Validation: Compares variable sets across files to detect drift (e.g. variable defined in Docker Compose but missing in
.env.example). - Secret Detection: Runs high-performance entropy checks and pattern matching on configuration values.
- Reporting: Aggregates findings, computes a health score, and exports to the requested format.
⚙️ Configuration
Initialise a configuration file in your repository:
envtether init .
This creates a .envtether.toml file where you can customise rules, secret detection thresholds, ignore paths, and more.
🔌 Plugin System
envtether is designed with a robust protocol-based plugin architecture. You can easily extend it to support proprietary configuration formats, internal tools, or new frameworks.
🤝 Contributing
We welcome contributions! Please see our Contributing Guide and Code of Conduct.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🛡️ Security
If you discover a security vulnerability within envtether, please review our Security Policy for reporting guidelines.
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 envtether-26.7.20.tar.gz.
File metadata
- Download URL: envtether-26.7.20.tar.gz
- Upload date:
- Size: 65.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f3814b0cc2e566cf2457c2562ee2ccd3b7fcbdbc806fa785a76c18313a87fee
|
|
| MD5 |
b84cd78d6bb6d991e8120bb8e7aaf856
|
|
| BLAKE2b-256 |
2acf807f875cac62af832e8a4c25a28dd89aef32bc3e7764904044aa510751fc
|
File details
Details for the file envtether-26.7.20-py3-none-any.whl.
File metadata
- Download URL: envtether-26.7.20-py3-none-any.whl
- Upload date:
- Size: 93.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00e57d01e8d342ddcacf4de16e376fd074e581f49afb39100c44f243a1f2e7d4
|
|
| MD5 |
554e4e45a018a89223ce883b582bacea
|
|
| BLAKE2b-256 |
d5e4cb8601b8337c4fe7be831cf4807e54918777e2ba21d6fd198b14a5a4ac8f
|