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

@talkersoft-com/agent-arcade

v0.3.0

Published

Agent Arcade — voice-driven control for your AI agents (Electron UI + a shared Go dictation daemon, NDJSON over a local socket).

Readme




What it is

Agent Arcade is a desktop control surface for a fleet of AI coding agents. Each agent is a live CLI session — think Claude — running in its own terminal pane. Register them once (grouped by system and purpose, each with a generated avatar), then summon the Arcade from your menu bar and:

  • 🎙️ Talk to the selected agent. Press to record; your speech is transcribed and routed straight into that agent's terminal — raw, or cleaned up first, per agent.
  • Fire a macro. Pinned @-commands drop a real shell command — with prompted, typed arguments — into the agent's workspace shell for you to review and run.
  • 🖥️ Drive the terminal. Peek at live output, flip to Sync so every keystroke goes to the pane, or pop out a full WezTerm window sized to match the Arcade.

You never leave the keyboard, and you never lose track of which agent is doing what.


"Fire @TenantApply, step 3."

Select the agent, trigger the macro, answer the one prompt (step: 3), and the composed command lands in its shell — reviewed, then run. Meanwhile another agent is mid-build two avatars over. Same surface, no context lost.


Install

Agent Arcade ships as a public npm package with everything it needs bundled (a notarized WezTerm + the shared Go dictation daemon — one process serving every window over a local socket) — no external terminal, no separate install.

npm install -g @talkersoft-com/agent-arcade
agent-arcade          # starts the menu-bar launcher

Summon the Arcade any time with ⌘⌥A.

Requirements

  • macOS (Apple Silicon or Intel)
  • Node.js 18+
  • A speech-to-text endpoint for dictation — point api_url: at any host running the ASR API (e.g. http://localhost:9100). Everything else works without it.

The three surfaces


Macros

A macro is a named @-command scoped to an agent. It composes a shell command from typed, prompted arguments and drops it into the agent's workspace shell (with an optional review-before-run gate). Pinned macros show up as chips the moment that agent is selected.

| Arg type | Behavior | |---|---| | select | Pick from a fixed list of options | | text | Free user-entered value | | flag | ON/OFF toggle that emits a literal token (e.g. --force) — omitted when off | | fixed | A hard-coded value substituted verbatim, never prompted |

# ~/.hv/agent-arcade.yaml  (excerpt)
commands:
  - name: BuildApi
    agent_id: <agent-uuid>
    cwd: ~/workspace/my-service
    run: npm --prefix api run build
    pinned: true
    confirm: true          # review in the shell, then press ↵ to run

  - name: Deploy
    agent_id: <agent-uuid>
    cwd: ~/workspace/my-service
    run: python deploy.py {target} {dry}
    pinned: true
    confirm: true
    args:
      - { key: target, label: Target, type: select,
          options: [{ value: staging }, { value: prod }] }
      - { key: dry, label: Dry run, type: flag, flag: "--dry-run" }

Keyboard

| Where | Keys | |---|---| | Anywhere | ⌘⌥A summon / hide the Arcade | | Arcade | ← → agent · ↑ ↓ group · Enter open · f filter · Esc exit | | Terminal | Enter send · ⌘F sync · ⌘W workspace shell · ⌘E expand · Esc close | | Sync mode | every key → the pane (incl. Esc) · ⌘A exit | | Dictation | press to record · release / ⌘D to send · Esc to cancel |


Configuration

All state lives in a single, hand-editable YAML at ~/.hv/agent-arcade.yaml — agents, systems, groups, monitor placement, and macros. A minimal shape:

api_url: http://localhost:9100     # your speech-to-text endpoint

agents:
  - id: <uuid>
    name: My Agent
    program: claude
    cwd: ~/workspace
    group_id: <group-uuid>
    text_cleanup: false            # straight dictation, or true to clean up first

systems:                           # a machine an agent runs on (mac / linux)
  - { id: <uuid>, name: Local, os: mac }

groups:                            # how agents are bucketed in the Arcade
  - { id: <uuid>, name: Code Agents, order: 0, active: true }

Displays (which monitor the Arcade opens on, and where a popped-out terminal lands) are configured in Studio → Displays and saved back to the same file.


Credits

Agent Arcade stands on excellent open-source work:

  • WezTerm — the bundled terminal (© Wez Furlong, MIT). The notarized WezTerm.app is redistributed verbatim.
  • xterm.js — the embedded terminal renderer (MIT).
  • XState — the state machines behind the UI (MIT).

License

MIT © talkersoft. WezTerm is redistributed under its own MIT license (see LICENSE).