A tidy, native macOS app for managing the environment variables that otherwise live buried in your zsh dotfiles — no more hand-editing ~/.zshrc in the terminal.
- Browse & search every variable from
~/.zshenv,~/.zprofileand~/.zshrcin one native window - Safe editing — byte-precise round-trips, automatic timestamped backups, atomic and symlink-safe writes that preserve file permissions
- Read-only honesty — complex lines (command substitution, multi-assignments) are displayed but never rewritten
- Override detection — sees through zsh load order (
.zshenv → .zprofile → .zshrc, last assignment wins) and badges shadowed values - PATH editor — edit
:-separated values as a reorderable list - .env import/export — move variables between projects and dotfiles
- Secrets stay private — token/password-like values are masked until you authenticate with Touch ID or your password
- English & German, light/dark/auto appearance
- Live reload when the dotfiles change outside the app
- macOS 26 or later
- Xcode 26+ (to build from source)
git clone https://github.com/apps3k-com/CodingBuddy.git
cd CodingBuddy
./scripts/setup.sh # activates the repo's git hooks (contributors)
open CodingBuddy.xcodeprojOr from the command line:
xcodebuild -project CodingBuddy.xcodeproj -scheme CodingBuddy -configuration Release buildThe app is intentionally not sandboxed: it reads and writes your zsh dotfiles directly. Every mutation is preceded by a backup in ~/Library/Application Support/CodingBuddy/Backups/.
CodingBuddy decomposes each assignment into prefix + export + NAME = quoting + value + suffix so that editable lines reproduce byte-for-byte. Anything it cannot reproduce exactly — $(command substitution), export A=1 B=2, unclosed quotes — is shown read-only and left untouched on disk. New variables go into a clearly marked managed block:
# >>> CodingBuddy >>>
export MY_VAR="value"
# <<< CodingBuddy <<<| 📘 User Guide (EN) | End-user documentation |
| 📘 Benutzerhandbuch (DE) | Endbenutzer-Dokumentation |
| 🔧 Architecture | Technical deep-dive |
| 🚩 Feature flags | Alpha/beta/stable channel concept |
Work happens on feature branches off main with Conventional Commits; releases are cut by release-please. See CONTRIBUTING.md for the full workflow.