Metadata-Version: 2.4
Name: envcontract
Version: 0.1.0
Summary: The contract for your .env — validate it, catch team drift, and never commit a secret. 100% local.
Project-URL: Homepage, https://github.com/hamzamansoorch/envcontract
Project-URL: Issues, https://github.com/hamzamansoorch/envcontract/issues
Author: Hamza Mansoor
License: MIT
License-File: LICENSE
Keywords: cli,dotenv,env,environment-variables,pre-commit,secrets,validation
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.10
Requires-Dist: click>=8.1
Requires-Dist: pydantic>=2.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0
Provides-Extra: dev
Requires-Dist: mypy>=1.0; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Description-Content-Type: text/markdown

# envcontract

**The contract for your `.env`.** Validate it, catch team drift, and never commit a secret — **100% local, your values never leave your machine.**

> Status: early development (v0.1.0). Built in the open.

## Why

Teammates add an env var and forget to tell anyone. Secrets get committed by accident. `.env.example` drifts out of sync and was never a real schema. `envcontract` fixes this with one committed contract — `.env.schema` — that lists your variables and their rules, but **never their secret values**.

## Install

```bash
pipx install envcontract   # recommended (isolated)
# or
pip install envcontract
```

## Commands

| Command | What it does |
|---------|--------------|
| `envcontract init`  | Generate a `.env.schema` from your existing `.env` (values stripped). |
| `envcontract check` | Validate your `.env` against the schema: missing keys, wrong types, failed rules. |
| `envcontract diff`  | Show what your local `.env` has vs. the schema (catches team drift). |
| `envcontract guard` | Pre-commit hook that blocks committing real values for secret keys. |

## Privacy promise

`envcontract` makes **zero network calls** and has **no telemetry**. It reads files on your machine and prints to your terminal. Nothing else. This is enforced by a test that fails if any network socket is opened.

## License

MIT
