envmgr

Crates.ioenvmgr
lib.rsenvmgr
version0.1.1
created_at2025-10-01 09:36:05.930341+00
updated_at2025-10-01 09:37:37.78065+00
descriptionDotfiles and CLI environment manager
homepage
repositoryhttps://github.com/flyinpancake/envmgr
max_upload_size
id1862313
size79,798
(FlyinPancake)

documentation

README

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

cargo install --git https://github.com/flyinpancake/envmgr.git

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 envmgr that forwards subcommands to the binary and, for use and switch, evals the emitted set/set -e commands 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.

Commit count: 0

cargo fmt