SKILL.md
/hey
Quick federation messenger. Wraps maw hey <node>:<agent> with two additions:
- Fleet-name resolution — just use
firemaninstead ofwhite:firemanwhen target is on current host - Auto-sig — appends
[<host>:<handle>]read from local CLAUDE.md
Usage
/hey <node>:<agent> <message> # explicit node:agent
/hey <agent> <message> # same host as me (infer node)
/hey list # list reachable agents in fleet
/hey peek <node>:<agent> # wrap maw peek
Step 0: Init + resolve identity
date "+🕐 %H:%M %Z"
# Resolve my identity from CLAUDE.md
MY_HANDLE=$(grep -E "^- \*\*Technical handle\*\*:|^- \*\*Handle\*\*:" CLAUDE.md 2>/dev/null | head -1 | sed -E 's/.*`([^`]+)`.*/\1/' || echo "")
# Fallback to repo name if CLAUDE.md missing
[ -z "$MY_HANDLE" ] && MY_HANDLE=$(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" | sed 's/-oracle$//')
MY_HOST=$(hostname -s 2>/dev/null | tr '[:upper:]' '[:lower:]')
# Common fleet host aliases
case "$MY_HOST" in
white.local|white) MY_HOST=white ;;
mba*) MY_HOST=mba ;;
esac
MY_SIG="[$MY_HOST:$MY_HANDLE]"
echo "sig=$MY_SIG"
Usage: send
TARGET="$1" # fireman OR white:fireman
MSG="$2" # message body
# Resolve target node
if [[ "$TARGET" == *:* ]]; then
NODE=${TARGET%%:*}
AGENT=${TARGET##*:}
else
NODE=$MY_HOST
AGENT=$TARGET
fi
maw hey "$NODE:$AGENT" "$MSG $MY_SIG"
Usage: list
maw agents 2>&1 | awk 'NR>1 {print $1":"$4, "("$5")"}'
Usage: peek
maw peek "$TARGET" 2>&1 | head -40
