Transform your terminal experience with organized bash functions, aliases, and a powerful plugin system.
This project is maintained by randyoyarzabal
Complete guide to installing, configuring, and taking your first steps with Chief.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/randyoyarzabal/chief/refs/heads/main/tools/install.sh)"
Thatβs it! Restart your terminal and start using Chief.
# Install to custom directory
CHIEF_PATH="$HOME/my-chief" bash -c "$(curl -fsSL https://raw.githubusercontent.com/randyoyarzabal/chief/refs/heads/main/tools/install.sh)"
# Install specific version
CHIEF_VERSION="v2.1.0" bash -c "$(curl -fsSL https://raw.githubusercontent.com/randyoyarzabal/chief/refs/heads/main/tools/install.sh)"
# Install from specific branch (for testing)
CHIEF_INSTALL_GIT_BRANCH="dev" bash -c "$(curl -fsSL https://raw.githubusercontent.com/randyoyarzabal/chief/refs/heads/main/tools/install.sh)"
For environments without git connectivity, you can install Chief from local files:
# 1. Download Chief manually (on a connected machine)
git clone https://github.com/randyoyarzabal/chief.git
cd chief
# 2. Transfer the entire directory to your disconnected system
# 3. Install from local files
./tools/install.sh --local
# 4. Optional: Install to custom location
./tools/install.sh --local --path /opt/chief
Benefits of disconnected installation:
Note: The
--branch
option is ignored with--local
installations since files come from the local directory, not Git.
~/.chief/
) - Core functionality and plugins~/.chief_config.sh
) - Your personal settings~/.bash_profile
chief.vault.*
)
ansible-vault
command must be in PATHchief.oc.*
)
oc
command must be in PATHComponent | Minimum Version | Recommended | Notes |
---|---|---|---|
Bash | 4.0 | 5.0+ | Associative arrays, process substitution |
Git | 2.0 | Latest | Clone, fetch, submodules |
Ansible Core | 2.9 | Latest | Optional - vault functions only |
OpenShift CLI (oc) | 4.0 | Latest | Optional - OpenShift functions only |
# Check bash version
bash --version
# Check if git is available
git --version
# Check ansible (optional)
ansible-vault --version 2>/dev/null || echo "Ansible not installed (optional)"
# Check OpenShift CLI (optional)
oc version --client 2>/dev/null || echo "OpenShift CLI not installed (optional)"
π‘οΈ Safe for Zsh Users: Chief only affects your Bash shell environment. If youβre currently using Zsh, Oh My Zsh, or any other shell, Chief wonβt interfere with your existing setup. It only activates when you explicitly run
bash
or switch to a Bash session.
π‘ Using Oh My Bash or Custom Prompts? Chiefβs prompt customizations are disabled by default (
CHIEF_CFG_PROMPT=false
). If you have Oh My Bash, Starship, or other prompt tools, keep this setting disabled to avoid conflicts.
Found a bug or need help? Weβre here to help! Please create an issue on GitHub:
When reporting issues, please include:
uname -a
to get your system detailschief.help
to see the current versionThis helps us quickly identify and fix issues!
After restarting your terminal:
# Check Chief is loaded
chief.help
# See your current configuration
chief.config_show
# Get help for any command
chief.help search
# Find where functions are defined
chief.whereis git_status
# List all available plugins
chief.plugin -?
# Create a custom plugin
chief.plugin mytools
# This opens your plugin file in your default editor
# Add some custom functions, save, and exit
Example plugin content:
#!/usr/bin/env bash
# My custom tools
# Quick directory navigation
alias ll='ls -la'
alias ..='cd ..'
# Custom function
my_status() {
echo "System: $(uname -s)"
echo "User: $(whoami)"
echo "Directory: $(pwd)"
}
# After saving your plugin, reload Chief
chief.reload
# Your new function is now available
my_status
# Find where it's defined
chief.whereis my_status
# Enable beautiful git-aware prompts
chief.config_set PROMPT true
# Reload to see changes
chief.reload
# Set up your preferred editor (for plugin editing)
chief.config_set EDITOR "code" # VS Code
# or
chief.config_set EDITOR "vim" # Vim
# Configure multiline prompts (recommended)
chief.config_set MULTILINE_PROMPT true
# Show full paths in prompt
chief.config_set SHORT_PATH false
# Update Chief with automatic config reconciliation
chief.config_update # Updates config with new options
chief.config_update --dry-run # Preview changes before applying
# Reinstall over existing installation
bash -c "$(curl -fsSL https://raw.githubusercontent.com/randyoyarzabal/chief/refs/heads/main/tools/install.sh)"
Chief supports tracking any valid Git branch for updates:
# Track stable releases (default)
chief.config_set update_branch main
# Track development features (β οΈ use with caution)
chief.config_set update_branch dev
# Update to your configured branch
chief.update
What chief.config_update
does:
# Method 1: Using Chief command (easiest if Chief is working)
chief.uninstall
# Method 2: One-liner (works from anywhere)
bash -c "$(curl -fsSL https://raw.githubusercontent.com/randyoyarzabal/chief/refs/heads/main/tools/uninstall.sh)"
~/.chief
) is completely removed~/.chief_config.sh.backup
then removed~/.bash_profile
) is cleaned up automatically~/.chief
)π‘οΈ Safe Uninstall: Your personal plugins, shell customizations outside Chief, and other configurations remain completely untouched.
Problem: Command not found after installation
# Solution: Source your bash profile manually
source ~/.bash_profile
# Or restart your terminal
Problem: Permission denied during installation
# Solution: Ensure you have write access to home directory
ls -la ~ | grep chief
# If needed, fix permissions
chmod 755 ~/.chief
Problem: Git clone fails
# Solution: Check internet connection and Git configuration
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
chief.help
for built-in help system