envmgr
A dotfiles manager on steroids.
Limitations
- Currently supports only Linux.
- Only fish shell is supported at the moment.
Features
- Manage your dotfiles with ease.
- Support for multiple environments (e.g., work, personal).
- Easy setup and configuration.
- Backup and restore your dotfiles.
Installation
Fish shell integration
envmgr emits shell commands that need to be evaluated in the current shell session. For fish, you can wire this up with a small hook. The hook is direnv-like and can auto-apply your environment when you cd.
- One-off for the current session:
envmgr hook fish | source
- Persist it for all future fish sessions by adding the hook to your fish config:
# Create/append to ~/.config/fish/conf.d/10-envmgr.fish so fish auto-loads it
envmgr hook fish > ~/.config/fish/conf.d/10-envmgr.fish
Usage in fish after installing the hook:
- Apply your current environment (prints and evals fish commands). This also happens automatically at the prompt:
envmgr use
- List environments:
envmgr list
Notes:
- The hook defines a fish function named
envmgrthat forwards subcommands to the binary and, foruseandswitch, evals the emittedset/set -ecommands so your session updates in-place. - If you prefer not to install the function, you can still manually eval output when needed:
command envmgr use | source.
Roadmap
- Basic dotfile management
- Environment switching
- Fish shell support
- GitHub CLI integration
- 1Password SSH Agent integration
- Tailscale integration
- Test examples/simple_config with CI
- More shells (zsh, bash)
- Init command with interactive setup
- Integrations interacting with state
- Add/remove environments
- Import / export existing dotfiles
- More platforms (Windows / macOS)
- Doctor command
- Encrypted files (e.g., using age)
- Git wrapper for managing encrypted files
- More integrations (e.g., AWS, GCP, Azure)
- Plugin system
- Performance tests and budgets
Security
envmgr is still experimental software. If you believe you've found a security issue, please follow the guidance in our security policy. We'll review reports on a best-effort basis until a stable v1 release is available.