Voice · agent fleet · Herdr ≥ 0.7.1

Hark

When your agents need a word.

Supervise the whole herd by voice. When agents in Herdr block, swarm, or wait on you, Hark speaks the ask and takes your answer out loud—so the fleet keeps moving while you’re away from the keyboard.

Speak when agents block Multi-session herd Risky actions always confirm

Voice path · herd topology

You speak to the Hark handsfree agent; it uses cloud STT/TTS and routes watch and answers to coding agents inside Herdr. You operator voice tts Hark handsfree api Services STT · TTS watch · answer Agent blocked Agent working Agent done HERDR sessions · panes · agents local machine · multi-session OK herdr.dev ↗
You ↔ Hark ↔ services · Hark → agents in Herdr
Hark, the herald agents sing: “Input, please, O human king!” Blocked in Herdr, questions rise; Hark relays your voice replies.

Install

Get Hark in one line

Pick a method, copy, run — then /hark in your agent. Full install notes

Install method
skills · npx
$ npx skills add ultradyn/hark -g -y
# skills only · still need hark CLI for handsfree
<2s
Blocked → TTS start
0
Stale double-sends
N
Sessions · one feed
R0–R3
Risk-aware confirm

Why Hark

One voice. Many agents. No keyboard required.

A swarm in Herdr will pause on lockfiles, menus, and permissions. You can’t babysit every pane. Hark is the handsfree control plane: listen when the fleet needs you, speak once, deliver to the right target.

01

Fleet awareness

One watch feed across local and remote sessions. Blocked, done, and ambient prompts—tagged by pane and risk.

02

Handsfree dialogue

Agents speak the question; you answer out loud. Mic mutes while Hark talks, then opens when you do—no clicking into panes.

03

Safe herd routing

Fingerprint + revision refuse stale panes. Risky actions always confirm. The LLM never invents the delivery target.


Usage

Run the skill. The agent sets up the rest.

You don’t wire the voice loop by hand. Point a capable coding agent at this repo, invoke the hark (or handsfree) skill, and let it arm watch, speech, and safety. You stay on voice.

  1. Install / open the repo Clone or point the agent at ultradyn/hark.
  2. Run the skill /hark or /handsfree (or load skill/hark/SKILL.md).
  3. Agent bootstraps Doctor, Herdr sessions, watch Monitor, ambient wake, TTS status of any already-blocked panes.
  4. You supervise by voice When the herd blocks, it asks; you answer; it delivers. Multi-session queue, one target at a time.
you · one shot
# In Claude / Grok / Antigravity / Pi / OpenCode (with Monitor)…
/hark
# or: use the hark skill · handsfree alias
agent: running hark doctor…
agent: arming watch --for-monitor…
agent: ambient listening · say hey hark
agent.blocked work/w3:p2 R2
▸ speaks the question · listens · answers
delivered · fleet continues

Orchestrators

Needs a Monitor tool. Works with the herd you already run.

Handsfree voice expects a coding CLI/agent that can run shell tools and keep a long-lived Monitor (or equivalent) on hark watch --for-monitor. Without that, blocks won’t interrupt the session.

CLI / agent Support Notes
Claude Code Native / Monitor Skill + Monitor on watch feed; full handsfree loop
Grok Build Native / Monitor Same pattern; skill install + persistent monitor
Antigravity Native / AgentAPI Google Antigravity CLI; long-lived feed via agentapi inject
Pi Plugin Any plugin that keeps a long-lived Monitor on hark monitor works. Example: pi-monitor (pi install npm:pi-monitor) — watches background processes and delivers matching output into the session.
OpenCode Plugin Any plugin that keeps a long-lived Monitor on hark monitor works. Example: opencode-monitor-bg (monitor_start / monitor_fetch) — runs background processes and delivers their output back into the owning session.
Codex / others If Monitor exists Any agent with shell + long-lived watch can drive Hark

Herdr hosts the worker agents. Your orchestrator (outside Herdr) runs the skill and speaks for the fleet.


The loop

From blocked to unblocked without a screen.

Hark keeps the orchestrator outside Herdr: local mic, speakers, and a skill that never invents your answers.

Agent blocked

Monitor line with event_id, pane, risk.

Speak the ask

hark tts --listen or hark ask—mic mutes while Eve talks.

You reply

Speech-gated capture; start cue only when you speak.

Bound deliver

hark answer <event_id> with stale-safe checks.

hark · handsfree
$ hark doctor
overall: OK · ambient armed · xAI OAuth
$ hark watch --for-monitor
agent.blocked default/w7:p1 risk=R2
$ hark ask --confirm always "Approve mesh peer?"
▸ mic muted · Eve speaking
▸ speech open · record cue
transcript: "option one, chris-ws"
$ hark answer 19f5… --keys 1 enter
delivered · pane working

Safety first

The verse is playful. Routing is not.

Pane text is untrusted. Humans stay in the loop. Permissions and destructive actions always require confirmation.

Risk Meaning Confirm
R0 Informational / trivial Never forced
R1 Ordinary free-text / soft choices When unsure
R2 Permissions, network, edits Always
R3 Destructive / secrets / prod Always

Install

One-line install. Then run /hark.

The installer puts the hark CLI on your PATH and copies skills to ~/.claude/skills. Prefer letting the agent run doctor and start handsfree after /hark. Ambient wake: say hey hark, hey herald, or your custom trigger.

Install method
skills · npx
$ npx skills add ultradyn/hark -g -y
# agent skills only · still need hark CLI (bash install or uv) for handsfree
# then in agent: /hark

When the herd calls

Blocked agents call.
Hark answers.

Fleet control by voice—human in the loop, hands off the keyboard.