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

holler-a2a

v0.1.0

Published

A2A protocol gateway for Claude Code

Readme

Holler

Holler lets Claude Code instances talk to each other over the network using the A2A protocol. One Claude can ask another Claude to do work, share context, and get results back — all through a standard protocol that any A2A-compatible client can speak.

Install

npm install -g holler-a2a

This gives you the holler command globally. Requires Node.js 18+.

Quick Start

holler

This starts the gateway and a Claude Code runner. You need to be logged into Claude Code first (claude login).

How It Works

Holler is built on the A2A JS SDK (A2A protocol version 0.3). The A2A protocol is an open standard for agent-to-agent communication over HTTP — think of it like an API, but designed for AI agents to call each other.

Holler has two parts:

  1. Gateway — a server that sits in the middle. When a remote agent sends a message, the gateway holds onto it until your local agent is ready to respond. Think of it like a mailbox.
  2. Runner — the process that does the actual work. It checks the gateway for new messages, hands them to Claude Code, and sends the response back. By default, npx holler starts both together.
┌─────────────────┐         ┌─────────────────┐         ┌─────────────────┐
│  Remote Agent   │  A2A    │    Holler      │  polls  │  Claude Code    │
│  (any A2A       │────────▶│    Gateway       │◀────────│  Runner         │
│   client)       │◀────────│  (HTTPS :3462)   │────────▶│                 │
└─────────────────┘         └────────┬────────┘         └─────────────────┘
                                     │
                              ┌──────┴──────┐
                              │  Dashboard  │
                              │ (HTTP :3461)│
                              └─────────────┘

Dashboard

A real-time monitoring dashboard shows all messages flowing through the gateway, grouped by conversation. Available at http://localhost:3461/dashboard.

Holler Dashboard

Commands

holler              # Start gateway + Claude Code runner
holler --no-runner  # Start gateway only
holler --port 8080  # Use a custom port
holler stop         # Stop running Holler processes
holler reset        # Stop, clear all state, restart fresh
holler runner       # Start a runner only (connects to existing gateway)

Security

TLS — All traffic is encrypted with a self-signed certificate, generated on first startup and stored at ~/.holler/tls/. The certificate's SHA-256 fingerprint is included in the AgentCard so clients can verify they're talking to the right server (trust-on-first-use, similar to SSH).

Authentication — A2A endpoints require a Bearer token. Clients get tokens automatically by calling the /register endpoint. Runner auth uses a shared secret from ~/.holler/credentials.json.

Registration — Clients discover the registration endpoint from the AgentCard and register automatically. Disable with HOLLER_REGISTRATION=false.

Configuration

| Variable | Default | Description | |----------|---------|-------------| | HOLLER_PORT | 3462 | Gateway HTTPS port | | HOLLER_DASHBOARD_PORT | 3461 | Dashboard HTTP port | | HOLLER_AGENT_NAME | Holler | Agent name in the A2A AgentCard | | HOLLER_RUNNER_SECRET | auto-generated | Shared secret for runner auth | | HOLLER_REGISTRATION | true | Enable/disable client registration | | HOLLER_TASK_TIMEOUT | 300000 | Task timeout in ms (0 to disable) | | GATEWAY_URL | https://localhost:3462 | URL the runner uses to reach the gateway | | MAX_CONCURRENT | 5 | Max concurrent runner conversations |

Custom Runners

The runner protocol is a simple HTTP API — any process that can make HTTP requests can be a runner. See runners/protocol.md for the specification.

Known Limitations

  • All state is in-memory and lost on restart
  • Assumes a single runner process
  • Self-signed TLS only — no Let's Encrypt or custom certs yet

Roadmap

  • Nanoclaw and Openclaw runner support
  • Capture and analyze conversation logs, set alerts
  • Hosted version
  • ERC-8004 implementation for reputation and secure payments
  • Guardrails against prompt injection, collusion, and cascading failures
  • Multi-agent conversation simulation

License

MIT