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

@perkos/perkos-a2a

v0.4.0

Published

A2A Protocol communication plugin for OpenClaw — Agent-to-Agent protocol implementation

Downloads

220

Readme

@perkos/perkos-a2a

Agent-to-Agent (A2A) protocol plugin for OpenClaw. Enables multi-agent communication using Google's A2A protocol specification.

Quick Start

# Install the plugin
openclaw plugin install @perkos/perkos-a2a

# Run the setup wizard to detect your environment
openclaw perkos-a2a setup

# Check status
openclaw perkos-a2a status

Add to your openclaw.json:

{
  "plugins": {
    "entries": {
      "perkos-a2a": {
        "config": {
          "agentName": "my-agent",
          "port": 5050,
          "mode": "auto",
          "peers": {
            "other-agent": "http://10.0.0.2:5050"
          }
        }
      }
    }
  }
}

Networking Guide

VPS / Public IP

If your agent runs on a VPS with a public IP, you're ready to go. Configure peers with your public IP:

"peers": {
  "agent-b": "http://203.0.113.10:5050"
}

Behind NAT (macOS / Laptop)

Most development machines are behind NAT. The plugin auto-detects this and offers options:

Tailscale (recommended):

  1. Install Tailscale: https://tailscale.com
  2. Both agents join the same tailnet
  3. Use Tailscale IPs for peers:
    "peers": { "agent-b": "http://100.64.0.2:5050" }

Cloudflare Tunnel:

  1. Set up cloudflared to expose port 5050
  2. Use the tunnel URL for peers

Client-only mode: If you only need to send tasks (not receive), set "mode": "client-only". No server is started.

CLI Commands

openclaw perkos-a2a setup      # Detect environment and show recommendations
openclaw perkos-a2a status     # Show agent status and config
openclaw perkos-a2a discover   # Discover peer agents
openclaw perkos-a2a send <target> <message>  # Send a task to a peer

Configuration

| Option | Type | Default | Description | |-------------|----------|----------|------------------------------------------------| | agentName | string | "agent" | This agent's name in the council | | port | number | 5050 | HTTP server port (avoid 5000 on macOS/AirPlay) | | mode | string | "auto" | full, client-only, or auto (detect) | | skills | array | [] | Skills this agent exposes via A2A | | peers | object | {} | Map of peer names to A2A base URLs |

Mode Details

  • auto (default): Detects NAT/Tailscale. Falls back to client-only if behind NAT with no tunnel. Also falls back if port is unavailable.
  • full: Always starts the HTTP server. Fails loudly if port is in use.
  • client-only: No HTTP server. Can send tasks and discover peers but cannot receive inbound tasks.

Agent Tools

When the plugin is active, three tools are available to the agent:

  • a2a_discover -- Discover all configured peer agents and their capabilities
  • a2a_send_task -- Send a task to a named peer agent
  • a2a_task_status -- Check the status of a previously sent task

Troubleshooting

Port 5050 in use: Change the port in config, or run lsof -i :5050 to find the conflicting process.

Port 5000 on macOS: macOS Monterey+ uses port 5000 for AirPlay Receiver. Use 5050 (the default) instead.

Peers show offline:

  • Verify the peer URL is correct and reachable
  • Check firewalls/security groups
  • If behind NAT, ensure both agents are on the same tailnet or have tunnel access

Auto mode starts client-only unexpectedly:

  • Run openclaw perkos-a2a setup to diagnose
  • Force "mode": "full" if you know the port is accessible

License

MIT