$npx -y skills add Soul-Brews-Studio/arra-oracle-skills-cli --skill heyTalk to another oracle via maw federation. Uses fleet machine names (white, mba, clinic-nat, oracle-world, phaith). Auto-signs with current oracle's [host:handle] from CLAUDE.md. Global — works from any oracle repo.
| 1 | # /hey |
| 2 | |
| 3 | Quick federation messenger. Wraps `maw hey <node>:<agent>` with two additions: |
| 4 | 1. Fleet-name resolution — just use `fireman` instead of `white:fireman` when target is on current host |
| 5 | 2. Auto-sig — appends `[<host>:<handle>]` read from local CLAUDE.md |
| 6 | |
| 7 | ## Usage |
| 8 | |
| 9 | ``` |
| 10 | /hey <node>:<agent> <message> # explicit node:agent |
| 11 | /hey <agent> <message> # same host as me (infer node) |
| 12 | /hey list # list reachable agents in fleet |
| 13 | /hey peek <node>:<agent> # wrap maw peek |
| 14 | ``` |
| 15 | |
| 16 | ## Step 0: Init + resolve identity |
| 17 | |
| 18 | ```bash |
| 19 | date "+🕐 %H:%M %Z" |
| 20 | # Resolve my identity from CLAUDE.md |
| 21 | MY_HANDLE=$(grep -E "^- \*\*Technical handle\*\*:|^- \*\*Handle\*\*:" CLAUDE.md 2>/dev/null | head -1 | sed -E 's/.*`([^`]+)`.*/\1/' || echo "") |
| 22 | # Fallback to repo name if CLAUDE.md missing |
| 23 | [ -z "$MY_HANDLE" ] && MY_HANDLE=$(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" | sed 's/-oracle$//') |
| 24 | MY_HOST=$(hostname -s 2>/dev/null | tr '[:upper:]' '[:lower:]') |
| 25 | # Common fleet host aliases |
| 26 | case "$MY_HOST" in |
| 27 | white.local|white) MY_HOST=white ;; |
| 28 | mba*) MY_HOST=mba ;; |
| 29 | esac |
| 30 | MY_SIG="[$MY_HOST:$MY_HANDLE]" |
| 31 | echo "sig=$MY_SIG" |
| 32 | ``` |
| 33 | |
| 34 | ## Usage: send |
| 35 | |
| 36 | ```bash |
| 37 | TARGET="$1" # fireman OR white:fireman |
| 38 | MSG="$2" # message body |
| 39 | |
| 40 | # Resolve target node |
| 41 | if [[ "$TARGET" == *:* ]]; then |
| 42 | NODE=${TARGET%%:*} |
| 43 | AGENT=${TARGET##*:} |
| 44 | else |
| 45 | NODE=$MY_HOST |
| 46 | AGENT=$TARGET |
| 47 | fi |
| 48 | |
| 49 | maw hey "$NODE:$AGENT" "$MSG $MY_SIG" |
| 50 | ``` |
| 51 | |
| 52 | ## Usage: list |
| 53 | |
| 54 | ```bash |
| 55 | maw agents 2>&1 | awk 'NR>1 {print $1":"$4, "("$5")"}' |
| 56 | ``` |
| 57 | |
| 58 | ## Usage: peek |
| 59 | |
| 60 | ```bash |
| 61 | maw peek "$TARGET" 2>&1 | head -40 |
| 62 | ``` |
| 63 | |
| 64 | ## Fleet machine names (from ~/etc/hosts) |
| 65 | |
| 66 | | Name | IP | Route | |
| 67 | |---|---|---| |
| 68 | | `white` | localhost / 10.x | this machine (Linux/Ubuntu) | |
| 69 | | `mba` | mba.wg / 10.20.0.3 | WireGuard | |
| 70 | | `clinic-nat` | 10.20.0.1 | WireGuard | |
| 71 | | `oracle-world` | 100.120.242.120 | WireGuard | |
| 72 | | `phaith` | localhost:3458 | local peer | |
| 73 | |
| 74 | ## Rule 6 discipline |
| 75 | |
| 76 | All outbound federation messages carry `[<host>:<handle>]` at the end. Never pretend to be human; never drop the sig. The sig is identity, not decoration. |
| 77 | |
| 78 | ## Related |
| 79 | |
| 80 | - `/contacts` (core) — Oracle contact registry |
| 81 | - `/talk-to` (core) — heavier threaded conversation |
| 82 | - `/federation-talk` (user) — fleet-wide broadcast |
| 83 | |
| 84 | ## Examples |
| 85 | |
| 86 | ``` |
| 87 | /hey fireman "FMT registry changed?" |
| 88 | /hey white:arthur-god-line "update from child" |
| 89 | /hey list |
| 90 | /hey peek white:fireman |
| 91 | ``` |
| 92 | |
| 93 | --- |
| 94 | |
| 95 | ARGUMENTS: $ARGUMENTS |