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

envscope

  • 3 Devlogs
  • 4 Total hours

envscope is a terminal UI for inspecting .env files in a project. It compares real environment files against their matching .env.example, .env.sample, or .env.template files and shows configuration drift directly inside an interactive terminal app.

Ship #1 Changes requested

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.

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.

  • 3 devlogs
  • 4h
Try project → See source code →
Open comments for this post

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
0
3
Open comments for this post

47m 56s logged

Progress on envscope has moved from scaffolding into a usable prototype.

The core comparison engine is now implemented and the application can successfully inspect project environment files against their corresponding .env.example, .env.sample, or .env.template files.

Current capabilities include:

  • Discovering matching environment/example file pairs.
  • Parsing and comparing environment variables.
  • Detecting missing required variables.
  • Identifying extra variables that exist only in local .env files.
  • Detecting duplicate keys within the same file.
  • Flagging blank required values.
  • Performing basic checks for suspicious secrets in example files and placeholder values in real .env files.

Alongside the comparison engine, the first working version of the terminal UI is now in place. While still minimal, it is already capable of displaying scan results interactively inside the terminal and provides the foundation for future navigation, filtering, and detailed inspection views.

At this stage, the focus is on correctness rather than polish. The UI is functional enough to validate the workflow end-to-end, making it easier to iterate on the user experience as more features are added.

Next Steps

  • Improve the TUI layout and navigation.
  • Add richer issue details and summaries.
  • Support scanning larger projects with multiple environment file groups.
  • Refine heuristics for placeholder and secret detection.
  • Prepare the package for an initial PyPI release via pipx install envscope.
0
0
2
Open comments for this post

29m 25s logged

Building envscope

envscope is a terminal UI for inspecting .env files in a project. It compares real environment files against their matching .env.example, .env.sample, or .env.template files and shows configuration drift directly inside an interactive terminal app.

It is built for developers who want to quickly answer:

  • Which required environment variables are missing?
  • Which local variables are not declared in the example file?
  • Did any file define the same key twice?
  • Are required values blank?
  • Did a real secret leak into an example file, or did a weak placeholder remain in a real .env file?

envscope is TUI-only. Launching envscope opens the terminal application; this version does not include a headless, CI, or subcommand-based workflow.

I plan to release this as a python package on PyPI for everyone to install using: pipx install envscope

As of now, the repo is scaffolded and work on the core functionality is started.

0
0
2

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…