Skip to content

Instantly share code, notes, and snippets.



Last active Nov 16, 2019
What would you like to do?
Update iTerm Badge with hostname of the server used to ssh
# Script that updates the iTerm Badge with the hostname of the server that you are
# connecting to with ssh.
# Instructions:
# - Put this script in ~/bin/ssh (this will override the default ssh binary)
# - Run 'chmod +x ~/bin/ssh' to give execution permission to the script
# - Open iTerm\Preferences\Profiles, select your profile and put '\(user.current_ssh_host)' in the Badge text box
# - Enjoy!
# Troubleshoot issues:
# - If it's not working, make sure your shell is white-listed in the script (see $PARENT_COMMAND in the script)
# Credits: inspired by
iterm2_set_user_var () {
PARENT_COMMAND=$(ps -o comm= $PPID)
# Avoid to do send the command when ssh is not run by the shell
if [ "$PARENT_COMMAND" = "bash" ] || [ "$PARENT_COMMAND" = "-zsh" ]; then
printf "\033]1337;SetUserVar=%s=%s\007" "$1" $(printf "%s" "$2" | base64 | tr -d '\n')
on_exit () {
iterm2_set_user_var current_ssh_host ""
trap on_exit EXIT
HOSTNAME=`echo $@ | sed s/.*@//`
iterm2_set_user_var current_ssh_host "$HOSTNAME"
/usr/bin/ssh "$@"

This comment has been minimized.

Copy link
Owner Author

@danydev danydev commented Nov 16, 2019

Below an example of what you get with this script
Screenshot 2019-11-16 at 13 06 14

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.