Aliases are a fantastic way to shave seconds off of repetitively typed commands. In this post we'll explore how to share gh cli aliases between Windows and WSL!
✔️ Pre-reqs
-
ghcli installed on:- Windows
- WSL
📃 Setup
Create the shared gh aliases file
Under Windows using cmd.exe:
# Using Windows %USERPROFILE%
cd %USERPROFILE%
mkdir config
notepad.exe %USERPROFILE%\config\shared-gh-aliases.yaml
When using a yaml file to store gh aliases, use the format described in cli man pages:
name_of_alias: actual_command
Example:
# shared-gh-aliases.yaml
prc: pr create
prv: pr view
Configure Windows and WSL to use the shared aliases file
As the gh cli does not include an exposed store for aliases, we instead rely on running shell commands that import all the aliases into the session per-windows/WSL.
In PowerShell, edit your profile (I like to use CurrentUserAllHosts and YMMV):
notepad $profile.CurrentUserAllHosts
Append the following:
gh alias import "C:/Users/YOUR_USER/config/shared-gh-aliases.yml" --clobber
# add '> $null' to suppress output
We use the --clobber option to indicate we are OK with updating/potentially clobbering our aliases when this command runs as we intend to source our aliases from the file
⚠️
gh alias listto review existing aliases on both platforms before potentially clobbering
Restart your terminal and confirm that your gh aliases loaded!
Heading over to WSL Ubuntu:
wslpath -u "C:/Users/YOUR_USER/config/shared-gh-aliases.yml" # copy this for next step
notepad.exe ~/.bashrc
And append the following,
gh alias import "/mnt/c/Users/YOUR_USER/config/shared-gh-aliases.yml" --clobber
# add '>/dev/null' to suppress output
💥 Your gh aliases should now work in WSL & Windows! 🎸

Top comments (1)
Fantastic 😊