Command-line tool to mirror installed software on multiple machines.
- Outputs a human-readable (RON) file to sync between machines:
.emplace - Version control with git to automatically push & pull updates
- Automatic prompt after installing a package
- Integrates well with dotfiles repositories
- Package managers supported:
- Apt (Linux)
- Pacman (Linux)
- Snap (Linux)
- Chocolatey (Windows)
- Cargo (*)
- Rustup Component (*)
- Python Pip (*)
- Python Pip 3 (*)
- Node Package Manager (*)
- Homebrew (Mac)
- Yum (Linux)
- DNF (Linux)
- Portage (Linux)
- Shells supported:
- Bash
- Zsh
- Fish
- nu
-
Install the emplace binary:
cargo install emplace
-
Add the init script to your shell's config file:
Add the following to the end of
~/.bashrc:# ~/.bashrc source <(emplace init bash)
Add the following to the end of
~/.zshrc:# ~/.zshrc eval "$(emplace init zsh)"
Invoke the supported package manager of choice using the command line in a normal way and you will automatically be prompted to mirror the package, for example:
cargo install topgrade
# -- or --
rustup component add rustfmt
# -- or --
sudo apt install meld
# -- or --
pacman -Sy zsh
# -- or --
sudo snap install scrcpy
# -- or --
npm install -g release
# -- or --
pip3 install --user termtosvg
# -- or --
choco install neovimJust invoke emplace install and you will be prompted with the packages to install:
emplace install