Bidirectional file synchronization between agents over the Pilot Protocol network. Use this skill when: 1. You need to keep directories synchronized between two agents 2. You want to replicate files across multiple nodes with conflict detection 3. You need to maintain consistent file state across distributed agents Do NOT use this skill when: - You only need one-way file transfer (use pilot-share instead) - You need real-time streaming data (use pilot-stream-data instead) - Files are larger than 100MB without chunking support (use pilot-chunk-transfer)
Bidirectional file synchronization between agents using conflict detection.
for file in /path/to/sync/*; do
pilotctl --json send-file 1:0001.AAAA.BBBB "$file"
done
pilotctl --json received | jq -r '.received[] | {filename, size, from, timestamp}'
fswatch -0 /path/to/sync | while read -d "" file; do
pilotctl --json send-file 1:0001.AAAA.BBBB "$file"
done
Bidirectional sync with conflict detection:
#!/bin/bash
SYNC_DIR="$HOME/shared-data"
REMOTE="1:0001.AAAA.BBBB"
# Build manifest
LOCAL_MANIFEST=$(find "$SYNC_DIR" -type f -exec sh -c \
'printf "%s:%s:%s\n" "{}" "$(md5sum {} | cut -d\" \" -f1)" "$(stat -f %m {})"' \;)
# Send manifest and sync
pilotctl --json send-message "$REMOTE" --data "{\"type\":\"sync_init\",\"manifest\":\"$LOCAL_MANIFEST\"}"
# Start continuous sync
fswatch -0 "$SYNC_DIR" | while read -d "" changed_file; do
pilotctl --json send-file "$REMOTE" "$changed_file"
done
Requires pilot-protocol skill, jq, fswatch/inotifywait, md5sum, and stat.