You are browsing as a guest. Sign up (or log in) to start making projects!

2h 43m 19s logged

envscope reached its first public release as a TUI-first .env inspection tool. The project started as planning documents and is now a packaged Python application with a full Textual interface, core comparison engine, PyPI distribution, and GitHub release binaries for Windows and Linux.

What Shipped

The v1.0 release detects:

  • Missing keys declared in examples but absent from real env files.
  • Extra keys present in real env files but undeclared in examples.
  • Duplicate keys inside one file, preserving all line numbers.
  • Empty-but-required values.
  • Insecure values in both directions: real secrets leaked into example files and weak placeholder values left in real env files.

The app remains intentionally TUI-only. There are no CLI subcommands, CI mode, JSON output mode, daemon, or headless workflow in this version.

Product and UX

The interface was shaped around a developer diff dashboard: dark terminal styling, green/purple/blue accents, a file explorer picker, a scope list, candidate tabs, category counts, a diff table, and a selected-finding detail panel.

The picker now includes a file explorer. Selecting a directory updates the scan path, and selecting an .env* file uses its parent directory. Single-scope projects open directly into the diff view so simple projects like a root .env plus .env.example do not require extra navigation.

The diff view supports search, severity filtering, suppressed finding visibility, selected-finding details, and selected-only secret reveal. Secret-like values are masked by default throughout the TUI and export flow.

Core Engine

The core/ layer is UI-agnostic and independently tested. It contains:

  • A custom dotenv parser that preserves ordering, line numbers, duplicate entries, blank values, quotes, and export prefixes.
  • A scanner that discovers flat projects, multi-variant flat projects, and monorepo scopes.
  • A comparator that returns dataclass-based findings.
  • A data-driven heuristic engine for known token formats, high-entropy strings, weak values, and blank required secrets.

One important v1 fix was discovery behavior for gitignored env files. Many real projects list .env in .gitignore; envscope now still scans target .env files even when ordinary .gitignore rules mention them, while continuing to skip ignored directories such as .git, node_modules, venv, dist, and build.

Configuration

.envscope.toml supports:

  • Custom scan ignore globs.
  • Custom secret patterns.
  • Custom weak values.
  • Reasoned suppressions.

Suppressed findings are not deleted. They remain visible in the TUI and Markdown export, but are counted separately from active findings. Each suppression requires a reason.

Packaging and Release

The package was published to PyPI as envscope version 1.0.0.

Install command:

pip install envscope

PyPI page:

https://pypi.org/project/envscope/1.0.0/

GitHub release:

https://github.com/DevaanshPathak/envscope/releases/tag/v1.0.0

Release binaries:

  • envscope-windows-x86_64.exe
  • envscope-linux-x86_64

macOS binaries were intentionally skipped for this release. Building reliable macOS standalone binaries should be done on a macOS runner or macOS machine.

Verification

The final release passed:

uv run --extra dev pytest
uv run python -m compileall -q envscope tests
uv run python -m build
uv run python -m twine check dist/*

Test coverage includes parser behavior, scanner discovery, .gitignore handling, comparator categories, config parsing, suppressions, export formatting, heuristics, and a Textual smoke test.

0
3

Comments 0

No comments yet. Be the first!