easy-command
v2.0.9
Published
Configure a polished Zsh terminal with one command.
Maintainers
Readme
easy-command
Configure a polished Zsh terminal in one command.
easy-command installs and configures Oh My Zsh, the agnoster theme, Git status, command suggestions, Tab completion, and syntax highlighting. It preserves your existing .zshrc content and creates a backup before every change.
See CHANGELOG.md for release notes.
INSTALL
npm (recommended)
npm i -g easy-command
easy-command -yOr install globally and configure your terminal in one command:
npx easy-command -y --global
exec zsh -lGitHub
No Node.js or npm is required:
curl -fsSL https://raw.githubusercontent.com/UnionSchool/easy-command/main/install.sh | bash -s -- -yWhen installation finishes, open a new terminal session or run:
exec zsh -lEveryday commands
# Preview installation without changing your machine
easy-command --dry-run
# Check Shell, dependencies, managed repositories, and .zshrc configuration
easy-command doctor
# Restore missing managed files and configuration
easy-command repair -y
# Safely update Oh My Zsh and managed plugins
easy-command update -yIf you do not want a global npm installation, replace easy-command in the examples with npx easy-command.
What you get
- A clean
agnosterprompt with your user, path, Git branch, and working-tree status. - History-based command suggestions. Press
→orCtrl+Eto accept one. - Syntax highlighting: valid commands are green; unknown commands are bold red.
- Native Zsh completion. Press
Tabto complete; press it twice to view candidates. - Shared history across terminal sessions, retaining the latest 10,000 commands.
- Built-in preview, diagnostics, repair, and update commands for easy maintenance.
Preview
Git branch and working-tree status

History-based command suggestions

Syntax highlighting and error feedback

Options
# Configure a specific user
bash install.sh -y --user bell
# Keep the current login shell
bash install.sh -y --no-chsh
# Remove only the configuration block managed by easy-command
bash install.sh --uninstall
# Enable optional fuzzy search
bash install.sh -y --with-fzfzoxide is installed by default. It enables z <keyword> directory jumping and z add <directory> (or z a <directory>) for manually recording a directory. Directories are recorded only through z add, z a, ec add, or ec a; normal jumps never add a directory automatically. Use --without-zoxide to disable it. fzf adds fuzzy history and file searching. Git aliases are added by default, including git st, git br, git sw, git ci, git cam, git lg, git la, git lb, and git ec-status; existing aliases are never overwritten. Use --without-git-aliases to skip or remove aliases managed by easy-command.
For a unified interface, use ec <keyword> to jump, ec add <directory> (or ec a <directory>) to record a directory, ec list (or ec l) to view entries, and ec del <directory> (or ec remove <directory>) to remove one. ec doctor, ec repair, ec update, ec install, ec uninstall, and ec --dry-run run the matching easy-command maintenance operation. z remains available for zoxide compatibility.
Requirements
- macOS: Homebrew must already be installed.
- Ubuntu / Debian: dependencies are installed with
apt-get.
The script needs sudo to install packages and change the default shell. Without sudo access, use --no-chsh and have an administrator install Zsh first.
Configuration and rollback
The installer manages only the marked easy-command block in ~/.zshrc. Before each update, it creates a timestamped backup. Running --uninstall removes only that managed block; it does not remove Oh My Zsh, plugins, command history, or other personal settings.
Installed components:
~/.easy-command/oh-my-zsh
~/.zshrc
~/.zsh_historySecurity
For a first-time trial, download and inspect the script before running it:
curl -fsSLO https://raw.githubusercontent.com/UnionSchool/easy-command/main/install.sh
less install.sh
bash install.sh -yFor production, pin a release tag instead of running main directly:
npx [email protected] -yOr, without npm:
curl -fsSL https://raw.githubusercontent.com/UnionSchool/easy-command/v2.0.9/install.sh | bash -s -- -y