{"id":"3e5900ca-bac8-4161-986f-6fe2a026ece8","shortId":"rWJeDd","kind":"skill","title":"pilot-presence","tagline":"Real-time online/offline/busy presence tracking for agent fleets using ping and pub/sub.  Use this skill when: 1. You need to track which agents are online/offline/busy 2. You need to broadcast presence changes to interested peers 3. You need to discover available agents for task","description":"# Pilot Presence\n\nReal-time presence tracking for Pilot Protocol agents. Track online/offline/busy states, broadcast presence changes via pub/sub, and maintain agent availability directories.\n\n## Commands\n\n**Ping for liveness:**\n```bash\npilotctl --json ping <target-hostname> [--count <n>] [--timeout <ms>]\n```\n\n**Get connected peers:**\n```bash\npilotctl --json peers\n```\n\n**Publish presence:**\n```bash\npilotctl --json publish <target-hostname> \"presence.status\" --data '{\"hostname\":\"myagent\",\"status\":\"online\",\"timestamp\":\"2026-04-08T10:00:00Z\"}'\n```\n\n**Subscribe to presence:**\n```bash\npilotctl --json subscribe <target-hostname> \"presence.*\" [--timeout <seconds>]\n```\n\n## Workflow Example\n\n```bash\n#!/bin/bash\n# Broadcast presence every 30 seconds\n\nCOORDINATOR=\"${1:-presence-coordinator}\"\nINTERVAL=30\nSTATUS_FILE=\"/tmp/pilot-presence-status.txt\"\necho \"online\" > \"$STATUS_FILE\"\n\nwhile true; do\n  status=$(cat \"$STATUS_FILE\" 2>/dev/null || echo \"online\")\n  timestamp=$(date -u +%Y-%m-%dT%H:%M:%SZ)\n\n  info=$(pilotctl --json info 2>/dev/null)\n  hostname=$(echo \"$info\" | jq -r '.data.hostname // \"unknown\"')\n\n  presence_payload=$(jq -n \\\n    --arg hostname \"$hostname\" \\\n    --arg status \"$status\" \\\n    --arg timestamp \"$timestamp\" \\\n    '{hostname: $hostname, status: $status, timestamp: $timestamp}')\n\n  pilotctl --json publish \"$COORDINATOR\" \"presence.status\" --data \"$presence_payload\"\n  sleep \"$INTERVAL\"\ndone\n```\n\n## Presence States\n\n- **online**: Agent is reachable and accepting work\n- **busy**: Agent is reachable but not accepting new work\n- **offline**: Agent is unreachable\n- **away**: Agent is reachable but operator is away\n\n## Dependencies\n\nRequires `pilot-protocol` skill, `jq`, `pilotctl` binary, and running daemon.","tags":["pilot","presence","skills","teoslayer","agent-skills","ai-agents","clawhub","networking","openclaw","overlay-network","p2p","pilot-protocol"],"capabilities":["skill","source-teoslayer","skill-pilot-presence","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-presence","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 (1,734 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:14:59.090Z","embedding":null,"createdAt":"2026-05-18T13:22:44.808Z","updatedAt":"2026-05-18T19:14:59.090Z","lastSeenAt":"2026-05-18T19:14:59.090Z","tsv":"'-04':104 '-08':105 '/bin/bash':121 '/dev/null':149,166 '/tmp/pilot-presence-status.txt':136 '00':107 '00z':108 '1':21,128 '2':30,148,165 '2026':103 '3':40 '30':125,133 'accept':211,219 'agent':11,27,46,59,70,207,214,223,227 'arg':178,181,184 'avail':45,71 'away':226,233 'bash':77,86,92,112,120 'binari':242 'broadcast':34,63,122 'busi':213 'cat':145 'chang':36,65 'command':73 'connect':84 'coordin':127,131,196 'count':81 'daemon':245 'data':97,198 'data.hostname':172 'date':153 'depend':234 'directori':72 'discov':44 'done':203 'dt':157 'echo':137,150,168 'everi':124 'exampl':119 'file':135,140,147 'fleet':12 'get':83 'h':158 'hostnam':98,167,179,180,187,188 'info':161,164,169 'interest':38 'interv':132,202 'jq':170,176,240 'json':79,88,94,114,163,194 'live':76 'm':156,159 'maintain':69 'myagent':99 'n':177 'need':23,32,42 'new':220 'offlin':222 'onlin':101,138,151,206 'online/offline/busy':7,29,61 'oper':231 'payload':175,200 'peer':39,85,89 'pilot':2,49,57,237 'pilot-pres':1 'pilot-protocol':236 'pilotctl':78,87,93,113,162,193,241 'ping':14,74,80 'presenc':3,8,35,50,54,64,91,111,116,123,130,174,199,204 'presence-coordin':129 'presence.status':96,197 'protocol':58,238 'pub/sub':16,67 'publish':90,95,195 'r':171 'reachabl':209,216,229 'real':5,52 'real-tim':4,51 'requir':235 'run':244 'second':126 'skill':19,239 'skill-pilot-presence' 'sleep':201 'source-teoslayer' 'state':62,205 'status':100,134,139,144,146,182,183,189,190 'subscrib':109,115 'sz':160 't10':106 'task':48 'time':6,53 'timeout':82,117 'timestamp':102,152,185,186,191,192 'topic-agent-skills' 'topic-ai-agents' 'topic-clawhub' 'topic-networking' 'topic-openclaw' 'topic-overlay-network' 'topic-p2p' 'topic-pilot-protocol' 'track':9,25,55,60 'true':142 'u':154 'unknown':173 'unreach':225 'use':13,17 'via':66 'work':212,221 'workflow':118 'y':155","prices":[{"id":"86f2003e-d9db-4806-96a5-672254795a02","listingId":"3e5900ca-bac8-4161-986f-6fe2a026ece8","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:44.808Z"}],"sources":[{"listingId":"3e5900ca-bac8-4161-986f-6fe2a026ece8","source":"github","sourceId":"TeoSlayer/pilot-skills/pilot-presence","sourceUrl":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-presence","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:44.808Z","lastSeenAt":"2026-05-18T19:14:59.090Z"}],"details":{"listingId":"3e5900ca-bac8-4161-986f-6fe2a026ece8","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"TeoSlayer","slug":"pilot-presence","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":"1bf412c3301746cd6d03735f270bfcb6f28d7053","skill_md_path":"skills/pilot-presence/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-presence"},"layout":"multi","source":"github","category":"pilot-skills","frontmatter":{"name":"pilot-presence","license":"AGPL-3.0","description":"Real-time online/offline/busy presence tracking for agent fleets using ping and pub/sub.  Use this skill when: 1. You need to track which agents are online/offline/busy 2. You need to broadcast presence changes to interested peers 3. You need to discover available agents for task routing 4. You need to maintain a real-time agent directory  Do NOT use this skill when: - You only need static peer discovery (use pilotctl trust instead) - You need detailed health metrics (use pilot-metrics instead) - You need persistent audit logs (use pilot-event-log instead)","compatibility":"Requires pilot-protocol skill and pilotctl binary on PATH. The daemon must be running (pilotctl daemon start). Requires jq for JSON processing."},"skills_sh_url":"https://skills.sh/TeoSlayer/pilot-skills/pilot-presence"},"updatedAt":"2026-05-18T19:14:59.090Z"}}