From fc0ab3d87be429e3ae29164103204a7e06c3d04f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?A=CC=82nderson=20Q?= Date: Sun, 27 Sep 2026 11:50:25 -0300 Subject: [PATCH 1/3] feat: run under Hermes Agent (42L-1930) Session falls back to HERMES_SESSION_ID, and a Hermes /hey skill ships in hermes/. Co-Authored-By: Claude Opus 5.5 --- config.sh | 2 +- hermes/hey/SKILL.md | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 hermes/hey/SKILL.md diff --git a/config.sh b/config.sh index 146ded9..1e82e95 100644 --- a/config.sh +++ b/config.sh @@ -12,7 +12,7 @@ mkdir -p "$HEY_CACHE" 2>/dev/null HEY_SWITCH="${HEY_SWITCH:-$HOME/.config/agent-signal/on}" # Per-session token so concurrent agents isolate their markers + playback and # never kill each other. Falls back to PID outside Claude Code. -HEY_SESSION="${HEY_SESSION:-${CLAUDE_CODE_SESSION_ID:-$$}}" +HEY_SESSION="${HEY_SESSION:-${HERMES_SESSION_ID:-${CLAUDE_CODE_SESSION_ID:-$$}}}" HEY_OUT="$HEY_CACHE/$HEY_SESSION" # markers: $HEY_OUT.hey / .turn # --- sounds ------------------------------------------------------------------- diff --git a/hermes/hey/SKILL.md b/hermes/hey/SKILL.md new file mode 100644 index 0000000..b75b45d --- /dev/null +++ b/hermes/hey/SKILL.md @@ -0,0 +1,39 @@ +--- +name: hey +description: Beep when the agent hands back after you have been idle (/hey [times] [idle-s] | off). +--- +Activate **hey** for THIS session only — a short **sound** plays when I hand back to you +(finish a reply), but **only if you've been idle longer than +the threshold**. Fast back-and-forth stays silent; you're beeped only when you've likely +stepped away. It plays on the machine where you sit (local, or forwarded if I'm driven +over SSH). Nothing listens, ever. Most alerts are plain sounds; `yourturn` is a +short pre-rendered voice clip. + +Requested: the user instruction + +## If the user instruction is empty +Do NOT pick a sound. Show the options and ask which they want — nothing else. + +| Sound | Character | +|-------|-----------| +| ping | one clean bright blip | +| chirp | two-note rising pip | +| knock | two soft low thumps | +| coin | jaunty pickup blip | +| chime | Nina's sparkle arpeggio (the speech cue) | +| yourturn | a voice saying "your turn" — cuts through ambient audio | + +Call format: `/hey [times] [idle-seconds]`. Defaults: times=1, idle-threshold=45s. + +## If the user instruction is `off` / `stop` +Run `hey off`, confirm once. Nothing else. + +## Otherwise — a sound, optionally times and threshold +Run `hey the user instruction` (e.g. `hey knock 2 45`). It previews the sound once and activates. +Confirm in one line: which sound, how many plays, and the idle threshold. Nothing more — +no meta narration on later turns. + +## Notes +- Uniform rule, no model judgement: any hand-back beeps iff `now − last_prompt ≥ threshold`. +- Standalone tool at `~/42labs/john-w-bsmt/hey` (repo `4242labs/hey`); sounds in `~/42labs/john-w-bsmt/hey/assets/`. +- Independent of `/nina` voice — you can run either or both. From cadd4c2f668fa5dfc0b6e181248d5d7d8e8737bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?A=CC=82nderson=20Q?= Date: Sun, 27 Sep 2026 12:06:47 -0300 Subject: [PATCH 2/3] feat: default-on signal is chime x2 after 5s idle (42L-1930) Co-Authored-By: Claude Opus 5.5 --- config.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.sh b/config.sh index 1e82e95..b38039e 100644 --- a/config.sh +++ b/config.sh @@ -19,9 +19,9 @@ HEY_OUT="$HEY_CACHE/$HEY_SESSION" # markers: $HEY_OUT.hey HEY_DIR="${HEY_DIR:-$HEY_HOME/assets}" # where the sounds live HEY_THRESHOLD="${HEY_THRESHOLD:-45}" # default idle seconds before a beep fires HEY_TIMES="${HEY_TIMES:-1}" # default number of plays per alert -HEY_DEFAULT_SOUND="${HEY_DEFAULT_SOUND:-ping}" # the system-wide default: "beep" x2 after 20s idle +HEY_DEFAULT_SOUND="${HEY_DEFAULT_SOUND:-chime}" # the system-wide default: chime x2 after 5s idle HEY_DEFAULT_TIMES="${HEY_DEFAULT_TIMES:-2}" -HEY_DEFAULT_THRESHOLD="${HEY_DEFAULT_THRESHOLD:-20}" +HEY_DEFAULT_THRESHOLD="${HEY_DEFAULT_THRESHOLD:-5}" HEY_GAP="${HEY_GAP:-0.25}" # seconds between repeated plays # One row per sound: "name|file". Names match case-insensitively. # A spoken alert is just another row — the player does not care whether the From efd380ec5531442418d7b6438c964c700e6a68b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?A=CC=82nderson=20Q?= Date: Sun, 27 Sep 2026 12:23:27 -0300 Subject: [PATCH 3/3] feat: ship the Claude /hey command in the repo (42L-1930) Co-Authored-By: Claude Opus 5.5 --- commands/hey.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 commands/hey.md diff --git a/commands/hey.md b/commands/hey.md new file mode 100644 index 0000000..c07b8dd --- /dev/null +++ b/commands/hey.md @@ -0,0 +1,40 @@ +--- +description: " " +argument-hint: "ping | chirp | knock | coin | chime | yourturn [times] [idle-seconds] | off" +allowed-tools: Bash(hey:*), Bash(hey), Bash(hey off) +--- +Activate **hey** for THIS session only — a short **sound** plays when I hand back to you +(finish a reply, or hit a permission prompt), but **only if you've been idle longer than +the threshold**. Fast back-and-forth stays silent; you're beeped only when you've likely +stepped away. It plays on the machine where you sit (local, or forwarded if I'm driven +over SSH). Nothing listens, ever. Most alerts are plain sounds; `yourturn` is a +short pre-rendered voice clip. + +Requested: `$ARGUMENTS` + +## If `$ARGUMENTS` is empty +Do NOT pick a sound. Show the options and ask which they want — nothing else. + +| Sound | Character | +|-------|-----------| +| ping | one clean bright blip | +| chirp | two-note rising pip | +| knock | two soft low thumps | +| coin | jaunty pickup blip | +| chime | Nina's sparkle arpeggio (the speech cue) | +| yourturn | a voice saying "your turn" — cuts through ambient audio | + +Call format: `/hey [times] [idle-seconds]`. Defaults: times=1, idle-threshold=45s. + +## If `$ARGUMENTS` is `off` / `stop` +Run `hey off`, confirm once. Nothing else. + +## Otherwise — a sound, optionally times and threshold +Run `hey $ARGUMENTS` (e.g. `hey knock 2 45`). It previews the sound once and activates. +Confirm in one line: which sound, how many plays, and the idle threshold. Nothing more — +no meta narration on later turns. + +## Notes +- Uniform rule, no model judgement: any hand-back beeps iff `now − last_prompt ≥ threshold`. +- Standalone tool at `~/42labs/john-w-bsmt/hey` (repo `4242labs/hey`); sounds in `~/42labs/john-w-bsmt/hey/assets/`. +- Independent of `/nina` voice — you can run either or both.