The Ultimate macOS Environment Variable Manager
A free, open-source macOS app for managing system-wide environment variables with a beautiful native GUI β no Terminal required.
EnvManager is a powerful yet simple macOS application that lets you manage your system's environment variables through an elegant, native GUI. Perfect for developers, DevOps engineers, and power users who need to configure API keys, database URLs, paths, and other environment settings across their entire macOS system.
- β No Terminal Required β Beautiful visual interface for managing env vars
- β System-Wide β Variables work across all apps, not just Terminal
- β
Auto-Apply β Changes take effect immediately with
launchctl - β Persistent β Survives reboots with LaunchAgent auto-restore
- β Secure β All values masked by default with one-click reveal
- β Free & Open Source β MIT licensed, community driven
| Feature | Description |
|---|---|
| π― Menu Bar Only | Lives in macOS menu bar, hidden from Dock |
| π Background Running | Close window to hide, app keeps running |
| π System Tray | Quick access via tray icon (Show/Hide/Quit) |
| π Logs & Debug | Built-in logs page for troubleshooting |
| Auto-detects PATH/DYLD issues with solutions | |
| π Security First | All values masked by default (β’β’β’β’β’β’). Click eye icon to reveal |
| π Category Panel | Left sidebar with color-coded categories, drag-to-reorder |
| π·οΈ Smart Tags | Inline category tags with Γ button to remove from rows |
| π Export History | Dedicated tab showing all exports with copy/preview |
| πΎ Full Backup | Export complete backup with categories metadata |
| π¨ Category Colors | 8 preset colors for visual organization |
| π One-Click Copy | Copy any value to clipboard instantly |
| π Search & Filter | Find variables by key, value, or category |
| Feature | Details |
|---|---|
| Visual Editor | Click-to-edit table with inline validation and keyboard navigation |
| Auto-Save | Changes saved and applied 2 seconds after editing stops |
| Variable Interpolation | Use ${VAR}, $VAR, $(command), escape with $$ |
| File-Watching Agent | LaunchAgent monitors config changes in real-time |
| Shell Profile Sync | Auto-exports to ~/.zshrc for Terminal compatibility |
| System-Wide Apply | Uses launchctl setenv β works in all applications |
| Import / Export | JSON, .env, YAML, TOML, Shell Script, and Full Backup formats |
| Dark & Light Mode | Native macOS theme support with OKLCH colors |
| Duplicate Detection | Real-time warnings for conflicting keys |
| Accessibility | Full keyboard navigation and screen reader support |
- macOS 12.0 or later
- Apple Silicon (M1/M2/M3) Mac
- Download the latest DMG from Releases
- Open the DMG and drag EnvManager to Applications
- Launch β See First Launch Guide below
# Or use Homebrew (coming soon)
brew install --cask envmanagerSince EnvManager is open-source and not signed with an Apple Developer certificate, macOS Gatekeeper will block the first launch.
Recommended: Right-click Method
- Open Applications in Finder
- Right-click (or Control-click) on EnvManager
- Click Open, then confirm
Alternative: Terminal Method
xattr -cr /Applications/EnvManager.app- Add Variables β Click "+ Add Variable" or press Cmd+N
- Edit Values β Click any cell to edit. All values are masked for security
- Organize β Drag categories in the left panel, click Γ on tags to remove
- Export β Click Export button, choose format, copy or download
- Backup β Use "Full Backup" format to save everything including categories
| Shortcut | Action |
|---|---|
Cmd + N |
Add new variable |
Cmd + S |
Save manually |
Cmd + E |
Export variables |
Tab |
Next field |
Enter |
Confirm edit |
Esc |
Cancel edit |
| Format | Use Case |
|---|---|
| .env | Standard environment file for projects |
| JSON | Simple key-value for APIs |
| YAML | Human-readable config files |
| TOML | Modern config format |
| Shell Script | Source in Terminal |
| Full Backup | Complete backup with categories |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β EnvManager.app (React 19 + Tauri 2 + Rust) β
β β
β ββββββββββββ Save ββββββββββββββββββββββββββββ β
β β GUI β ββββββββββΊ β Rust Backend β β
β β Editor β β ββββββββββββββββββββββ β β
β ββββββββββββ β β Validate keys β β β
β β β Atomic JSON write β β β
β β β launchctl setenv β β β
β β ββββββββββββββββββββββ β β
β ββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββΌβββββββββ
βΌ βΌ
~/Library/ ~/Library/
Application Support/ LaunchAgents/
EnvManager/env.json com.envmanager.env.plist
(persistent store) (re-applies at login)
- Storage:
~/Library/Application Support/EnvManager/env.json - Auto-Save: 2-second debounce with atomic file writes
- Application:
launchctl setenvfor system-wide vars - Persistence: LaunchAgent + Login Item for reboot survival
- Security: All values masked by default in UI
- PATH Variable: macOS overrides
PATHat shell startup. Use~/.zshrcfor PATH changes - DYLD_ Variables*: Stripped by macOS SIP β cannot be set via
launchctl - Running Apps: Already-running apps must be restarted to see new variables
- GUI Apps: Variables visible to all apps launched after setting
- macOS 12.0+
- Xcode Command Line Tools
- Rust (
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) - Node.js 22+ and pnpm
# Clone repository
git clone https://github.com/prohunter00017/envmanager.git
cd envmanager
# Install dependencies
pnpm install
# Development mode with hot reload
pnpm tauri dev
# Build production .app and .dmg
pnpm tauri buildContributions are welcome! See CONTRIBUTING.md for guidelines.
- π Report bugs via Issues
- π‘ Suggest features
- π Improve documentation
- π§ Submit pull requests
Hamza Zoubir β Creator & Maintainer
MIT License β Free for personal and commercial use.
macOS environment variable manager, env var editor mac, system environment variables macOS, launchctl GUI, mac env configuration, environment variable editor, macOS dev tools, API key manager mac, env file editor, mac system settings
Built with β€οΈ using Tauri 2, React 19, and Rust