Changelog
All notable changes to this project will be documented in this file.
[0.4.3] - 2026-03-22
Added
- Homebrew tap for macOS and Linux (
brew install lazynop/tap/lazyenv) - Scoop bucket for Windows (
scoop install lazyenv) - AUR package for Arch Linux (
yay -S lazyenv-bin)
[0.4.2] - 2026-03-19
Added
- Secret masking in compare view with
Ctrl+Stoggle, synced with main view ^S secretshint in compare view status bar- Demo GIF and VHS tape source in README
Fixed
- Masked values no longer show truncation artifacts (
..) in narrow terminals
[0.4.1] - 2026-03-19
Added
- Configurable secret detection via
[secrets]config section withsafe_patterns,extra_patterns, andvalue_heuristicoptions - Shannon entropy-based value heuristic replacing the simple length+alphanumeric check, reducing false positives on hostnames and URLs
- Built-in detection rules documented in configuration docs
Fixed
- False positive in secret detection for long hostnames/URLs (e.g.
db-prod-ap-03.internal) - Diff view not refreshing visually after copy operations due to stale method value in Go value semantics
- Missing
(missing)placeholder in compare view for added/removed keys AddVarnot settingIsSecreton newly added variables
Improved
- Deduplicated missing placeholder computation in diff entry rendering
[0.4.0] - 2026-03-18
Added
- Interactive theme preview with
--themesflag and 56 built-in themes - Mouse support: click and scroll wheel handling across all modes
- Configurable mouse scroll lines via config
--no-mouseflag and config option to disable mouse--check-configflag to validate configuration--configflag to specify a custom config file path--file-list-widthflag to control file list panel width
Fixed
- Enforce minimum file-list-width of 20
- Show sort hint (o) in status bar for all normal mode panels
Improved
- Truncate long file names in file list panel
[0.3.1] - 2026-03-07
Added
- Configurable marker colors for variable indicators (new, modified, deleted, duplicate, empty, placeholder)
Fixed
- Next/prev diff navigation (
n/N) not working in compare mode
Improved
- Split monolithic
app.gointo focused files for better maintainability
[0.3.0] - 2026-03-07
Added
- Configuration file support (
.lazyenvrcin project root or~/.config/lazyenv/config.toml) - 15 built-in color themes (catppuccin, dracula, gruvbox, nord, tokyo-night, and more)
- Theme background color support via Bubble Tea v2
View.BackgroundColor --list-themesflag to list available built-in themes--no-theme-bgflag andno-theme-bgconfig option to disable theme background--show-configflag to display effective configuration-s/--sortflag for sort order (position or alphabetical)- Configurable file detection patterns (
[files]section in config) - Configurable layout dimensions (
[layout]section in config) - Configurable color overrides (
[colors]section in config) - Blocking error alert for invalid configuration (e.g. unknown theme)
Fixed
- Config file search now uses current working directory instead of scan directory
- ANSI color reset leaking in file list when using styled themes
- Status bar text now uses theme colors for visibility on all backgrounds
- Exclude
.bakfiles from env file detection
Improved
- Centralized configuration constants into dedicated config package
- Extracted file detection patterns into configurable FileConfig
- Themes organized in dedicated subpackage with one file per theme
[0.2.0] - 2026-03-01
Added
- Completeness matrix view for multi-file variable comparison with inline add (
m) - Yank to clipboard: copy value (
y) or KEY=value (Y) - Peek original value for modified/new variables (
p) - Per-variable indicators: modified (
*), new (+), deleted (-), duplicate (D), empty (○), placeholder (…) - Combined modified and issue indicators on the same variable
Fixed
- Preserve GitWarning flag across save, reset, and compare save operations
- Restore cursor position when exiting compare mode
- Show save/reset hints in file panel status bar
- Show matrix hotkey in status bar hints
- Reset peek state when switching files
- Set meaningful default version for source builds
Improved
- Organize imports into stdlib, external, internal groups
- Rewrite README with updated features, install instructions, and keybindings
- Update help panel with all current keybindings and indicators
Testing
- Increase parser test coverage from 82% to 93%
- Increase TUI test coverage from 44% to 79%
[0.1.4] - 2026-03-01
Added
- Automatic
.bakbackup before the first save of each session -B/--no-backupflag to disable backup
[0.1.3] - 2026-03-01
Added
- Visual warning (
!) in file list for.envfiles not covered by.gitignore -G/--no-git-checkflag to disable gitignore check- Silent fallback when git is not installed or not in a git repo
Improved
- Modernize codebase for Go 1.26 (
SplitSeq, range over int, etc.)
[0.1.2] - 2026-02-28
Added
- Reset command (
r) in normal mode to discard changes and reload from disk
Fixed
- Recursive scan (
-r) without explicit path now correctly defaults to current directory
Improved
- Replaced
flagwith Kong for CLI argument parsing - Kong
existingdirtype for path validation
Testing
- Test for
ScanDirwith dot path in recursive mode
[0.1.1] - 2026-02-28
First public release of LazyEnv.
- Two-panel TUI layout with file list and variable viewer
- .env file scanner: finds
.env,.env.*,*.envpatterns - Parser with round-trip fidelity (preserves comments, blank lines, quoting, ordering)
- Secret masking: auto-detects keys like
*_PASSWORD,*_TOKEN,*_API_KEY - Inline validation: warns on empty values, placeholders, and duplicate keys
- Side-by-side diff/compare between two env files
- Inline editing: edit, add, and delete variables
- Write-back with format preservation
- Keyboard navigation with vim-style bindings (hjkl)
- CLI flags:
-r(recursive scan),-a(show secrets),-v(version),-h(help) - Adaptive light/dark theme via terminal background detection
- Test suites with testify for parser, model, util, and scanner packages
- Bubble Tea v2, Lipgloss v2, Bubbles v2
- GoReleaser for automated multi-platform releases
justfileas task runner