Skill: azilbugpinky-ai/pinkybrain (version 5.2.0)

--- name: pinkybrain version: 5.2.0 description: P2P distributed AI network — turn your OpenClaw agent into a PinkyBrain node with full P2P networking, CRDT memory, specialist routing, credit system, and Web of Trust. author: PinkyBrain-ai repo: https://github.com/PinkyBrain-ai/pinkybrain website: https://PinkyBrain-ai.github.io/pinkybrain/ tags: [p2p, ai-network, distributed-inference, crdt, web-of-trust, mesh-computing] --- # PinkyBrain — P2P Distributed AI Network Become a node on the PinkyBrain. Share compute, query specialists, sync memory across peers — all with Ed25519 identity and E2E encryption. ## ⚠️ Security Rules (NON-NEGOTIABLE) | Rule | Detail | |------|--------| | **Cloud models stay private by default** | OpenAI, Anthropic, and other cloud models are **not shared on mesh by default**. Sharing requires explicit `force=True` + clear cost warning — the user MUST understand their API keys will be used by others | | **Strong P2P_SECRET** | Must be changed from default; weak secrets are rejected at startup | | **Ed25519 + HMAC** | All P2P communication uses Ed25519 identity and HMAC authentication | | **Web of Trust** | Public mesh participation requires WoT verification | | **E2E encryption** | Queries routed through distributed inference are end-to-end encrypted | | **shared_models/ only** | Only models in `shared_models/` are visible to mesh — mesh NEVER reads outside this zone | | **Resource Guard** | Auto-pauses sharing when CPU/RAM thresholds exceeded | | **Stealth mode** | Share compute but stay hidden on tracker | | **Zero query logging** | No query or response data logged on public mesh. Operational events (connect/disconnect) may still be logged locally. | | **No data leakage** | Strict isolation between private and public networks | --- ## Installation ### Quick Install ```bash # Clone the PinkyBrain repository git clone https://github.com/PinkyBrain-ai/pinkybrain.git ~/pinkybrain cd ~/pinkybrain # Create virtual environment and install dependencies python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt # Generate Ed25519 identity (first run) python -m pinkybrain.v5 identity init # Configure (interactive — sets P2P_SECRET, sharing preferences, etc.) python -m pinkybrain.v5 config init ``` ### First Run ```bash # Start the node (foreground, for testing) python -m pinkybrain.v5 serve # Or start as a background daemon python -m pinkybrain.v5 serve --daemon ``` The node exposes an HTTP API on port **8080** by default. --- ## Auto-Discovery When the skill needs to find a running PinkyBrain node, it checks in order: 1. **`PINKYBRAIN_URL`** environment variable (e.g. `http://my-node:8080`) 2. **`http://localhost:8080/api/ping`** — default port 3. **`http://localhost:8081/api/ping`** — alternate port 4. **Tailscale peers** — reads Tailscale config for peers running PinkyBrain 5. **mDNS discovery** — `_pinkybrain._tcp.local.` service discovery The first responding endpoint is used for all subsequent API calls. ### Discovery Helper ```bash # In any command, omit --url to trigger auto-discovery: pinkybrain status # finds node automatically pinkybrain peers # same ``` --- ## Agent Capabilities ### Node Status & Health ```bash # Check if PinkyBrain is running and healthy pinkybrain status # → GET /api/status pinkybrain ping # → GET /api/ping ``` ### AI Queries (Specialist Router) PinkyBrain routes queries through 12 specialist profiles with 6 multi-LLM modes: | Mode | How it works | |------|-------------| | **single** | Route to the best-fit specialist | | **vote** | Multiple specialists vote, majority wins | | **chain** | Specialists process sequentially, each building on the last | | **fuse** | Merge responses from multiple specialists | | **compare** | Return all specialist responses side-by-side | | **specialist** | Explicit specialist selection | ```bash # Query the mesh pinkybrain query "Explain quantum entanglement" --mode single pinkybrain query "Debug this code" --mode chain --specialist coder pinkybrain query "Is this claim accurate?" --mode vote --specialists factchecker,skeptic ``` ### P2P Networking ```bash # Discover and manage peers pinkybrain peers # → GET /api/peers pinkybrain discover # → GET /api/discover # Join/leave the public mesh pinkybrain mesh join # → POST /api/network/mesh/join pinkybrain mesh leave # → POST /api/network/mesh/leave ``` ### CRDT Memory Distributed, eventually-consistent key-value store synced across all peers. ```bash # Read from mesh memory pinkybrain memory get my_key # → GET /api/memory/{key} # Write to mesh memory pinkybrain memory set my_key "value" # → POST /api/memory/set ``` ### Model Registry Catalog models with hash verification and Ed25519 signatures. ```bash # List available models pinkybrain models list # → GET /api/models # Share a model to the mesh (ONLY from shared_models/) pinkybrain models share llama3 # → POST /api/models/{name}/share # Stop sharing a model pinkybrain models unshare llama3 # → POST /api/models/{name}/unshare ``` > ⚠️ Only models in `shared_models/` can be shared. Cloud models (OpenAI, Anthropic) are **never** visible to the mesh. ### Credit System Earn credits by sharing compute, spend credits to query others. ```bash # Check a peer's credit score pinkybrain score peer_id # → GET /api/score/{peer} ``` ### Resource Guard Auto-pauses model sharing when your system is under load. Configurable thresholds: ```bash # Check resource status (included in /api/status) pinkybrain status # shows CPU/RAM + guard state ``` Configuration (in `pinkybrain.yaml`): ```yaml resource_guard: cpu_threshold: 80 # % CPU — pause sharing above this ram_threshold: 85 # % RAM — pause sharing above this cooldown_secs: 300 # wait before resuming ``` ### Capabilities & Hardware ```bash # Report node hardware capabilities pinkybrain capabilities # → GET /api/capabilities ``` ### Daemon Management ```bash # Check daemon status pinkybrain daemon status # → GET /api/daemon # Start/stop the daemon pinkybrain serve --daemon pinkybrain serve --stop ``` ### Updates ```bash # Check for PinkyBrain updates pinkybrain update check # → GET /api/update # Apply updates pinkybrain update apply # Downloads verified update (SHA-256 + Ed25519 signature check) ``` ### Conversation Store Persistent conversation history with search, export, and privacy levels. ```bash # Conversations are stored automatically per session # Search past conversations pinkybrain conversations search "quantum" # Export a conversation pinkybrain conversations export <session_id> # Privacy levels: private | peers-only | public pinkybrain conversations set-privacy <session_id> peers-only ``` --- ## API Reference All endpoints require HMAC authentication (`X-PinkyBrain-Sig` header). Ed25519 signing is used for public mesh messages. | Method | Endpoint | Description | |--------|----------|-------------| | GET | `/api/status` | Node status, resource guard, mesh state | | GET | `/api/ping` | Health check → `{ "pong": true }` | | POST | `/api/query` | Submit AI query (body: `{ "prompt": "...", "mode": "single", "specialists": [...] }`) | | GET | `/api/peers` | Connected peers list | | GET | `/api/memory/{key}` | Read CRDT memory value | | POST | `/api/memory/set` | Write CRDT memory (body: `{ "key": "...", "value": "..." }`) | | GET | `/api/capabilities` | Hardware capabilities report | | GET | `/api/score/{peer}` | Credit score for a peer | | GET | `/api/discover` | Auto-discovered peers (mDNS, Tailscale) | | GET | `/api/update` | Check for available updates | | GET | `/api/daemon` | Daemon process status | | POST | `/api/models/{name}/share` | Share a model to mesh | | POST | `/api/models/{name}/unshare` | Unshare a model | | GET | `/api/models` | List available models | | POST | `/api/network/mesh/join` | Join public mesh | | POST | `/api/conversations/search` | Search conversation history (query param: `q`) | | POST | `/api/conversations/{id}/export` | Export a conversation | | POST | `/api/conversations/{id}/privacy` | Set privacy level (`private`/`peers-only`/`public`) | --- ## Stealth Mode Share compute without appearing on the public tracker: ```bash pinkybrain config set stealth true # Or in pinkybrain.yaml: # stealth: true ``` Your node contributes to the mesh but its identity/IP is hidden from peer lists. --- ## Configuration Reference (`pinkybrain.yaml`) ```yaml node: name: my-node port: 8080 identity: ed25519_key: ~/.pinkybrain/identity.key p2p: [REDACTED_SECRET]" # REQUIRED — must be strong listen: 0.0.0.0:8080 tracker: wss://tracker.pinkybrain.ai mesh: public: false # join public mesh on start? stealth: false # hidden on tracker? sharing: enabled: true shared_models_dir: ./shared_models/ cloud_models: false # NEVER share cloud models resource_guard: cpu_threshold: 80 ram_threshold: 85 cooldown_secs: 300 credit: earn_per_query: 1.0 initial_balance: 10.0 conversations: storage: ./conversations/ default_privacy: private retention_days: 90 logging: public_mesh: false # zero logging on public mesh ``` --- ## Troubleshooting | Problem | Solution | |---------|----------| | Node won't start | Check `P2P_SECRET` is set and strong | | Can't discover peers | Verify mDNS/Tailscale; check `pinkybrain discover` | | Models not sharing | Ensure model is in `shared_models/` dir | | Cloud model leaked | Impossible by default — cloud models require explicit `force=True` to share. Check config if concerned | | High CPU/RAM | Resource Guard auto-pauses; lower thresholds in config | | Credit balance zero | Earn by sharing compute or set `initial_balance` | --- ## Quick Start for OpenClaw Agents ```bash # 1. Install git clone https://github.com/PinkyBrain-ai/pinkybrain.git ~/pinkybrain && cd ~/pinkybrain python3 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt # 2. Initialize identity & config python -m pinkybrain.v5 identity init python -m pinkybrain.v5 config init # 3. Start serving python -m pinkybrain.v5 serve --daemon # 4. Query the mesh python -m pinkybrain.v5 query "Hello, mesh!" --mode single # 5. Share a model (place it in shared_models/ first) cp my-model.gguf shared_models/ python -m pinkybrain.v5 models share my-model ``` You're now a PinkyBrain node. Welcome to the mesh. 🕸️


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)