{"id":"e099dd85-cd77-4ae2-a14b-6f8fb6194a6f","shortId":"LFkFya","kind":"skill","title":"pilot-stream-data","tagline":"Real-time NDJSON data streaming over persistent Pilot Protocol connections.  Use this skill when: 1. You need to stream structured data in real-time between agents 2. You want to send continuous sensor readings, logs, or metrics 3. You need bidirectional streaming communication w","description":"# pilot-stream-data\n\nReal-time structured data streaming using NDJSON format over Pilot Protocol's persistent connections with backpressure handling.\n\n## Commands\n\n**Start stream server:**\n```bash\npilotctl --json listen 1002 > /tmp/pilot-stream.log &\n```\n\n**Stream NDJSON data:**\n```bash\nDEST=\"1:0001.AAAA.BBBB\"\nwhile true; do\n  MSG=\"{\\\"timestamp\\\":$(date +%s),\\\"temp\\\":$(echo \"scale=2; 20 + $RANDOM % 10\" | bc),\\\"humidity\\\":50}\"\n  pilotctl --json send \"$DEST\" 1002 --data \"$MSG\"\n  sleep 1\ndone\n```\n\n**Receive and process stream:**\n```bash\npilotctl --json listen 1002 | while read -r line; do\n  TIMESTAMP=$(echo \"$line\" | jq -r '.timestamp')\n  VALUE=$(echo \"$line\" | jq -r '.value')\n  echo \"[$TIMESTAMP] Value: $VALUE\"\ndone\n```\n\n**Subscribe to stream topic:**\n```bash\npilotctl --json subscribe \"$DEST\" data-stream | while read -r line; do\n  echo \"Data: $(echo $line | jq -r '.value')\"\ndone\n```\n\n## Workflow Example\n\n```bash\n#!/bin/bash\n# Real-time sensor data streaming\n\nSTREAM_PORT=1002\nDEST=\"1:0001.AAAA.BBBB\"\n\n# Producer: stream sensor data\nproduce_stream() {\n  echo \"Starting stream producer\"\n\n  # Send metadata header\n  pilotctl --json send \"$DEST\" \"$STREAM_PORT\" \\\n    --data \"{\\\"type\\\":\\\"stream_start\\\",\\\"schema\\\":\\\"temp_humidity_v1\\\"}\"\n\n  # Stream data\n  counter=0\n  while true; do\n    timestamp=$(date +%s)\n    temp=$(echo \"scale=2; 20 + ($counter % 10)\" | bc)\n    humidity=$(echo \"scale=2; 50 + ($counter % 20)\" | bc)\n\n    pilotctl --json send \"$DEST\" \"$STREAM_PORT\" \\\n      --data \"{\\\"type\\\":\\\"data\\\",\\\"timestamp\\\":$timestamp,\\\"temp\\\":$temp,\\\"humidity\\\":$humidity,\\\"seq\\\":$counter}\"\n\n    counter=$((counter + 1))\n    sleep 1\n  done\n}\n\n# Consumer: receive and process\nconsume_stream() {\n  pilotctl --json listen \"$STREAM_PORT\" | while read -r line; do\n    type=$(echo \"$line\" | jq -r '.type')\n\n    if [ \"$type\" = \"data\" ]; then\n      temp=$(echo \"$line\" | jq -r '.temp')\n      echo \"Temperature: ${temp}°C\"\n    fi\n  done\n}\n\nproduce_stream\n```\n\n## Dependencies\n\nRequires `pilot-protocol` skill, running daemon, `jq`, `bc`, and optional `gzip` for compression.","tags":["pilot","stream","data","skills","teoslayer","agent-skills","ai-agents","clawhub","networking","openclaw","overlay-network","p2p"],"capabilities":["skill","source-teoslayer","skill-pilot-stream-data","topic-agent-skills","topic-ai-agents","topic-clawhub","topic-networking","topic-openclaw","topic-overlay-network","topic-p2p","topic-pilot-protocol"],"categories":["pilot-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/TeoSlayer/pilot-skills/pilot-stream-data","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add TeoSlayer/pilot-skills","source_repo":"https://github.com/TeoSlayer/pilot-skills","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 6 github stars · SKILL.md body (2,068 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:15:04.504Z","embedding":null,"createdAt":"2026-05-18T13:22:52.679Z","updatedAt":"2026-05-18T19:15:04.504Z","lastSeenAt":"2026-05-18T19:15:04.504Z","tsv":"'/bin/bash':176 '/tmp/pilot-stream.log':82 '0':219 '0001.aaaa.bbbb':89,188 '1':20,88,115,187,261,263 '10':103,232 '1002':81,111,125,185 '2':33,100,229,237 '20':101,230,240 '3':44 '50':106,238 'agent':32 'backpressur':71 'bash':77,86,121,152,175 'bc':104,233,241,314 'bidirect':47 'c':300 'command':73 'communic':49 'compress':319 'connect':15,69 'consum':265,269 'continu':38 'counter':218,231,239,258,259,260 'daemon':312 'data':4,9,26,54,59,85,112,158,166,181,192,208,217,248,250,289 'data-stream':157 'date':95,224 'depend':305 'dest':87,110,156,186,205,245 'done':116,147,172,264,302 'echo':98,132,138,143,165,167,195,227,235,282,292,297 'exampl':174 'fi':301 'format':63 'gzip':317 'handl':72 'header':201 'humid':105,214,234,255,256 'jq':134,140,169,284,294,313 'json':79,108,123,154,203,243,272 'line':129,133,139,163,168,279,283,293 'listen':80,124,273 'log':41 'metadata':200 'metric':43 'msg':93,113 'ndjson':8,62,84 'need':22,46 'option':316 'persist':12,68 'pilot':2,13,52,65,308 'pilot-protocol':307 'pilot-stream-data':1,51 'pilotctl':78,107,122,153,202,242,271 'port':184,207,247,275 'process':119,268 'produc':189,193,198,303 'protocol':14,66,309 'r':128,135,141,162,170,278,285,295 'random':102 'read':40,127,161,277 'real':6,29,56,178 'real-tim':5,28,55,177 'receiv':117,266 'requir':306 'run':311 'scale':99,228,236 'schema':212 'send':37,109,199,204,244 'sensor':39,180,191 'seq':257 'server':76 'skill':18,310 'skill-pilot-stream-data' 'sleep':114,262 'source-teoslayer' 'start':74,196,211 'stream':3,10,24,48,53,60,75,83,120,150,159,182,183,190,194,197,206,210,216,246,270,274,304 'structur':25,58 'subscrib':148,155 'temp':97,213,226,253,254,291,296,299 'temperatur':298 'time':7,30,57,179 'timestamp':94,131,136,144,223,251,252 'topic':151 'topic-agent-skills' 'topic-ai-agents' 'topic-clawhub' 'topic-networking' 'topic-openclaw' 'topic-overlay-network' 'topic-p2p' 'topic-pilot-protocol' 'true':91,221 'type':209,249,281,286,288 'use':16,61 'v1':215 'valu':137,142,145,146,171 'w':50 'want':35 'workflow':173","prices":[{"id":"fb32a7de-90a2-49dd-a8a5-2fa7a4ff47e9","listingId":"e099dd85-cd77-4ae2-a14b-6f8fb6194a6f","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"TeoSlayer","category":"pilot-skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:22:52.679Z"}],"sources":[{"listingId":"e099dd85-cd77-4ae2-a14b-6f8fb6194a6f","source":"github","sourceId":"TeoSlayer/pilot-skills/pilot-stream-data","sourceUrl":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-stream-data","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:52.679Z","lastSeenAt":"2026-05-18T19:15:04.504Z"}],"details":{"listingId":"e099dd85-cd77-4ae2-a14b-6f8fb6194a6f","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"TeoSlayer","slug":"pilot-stream-data","github":{"repo":"TeoSlayer/pilot-skills","stars":6,"topics":["agent-skills","ai-agents","clawhub","networking","openclaw","overlay-network","p2p","pilot-protocol"],"license":"agpl-3.0","html_url":"https://github.com/TeoSlayer/pilot-skills","pushed_at":"2026-05-13T06:08:49Z","description":"80+ agent skills for Pilot Protocol — communication, file transfer, trust, task routing, swarm coordination, and more","skill_md_sha":"1f35b9af4f37bbccc5e6acdb5fe4f6da8950920a","skill_md_path":"skills/pilot-stream-data/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-stream-data"},"layout":"multi","source":"github","category":"pilot-skills","frontmatter":{"name":"pilot-stream-data","license":"AGPL-3.0","description":"Real-time NDJSON data streaming over persistent Pilot Protocol connections.  Use this skill when: 1. You need to stream structured data in real-time between agents 2. You want to send continuous sensor readings, logs, or metrics 3. You need bidirectional streaming communication with backpressure  Do NOT use this skill when: - You need to transfer files (use pilot-share or pilot-sync) - You need pub/sub broadcast (use pilot-pubsub instead) - You need request/response patterns (use pilot-rpc instead)","compatibility":"Requires pilot-protocol skill and pilotctl binary on PATH. The daemon must be running (pilotctl daemon start)."},"skills_sh_url":"https://skills.sh/TeoSlayer/pilot-skills/pilot-stream-data"},"updatedAt":"2026-05-18T19:15:04.504Z"}}