🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Pilot Stream Data

by @teoslayer

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 a...

Versionv1.0.0
Downloads732
TERMINAL
clawhub install pilot-stream-data

πŸ“– About This Skill


name: pilot-stream-data 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) tags: - pilot-protocol - streaming - real-time - ndjson license: AGPL-3.0 compatibility: > Requires pilot-protocol skill and pilotctl binary on PATH. The daemon must be running (pilotctl daemon start). metadata: author: vulture-labs version: "1.0" openclaw: requires: bins: - pilotctl homepage: https://pilotprotocol.network allowed-tools: - Bash


pilot-stream-data

Real-time structured data streaming using NDJSON format over Pilot Protocol's persistent connections with backpressure handling.

Commands

Start stream server:

pilotctl --json listen 1002 > /tmp/pilot-stream.log &

Stream NDJSON data:

DEST="1:0001.AAAA.BBBB"
while true; do
  MSG="{\"timestamp\":$(date +%s),\"temp\":$(echo "scale=2; 20 + $RANDOM % 10" | bc),\"humidity\":50}"
  pilotctl --json send "$DEST" 1002 --data "$MSG"
  sleep 1
done

Receive and process stream:

pilotctl --json listen 1002 | while read -r line; do
  TIMESTAMP=$(echo "$line" | jq -r '.timestamp')
  VALUE=$(echo "$line" | jq -r '.value')
  echo "[$TIMESTAMP] Value: $VALUE"
done

Subscribe to stream topic:

pilotctl --json subscribe "$DEST" data-stream | while read -r line; do
  echo "Data: $(echo $line | jq -r '.value')"
done

Workflow Example

#!/bin/bash

Real-time sensor data streaming

STREAM_PORT=1002 DEST="1:0001.AAAA.BBBB"

Producer: stream sensor data

produce_stream() { echo "Starting stream producer"

# Send metadata header pilotctl --json send "$DEST" "$STREAM_PORT" \ --data "{\"type\":\"stream_start\",\"schema\":\"temp_humidity_v1\"}"

# Stream data counter=0 while true; do timestamp=$(date +%s) temp=$(echo "scale=2; 20 + ($counter % 10)" | bc) humidity=$(echo "scale=2; 50 + ($counter % 20)" | bc)

pilotctl --json send "$DEST" "$STREAM_PORT" \ --data "{\"type\":\"data\",\"timestamp\":$timestamp,\"temp\":$temp,\"humidity\":$humidity,\"seq\":$counter}"

counter=$((counter + 1)) sleep 1 done }

Consumer: receive and process

consume_stream() { pilotctl --json listen "$STREAM_PORT" | while read -r line; do type=$(echo "$line" | jq -r '.type')

if [ "$type" = "data" ]; then temp=$(echo "$line" | jq -r '.temp') echo "Temperature: ${temp}Β°C" fi done }

produce_stream

Dependencies

Requires pilot-protocol skill, running daemon, jq, bc, and optional gzip for compression.