whisper
Give any AI agent a real, routable, verifiable network identity - a Whisper IPv6 /128 it egresses from, and keyless tools to verify any peer
Open source Open in the app JSON README (API)
About
Give any AI agent a real, routable, verifiable network identity - a Whisper IPv6 /128 it egresses from, and keyless tools to verify any peer.
Details
- Kind
- Plugins
- Topic
- AI, RAG & memory
- Publisher
- whisper-sec
- Origin
- gemini
- Category
- ferramentas
- Version
- 0.1.0
- Last push
- 2026-07-14T23:13:15Z
- Repository state
- ativo
- Language
- JavaScript
- License
- MIT
- Added
- 2026-08-30 14:13:39
- Updated
- 2026-08-30 14:13:39
- Origin id
whisper-sec/whisper-adapters
README
# Whisper agent-framework adapters Whisper gives an AI agent a **real network identity**: a routable IPv6 `/128` it egresses from, that reverse-DNS, RDAP, DANE and DNSSEC all resolve back to it, so any peer can verify *who* an agent is, and an operator can govern *what* it may reach. The same platform lets an agent **query the whisper.security graph**: 3.67B nodes and 30.8B relationships of live internet infrastructure, with 3.86M threat indicators, so it can verify not just a peer's identity but the posture of anything it talks to. This repo makes both **one native command away** in every major agent framework. One source of truth, thin generated adapters, the same model that lets a good ruleset be everywhere at once, applied to real infrastructure. ## What you can install right now **🟢 Claude Code, Gemini CLI, Antigravity, OpenAI Codex, GitHub Copilot CLI, and Pi are live** - each installs and registers the `whisper mcp` server on the framework's own CLI (proven on a real install), and the routable `/128` egress works. In-chat tool invocation on Gemini/Antigravity/Codex/Copilot additionally needs that framework's own login. The registry/hosted channels (OpenClaw, Hermes, OpenCode, and the rest of the long-tail) are **staged** (⚪): there's no one-command registry install yet, but each ships its **real add-step** (a config snippet or a manual UI step) - see the channel's README. **Read the Status column before you run a command.** | Status | Framework | Install | |---|---|---| | 🟢 Live | **Claude Code** | `/plugin marketplace add whisper-sec/whisper-adapters` then `/plugin install whisper@whisper` | | 🟢 Live | **Gemini CLI** | `gemini extensions install https://github.com/whisper-sec/whisper-adapters` | | 🟢 Live | **Antigravity** | `agy plugin install https://github.com/whisper-sec/whisper-adapters` | | 🟢 Live | **OpenAI Codex** | `codex plugin marketplace add whisper-sec/whisper-adapters` then `codex plugin add whisper@whisper` | | 🟢 Live | **GitHub Copilot CLI** | `copilot plugin marketplace add whisper-sec/whisper-adapters` then `copilot plugin install whisper@whisper` | | 🟢 Live | **Pi** | `pi install npm:whisper-pi` | | ⚪ Staged | **OpenClaw**, **Hermes**, **OpenCode** | each has a real add-step - see its README under [`adapters/`](adapters/) | | ⚪ Staged | **Swival / Devin / Qoder** | see [`adapters/long-tail/`](adapters/long-tail/) | 🟢 Live · ⚪ Staged (no one-command install yet; real add-step documented). Each adapter's own README carries its status badge + the copy-paste example. The full matrix is in [`CHANNELS.md`](CHANNELS.md). ## Two-tier by design (auth is optional) Every adapter follows the Robustness Principle: be liberal in what you accept. - **No API key** the keyless surface works for everyone: verify whether any address or hostname is a real Whisper agent (`whisper_verify`), read its RDAP registration (`whisper_rdap`), and **assess or identify any host against the security graph** (`/whisper:assess`). - **With a Whisper API key** (`WHISPER_API_KEY` in the client's environment, or `whisper login`) the full control plane unlocks: mint a named agent and get its routable `/128`, list agents, set resolver policy, read logs, revoke, get the egress config, the session can **egress from its `/128`**, and you can run **raw Cypher and the full recipe library** over the graph (`/whisper:graph`). A keyless-only adapter would be half-baked; every adapter here delivers both halves. ## Prerequisite The `whisper` CLI on your PATH - the adapters run `whisper mcp` (the tool surface) and, for egress, `whisper connect`: ``` curl -fsSL https://get.whisper.online | sh ``` ## Architecture - one source of truth, generated adapters ``` source/ the ONLY thing you hand-edit whisper.json canonical metadata: version, tools, commands, one-liners WHISPER.md canonical agent context commands/*.md canonical /whisper:* command bodies hooks/session-start-egress.sh the two-tier egress hook scripts/ generate.mjs emits every adapter from source/ validate.mjs structural checks (no framework install needed) adapters/ claude-code/ gemini/ codex/ copilot/ long-tail/ (generated) openclaw/ hermes/ opencode/ (runtime code; context + version synced) ``` Regenerate everything and validate: ``` node scripts/generate.mjs node scripts/validate.mjs ``` Add a framework = add one emitter in `generate.mjs`. Change a tool description or bump the version = edit `source/whisper.json` and re-run. Nothing downstream is hand-maintained twice. ## The tools | Tool | Tier | What it does | |---|---|---| | `whisper_verify` | keyless | Is `<address\|fqdn>` a real Whisper agent, and whose? (reverse-DNS + DANE + DNSSEC + JWS) | | `whisper_rdap` | keyless | RDAP for a Whisper `/128` - who operates the identity | | `whisper_register` | with key | Mint a named agent: a name in, a routable `/128` + DNS name out | | `whisper_list` | with key | Your agents (name, `/128`, DNS name, state) | | `whisper_policy` | with key | Read or set your DNS resolver policy | | `whisper_logs` | with key | Recent per-agent DNS / connection / allocation activity | | `whisper_revoke` | with key | Tear an agent down (irreversible) | | `whisper_egress_config` | with key | Ready-to-run proxy/env config to egress from an agent's `/128` | ## The security graph Every adapter also carries the **graph surface**: query the whisper.security graph (3.67B nodes, 30.8B relationships, 3.86M threat indicators) over one public endpoint, `https://graph.whisper.security/api/query`. No MCP tool is needed, so even non-MCP hosts reach it with a shell, and the same two tiers apply. - **Keyless.** `/whisper:assess <host|ip|domain>` returns threat posture, operator, and why, for any target, with no key. The enrichment procedures (`assess`, `identify`, `explain`, `variants`, `walk`, `origins`, `history`, `db-schema`) all answer keyless up to a small taste cap. - **With your key.** `/whisper:graph <recipe|cypher>` runs a named recipe from the catalog or your own Cypher over the whole graph. Multi-step `flow` recipes stream from the run endpoint. The full catalog of 29 recipes ships as [`recipes.json`](recipes.json) in the repo root and in every adapter directory, each recipe with its Cypher or slug, access tier, and doc link, derived from the canonical Whisper catalog. Graph docs: [procedures](https://www.whisper.security/docs/whisper-graph/procedures) · [Cypher API](https://www.whisper.security/docs/cypher-api) · [recipes](https://www.whisper.security/docs/recipes). ## Security This repo is the **public client surface only**: no API keys, no credentials, no internal infrastructure. Every adapter simply launches the `whisper` CLI (`whisper mcp` for tools, `whisper connect` for egress) or POSTs to the public graph endpoint; **no host addresses are embedded in any manifest**. The client reaches Whisper's public endpoints only (`whisper.online`, `graph.whisper.security`, `console.whisper.security`, `www.whisper.security`, `mcp.whisper.security`). Your API key is read at runtime from your environment or the `whisper login` key file on your own machine, never stored here. See [`SECURITY.md`](SECURITY.md); report issues to security@whisper.security. Learn more: https://whisper.online