v0.1.0-alpha · P2P fabric + Pi mesh + EVRUS plugin · signed receipts & CI gates ship · installers unsigned

Capabilities · v0.1.0-alpha

What the code actually does.

PeerWeave is the fabric: spaces, mesh, graph, agents, receipts. We still lead with signed receipts and merge gates because that is the pain teams feel this year. Pi mesh, edge ingest, and the EVRUS plugin are how the same primitives run on a desk and a couple of Linux boards.

Signed work receipts

Shipping

A portable pw.receipt.v1 dossier for one unit of accountable work — Ask answers, agent runs, WeaveFS transactions, PR diffs, or imported MCP sessions.

  • Actor, goal, CapToken scopes, policy decisions, tool calls, file effects, claims, and evidence refs
  • Ed25519 signature over (type, actor, goal, receipt_hash); SHA-256 tamper detection
  • CLI: pw receipt ask | agent | weavefs | pr-change | verify | html | redact | slsa | siem-export
  • GitHub Action receipt-check blocks invalid receipts at merge time
  • VS Code extension lists, verifies, and opens the HTML verifier from receipts/

HTML verifier & redacted packs

Shipping

Reviewers and auditors get a self-contained HTML page. Redacted packs strip prompts and answers while keeping the signature.

  • pw receipt html — zero-dependency page, no CDN, works offline
  • pw receipt redact — standard (keeps signature) or --strict
  • Shows hash, signature, supported vs unsupported claims
  • Primary buyer-facing artifact for the AI change-governance wedge

Ask + signed answer bundles

Partial

Ask your space with VCIL context envelopes. Answers ship as signed trace v2 bundles with per-claim evidence and Invariant I enforcement.

  • Local GGUF when configured; echo fallback otherwise
  • Remote OpenAI-compatible / LiteLLM backends; requires llm.remote CapToken and explicit config
  • OutputClaim → Transformation → DataVersion provenance paths
  • Unsupported assertions flagged in UI and blocked on mirror publish
  • Desktop Ask is the full query path; CLI has receipt/policy/identity once traces exist

Participants & capabilities

Shipping

Register humans, agents, services, and devices with DIDs and CapToken bindings so a receipt can name who acted and under whose authority.

  • Registry at $PW_HOME/participants.json; CLI: pw participant add | list | show | remove
  • did:key device signing keys for bundles and receipts
  • Encrypted keychain (scrypt + AES-256-GCM) when PW_KEYCHAIN_PASSPHRASE is set; pw identity migrate-keychain for existing installs
  • P2P node.key still plaintext; restore-from-backup UI deferred
  • Capability revocation is local today; cross-peer replication is open work

MCP & external session capture

Prototype

Import tool sessions from Cursor, Claude, Copilot, or CI into traces and receipts without running agents inside our runtime.

  • pw mcp import session.json — file-based import
  • pw mcp capture — stdin JSON-RPC stream
  • Credential redaction; content stored as sha256 CIDs
  • MCP proxy for transparent capture is follow-up work

Spaces, WeaveFS & P2P

Partial

Local-first workspaces with transactional WeaveFS, authenticated membership, and signed cold-join snapshots.

  • CRDT-backed file sync; OPS_FETCH anti-entropy; recovered FileId state
  • Authenticated Space ops and snapshot serving; delegated membership chains
  • Discovery via mDNS, bootstrap, rendezvous, and relay — DHT listing is out of scope for v0.1
  • Desktop live gossip and loopback catch-up are automated; two-device LAN/WAN QA is still a P0 gate
  • Content encryption beyond transport is deferred

Raspberry Pi / Linux mesh + edge ingest

Partial

A three-node fabric: this PC as hub, a Pi 3B on Ethernet, and a Pi 4B on Wi-Fi. Edge agents ingest manticore-net flow metadata into a synced space — not packet payloads.

  • libp2p QUIC listen /ip4/0.0.0.0/udp/4001/quic-v1; mDNS on for LAN discovery
  • SSH install modeled on manticore-net (explicit host/IP — raspberrypi.local can collide)
  • pw daemon start exposes an HTTP gateway at http://127.0.0.1:8788 for the browser client
  • pw edge watch --space <path> reads JSONL/SQLite metadata from MANTICORE_HOME / manticore-net-data
  • Spaces and agent files sync as soon as a peer connects — no 5s anti-entropy wait on first join

EVRUS plugin (DID, IPFS, swap intents)

Partial

Protocol-boundary plugin: OIDC/DID health, IPFS add/cat, and atomic Evrmore swap offer JSON stored in a space. EVRUS Vault remains the signer. PeerWeave never holds a mnemonic.

  • DID / OIDC health against the Vault bridge (typically :8790)
  • IPFS via IPFS_API_URL (Kubo HTTP API, typically :5001)
  • Swap intents are space files the mesh can sync; Vault signs the chain transaction
  • Browser and desktop panels read /v1/evrus on the local gateway
  • Full Vault rewrite and on-chain anchoring UX are out of scope for this plugin

Docker, Swarm, and Render

Partial

Container images for the CLI daemon and the Next.js website. Swarm stack for any Linux host; Render Blueprint for the public browser client.

  • docker/compose.yml — hub daemon, website, optional IPFS sidecar
  • docker/swarm.yml — replicas 1, linux/amd64 and linux/arm64 placement notes
  • Website service name peerweave-web, Node 20, pnpm install && pnpm build, pnpm start
  • Browser client still talks to a local/edge gateway — Render does not run libp2p for you

Semantic graph + provenance

Partial

Files, functions, claims, and transformations form a queryable graph with VCIL provenance and PCG multi-axis retrieval.

  • Paginated explorer (~50 nodes/page); WebGL 1–2k @ 60fps is deferred
  • PCG five-axis fusion and graph-layer forgetting
  • GraphQL HTTP API for Ask and explorer queries
  • Click-through from a node into the matching space file

Ports runtime

Partial

Turn a folder into a capability-scoped service port on the peer mesh.

  • Local runner with PW_PORT_CAPABILITIES allowlist
  • CapToken-gated start / stop / invoke
  • Remote advertisements with TTL
  • Runtime capability enforcement still incomplete vs the PRD

Mirrors & anchors

Partial

Selectively publish signed answer bundles and mirror bundles with VCIL validation at publish time.

  • Build, redact, publish, and locally anchor
  • export_answer_bundle_to_mirror requires a valid Ed25519 signature
  • Anchor provider is a local stub; EVRUS chain anchoring stays in the Vault, not this plugin

Policy control plane

Partial

pw-policy.toml plus CLI and CI checks. Receipt policy is post-hoc today; WeaveFS commit gating is the next P1.

  • pw policy init / check — signature required, max unsupported claims, allowed models, denied tools/paths
  • GitHub Action enforces hash, signature, and unsupported-claim counts
  • Pre-commit policy evaluation on WeaveFS mutations is tracked as peer-weave-policy

Compared with adjacent tools

GitHub and Cursor already log agent activity. They do not hand you a signed, portable receipt you can fail a merge on — or a CRDT mesh you can run on a Pi.

CapabilityPeerWeaveGitHubCursor
Signed, portable AI work receiptsShipsSession / audit logsLocal traces
PR merge gate on receipt validityShipsGeneric required checksNo
Claim-level evidence (VCIL)ShipsNoNo
Local-first CRDT spaces + libp2p meshPartialCloud-hostedEditor-local
Raspberry Pi / Linux edge nodesPartialNoNo
Edge ingest of flow metadata (not payloads)PartialNoNo
EVRUS DID / IPFS / atomic swap pluginPartialNoNo
Docker Swarm + Render browser clientPartialHosted ActionsCloud agents
CapToken participant governancePartialOrg rolesAccount / privacy mode

Try it on the next PR

Export a receipt, attach it, run receipt-check. Invalid signatures or unsupported claims fail the gate. Or stand up the mesh and talk to the gateway from /app.