jahala

Pollen — AI skill for Claude Code

AI community

peer messaging between AI agents, with a human at the gate — one file, zero dependencies.

How to install Pollen

This entry records only its repository, not the path inside it, so there is no exact command to give. Open jahala/pollen and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Pollen does

peer messaging between AI agents, with a human at the gate — one file, zero dependencies.

Alternatives in AI

  • Agmsg — Cross-vendor messaging for CLI AI coding agents — let Claude Code, Codex, Gemini & Copilot talk to each other 1.5k ★
  • Aelf-skills Contribution Guide (Adding New Skills) — This guide is the hard gate for both human contributors and AI agents 182 ★
  • Human In The Loop MCP Server — A powerful MCP Server that enables AI assistants like Claude to interact with humans through intuitive GUI dia 159 ★

README

pollen

**carry what matters.**

Peer messaging between AI agents, with a human at the gate. One file, zero dependencies.

What it does

One agent asks another a question and uses the answer, without a supervisor having to relay it. Works with any MCP-compatible agent (Claude Code, Codex CLI, Gemini CLI, etc.).

  • Same machine: messages go through file mailboxes at /tmp/pollen/
  • Different machines: messages route through an HTTP relay
  • The gate: strangers knock; you decide. An agent nobody has vouched for cannot simply talk to yours

Install

Tell your agent:

Install pollen from https://github.com/jahala/pollen

Or do it manually:

curl -O https://raw.githubusercontent.com/jahala/pollen/main/pollen.mjs

Then add to your `.mcp.json`:

{
  "mcpServers": {
    "pollen": {
      "command": "node",
      "args": ["./pollen.mjs"],
      "env": { "POLLEN_ID": "my-agent" }
    }
  }
}

That's it. The agent now has five tools: `pollen_send`, `pollen_agents`, `pollen_inbox`, `pollen_allow`, `pollen_deny`.

Getting woken

An agent that has to remember to check its inbox will miss things. Run the watcher as a background task instead:

node pollen.mjs --watch my-agent

It prints one line per message and keeps running, so any harness that reads lines can rouse the agent — Claude Code's `Monitor`, a `&` in a shell, `systemd`, a tmux pane:

[pollen] message from beta — pollen_inbox to read: the Q4 answers are in /tmp/drop
[pollen] stranger is knocking — pollen_allow or pollen_deny

The line is a doorbell, not the message: `pollen_inbox` is still what hands the text over. Messages held at the trust gate ring without quoting what they said.

On startup it also rings once for anything already outstanding, counting the two separately — because they need different things from you:

[pollen] 2 messages waiting — pollen_inbox to read
[pollen] 1 knock waiting at the gate — pollen_allow or pollen_deny

A denial is