npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

hermes-live-voice

v1.1.3

Published

Continuous realtime voice for Hermes Agent. Talk while Hermes runs background tasks.

Readme

Hermes Live Voice is a self-hosted realtime voice gateway and Dashboard plugin for Hermes Agent.

It supports long voice workflows: start a task, keep talking, disconnect, reconnect, and still receive the result.

Hermes remains the agent brain: model routing, tools, memory, skills, and execution stay in Hermes. The realtime provider handles speech and turn-taking. Hermes Live Voice owns the gateway, task supervision, progress stream, and client protocol.

Quick start

You need Hermes Agent 0.18.2 or newer and Node.js 20+. Local voice on Apple Silicon also needs uv.

npm install --global hermes-live-voice
hermes-live setup --provider openai
hermes-live launch-check
hermes dashboard

Open Live Voice. Choose a new or saved chat. Select Connect. The microphone starts automatically. Say "pause listening" to pause. Use the microphone button to resume.

| Provider | Best for | Setup | | --- | --- | --- | | OpenAI Realtime | Fast hosted setup | hermes-live setup --provider openai | | Gemini Live | Google or Vertex deployments | hermes-live setup --provider gemini | | Local Hugging Face | Private local voice on Apple Silicon | hermes-live setup --provider local --service |

hermes-live setup installs the Hermes Dashboard plugin and the companion gateway. launch-check rejects mock mode and proves the complete path through one bounded Hermes worker.

Deterministic fixtures cover Hermes Agent 0.20.0 (v2026.8.3). Scheduled CI also checks the current Hermes image. See Setup for local voice requirements, remote endpoints, and Docker.

What it does

  • Continuous microphone mode with voice activity detection and barge-in
  • New or resumed Hermes chats with their existing memory and history
  • Background work that continues through voice disconnects
  • Live, sanitized task progress and tool activity
  • Parallel read-only work when the operator explicitly enables it
  • Spoken completion notices and a persistent task inbox
  • Dashboard, browser SDK, and headless terminal clients

Try:

Audit this repository and run the tests in the background. While that runs, help me plan the release. Tell me when it is done.

The voice conversation stays responsive while a server-side supervisor owns the Hermes run. Interrupting speech never stops a task. Stopping a task always targets its exact task ID.

See the text-only workflow transcript for the expected task handoff, progress, reconnect, and completion flow.

How it works

Hermes Live Voice architecture

  1. The Dashboard, browser SDK, or terminal opens the authenticated protocol v6 WebSocket and selects a Hermes conversation.
  2. Local speech-to-speech, Gemini Live, or OpenAI Realtime handles the live voice turn and can call the gateway's small task-control toolset.
  3. The gateway persists accepted work, starts a separate Hermes /v1/runs worker, and publishes bounded progress events.
  4. Results remain in the task inbox across reconnects. Follow-ups create new workers with explicit parent/root lineage.

Task state lives at ~/.hermes/hermes-live/tasks-v1.json by default. It is bounded, private, and single-writer.

Clients

| Use | Client | | --- | --- | | Everyday voice | Hermes Dashboard → Live Voice | | SSH or headless control | hermes-live terminal | | Host app integration | hermes-live-voice/browser |

The terminal can resume chats and inspect or control tasks:

hermes-live terminal --resume <sessionId>

Commands include /tasks, /status, /result, /followup, /ack, /stop, and /interrupt. /quit detaches. It does not cancel work.

Browser integration is dependency-free:

import { HermesLiveClient } from "hermes-live-voice/browser";

const client = new HermesLiveClient({
  webSocketUrlProvider: () => getAuthenticatedSameOriginUrl(),
  conversation: { mode: "resume", sessionId: savedSessionId },
});

client.on("task.notification", renderNotification);
await client.connect();

See UI integration for authentication and the full client lifecycle.

Operations

hermes-live launch-check
hermes-live doctor --provider-smoke
hermes-live diagnostics
hermes-live service status
hermes-live service logs
hermes-live local status
hermes-live local logs
hermes-live print-config

After updating the npm package, run hermes-live upgrade. It reinstalls the matching plugin and service definitions without replacing your provider settings. Run hermes-live launch-check after the upgrade. hermes-live diagnostics writes a private support bundle without logs, prompts, task results, audio, or secret values.

hermes-live setup writes an allow-listed config to $HERMES_HOME/hermes-live/config.env (normally ~/.hermes/hermes-live/config.env) with private permissions. The gateway and Dashboard plugin read the same file. If the default port belongs to another app, setup picks a free local port automatically. Environment variables override the managed config. Project .env files are never loaded or executed.

For any non-loopback gateway bind, use a strong HERMES_LIVE_AUTH_TOKEN, an exact allowed origin, TLS, and edge rate limits. Keep Hermes itself private. See the security model.

Current boundaries

  • Durability applies to task receipts, state, notifications, and retained results. In-progress Hermes runs do not survive a Hermes Agent restart. Missing or ambiguous outcomes become unknown.
  • Work is exclusive by default. Parallelism requires HERMES_LIVE_TRUST_DECLARED_READ_ONLY=true because model-declared read-only scope is policy input, not a sandbox.
  • Approval-required tasks are denied and stopped fail-closed until Hermes exposes exact targeted approval identity to the gateway.
  • One delegated task creates one Hermes run. Hermes Live does not create a subagent team for every request.
  • The local launcher is currently managed on Apple Silicon. Other systems can run the upstream realtime server and set HERMES_LIVE_LOCAL_URL.
  • The local file store is for one gateway process, not a public multi-tenant or multi-node queue.
  • This repository does not ship a standalone web app. Browser voice runs in the Hermes Dashboard plugin or a host app that uses the browser SDK.

Documentation

License

MIT. This is a community project, not an official NousResearch distribution.