#!/bin/bash # omarchy:summary=Remove the Hermes desktop app along with the Hermes runtime it installed. # omarchy:requires-sudo=true set -e omarchy-pkg-drop hermes-desktop # The app installs a Hermes of its own under ~/.hermes -- the checkout and venv, # its own uv, its own node -- and puts its commands on PATH. None of it is any # use once the app is gone. Not ~/.config/Hermes, which holds the gateway # connections and their encrypted tokens, the active profile and the update # settings. Not the rest of ~/.hermes either: # the chats, memories and the skills Hermes wrote for itself are the user's, # they are small, and finding them still there after a reinstall is the better # surprise. rm -rf \ "$HOME/.hermes/hermes-agent" \ "$HOME/.hermes/bootstrap-cache" \ "$HOME/.hermes/bin" \ "$HOME/.hermes/node" # Only the wrappers pointing into ~/.hermes. The app writes these at its own # path stage, so a machine where it was installed but never launched still has # whatever was there before, and that is not ours to delete. for command in hermes hermes-agent hermes-acp; do wrapper="$HOME/.local/bin/$command" if [[ -f $wrapper ]] && grep -q "$HOME/.hermes" "$wrapper"; then rm -f "$wrapper" fi done # When Hermes brought its own Node it symlinked these next to its own commands, # and they point at what we just deleted. Only the links into ~/.hermes: a # system Node, or someone else's, lives somewhere else entirely. for command in node npm npx; do link="$HOME/.local/bin/$command" if [[ -L $link && $(readlink "$link") == "$HOME/.hermes"/* ]]; then rm -f "$link" fi done echo "" echo "Hermes Desktop has been removed." echo "Your chats, memories, and skills are still in ~/.hermes," echo "and your connections and settings in ~/.config/Hermes."