{
  "schemaVersion": "1.0",
  "item": {
    "slug": "lobsterlan",
    "name": "LobsterLAN",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/danielithomas/lobsterlan",
    "canonicalUrl": "https://clawhub.ai/danielithomas/lobsterlan",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/lobsterlan",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=lobsterlan",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "config/peers.example.json",
      "scripts/lobsterlan.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/lobsterlan"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/lobsterlan",
    "agentPageUrl": "https://openagent3.xyz/skills/lobsterlan/agent",
    "manifestUrl": "https://openagent3.xyz/skills/lobsterlan/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/lobsterlan/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "LobsterLAN — Agent-to-Agent Communication",
        "body": "Talk to other OpenClaw agents on your LAN."
      },
      {
        "title": "Setup",
        "body": "Copy config/peers.example.json to config/peers.json\nFill in peer hostnames, ports, and tokens\nEnsure target agents have the required APIs enabled (see below)\nSet up a secure transport (see Network Transport below)"
      },
      {
        "title": "Required Config on Target Agent",
        "body": "For sync ask (chat completions):\n\n// Target agent's openclaw.json — keep bind as \"loopback\"!\n{\n  \"gateway\": {\n    \"http\": {\n      \"endpoints\": {\n        \"chatCompletions\": { \"enabled\": true }\n      }\n    }\n  }\n}\n\n⚠️ Do NOT set gateway.bind to \"lan\" — OpenClaw will refuse to start if the gateway is exposed on a non-loopback address without TLS. Use a secure transport instead (see below).\n\nFor async delegate (webhooks):\n\n{\n  \"hooks\": {\n    \"enabled\": true,\n    \"token\": \"a-secure-shared-secret\"\n  }\n}"
      },
      {
        "title": "Network Transport",
        "body": "OpenClaw gateways default to bind: loopback and will not start with plaintext on non-loopback addresses. You need a secure transport layer for cross-host communication:\n\nApproachComplexityBest ForSSH Tunnel ⭐LowHome LANs, simple setupsReverse Proxy (TLS)MediumEnvironments with existing Caddy/nginxTailscale ServeMediumMulti-site or remote agents\n\nFor simple LANs, SSH tunneling is recommended. Both gateways stay on loopback, the SSH tunnel provides encryption, and no gateway config changes are needed."
      },
      {
        "title": "SSH Tunnel Example",
        "body": "Forward a local port to the remote agent's loopback gateway:\n\nssh -N -L 18790:127.0.0.1:18790 user@remote-agent-host\n\nThen in peers.json, point the peer to 127.0.0.1:18790 (the local tunnel endpoint).\n\nFor persistence, use a systemd user service with Restart=always. See the full setup guide in docs/setup.md."
      },
      {
        "title": "Ask (synchronous — wait for reply)",
        "body": "scripts/lobsterlan.sh ask scotty \"What is the CPU temperature?\"\n\nUse for quick questions where you need the answer now."
      },
      {
        "title": "Delegate (async — fire and forget)",
        "body": "scripts/lobsterlan.sh delegate scotty \"Generate 5 zen wallpapers and push to the file share\"\n\nUse for long-running tasks. The peer processes independently."
      },
      {
        "title": "Status check",
        "body": "scripts/lobsterlan.sh status scotty"
      },
      {
        "title": "List peers",
        "body": "scripts/lobsterlan.sh peers"
      },
      {
        "title": "Agent Usage (from within OpenClaw)",
        "body": "Run via exec tool:\n\ncd ~/.openclaw/workspace/skills/lobsterlan && scripts/lobsterlan.sh ask scotty \"status report\""
      },
      {
        "title": "Security",
        "body": "Three layers protect communication:\n\nNetwork: LAN-only (firewall blocks external access to gateway port)\nGateway token: Bearer auth on every request\nAgent ID header (optional): X-LobsterLAN-Agent sent with self-ID\n\nThe gateway token is the real security boundary. The agent ID header is defense-in-depth for environments where you want explicit identity verification."
      },
      {
        "title": "Environment Variables",
        "body": "LOBSTERLAN_CONFIG — path to peers.json (default: ../config/peers.json relative to script)"
      }
    ],
    "body": "LobsterLAN — Agent-to-Agent Communication\n\nTalk to other OpenClaw agents on your LAN.\n\nSetup\nCopy config/peers.example.json to config/peers.json\nFill in peer hostnames, ports, and tokens\nEnsure target agents have the required APIs enabled (see below)\nSet up a secure transport (see Network Transport below)\nRequired Config on Target Agent\n\nFor sync ask (chat completions):\n\n// Target agent's openclaw.json — keep bind as \"loopback\"!\n{\n  \"gateway\": {\n    \"http\": {\n      \"endpoints\": {\n        \"chatCompletions\": { \"enabled\": true }\n      }\n    }\n  }\n}\n\n\n⚠️ Do NOT set gateway.bind to \"lan\" — OpenClaw will refuse to start if the gateway is exposed on a non-loopback address without TLS. Use a secure transport instead (see below).\n\nFor async delegate (webhooks):\n\n{\n  \"hooks\": {\n    \"enabled\": true,\n    \"token\": \"a-secure-shared-secret\"\n  }\n}\n\nNetwork Transport\n\nOpenClaw gateways default to bind: loopback and will not start with plaintext on non-loopback addresses. You need a secure transport layer for cross-host communication:\n\nApproach\tComplexity\tBest For\nSSH Tunnel ⭐\tLow\tHome LANs, simple setups\nReverse Proxy (TLS)\tMedium\tEnvironments with existing Caddy/nginx\nTailscale Serve\tMedium\tMulti-site or remote agents\n\nFor simple LANs, SSH tunneling is recommended. Both gateways stay on loopback, the SSH tunnel provides encryption, and no gateway config changes are needed.\n\nSSH Tunnel Example\n\nForward a local port to the remote agent's loopback gateway:\n\nssh -N -L 18790:127.0.0.1:18790 user@remote-agent-host\n\n\nThen in peers.json, point the peer to 127.0.0.1:18790 (the local tunnel endpoint).\n\nFor persistence, use a systemd user service with Restart=always. See the full setup guide in docs/setup.md.\n\nCommands\nAsk (synchronous — wait for reply)\nscripts/lobsterlan.sh ask scotty \"What is the CPU temperature?\"\n\n\nUse for quick questions where you need the answer now.\n\nDelegate (async — fire and forget)\nscripts/lobsterlan.sh delegate scotty \"Generate 5 zen wallpapers and push to the file share\"\n\n\nUse for long-running tasks. The peer processes independently.\n\nStatus check\nscripts/lobsterlan.sh status scotty\n\nList peers\nscripts/lobsterlan.sh peers\n\nAgent Usage (from within OpenClaw)\n\nRun via exec tool:\n\ncd ~/.openclaw/workspace/skills/lobsterlan && scripts/lobsterlan.sh ask scotty \"status report\"\n\nSecurity\n\nThree layers protect communication:\n\nNetwork: LAN-only (firewall blocks external access to gateway port)\nGateway token: Bearer auth on every request\nAgent ID header (optional): X-LobsterLAN-Agent sent with self-ID\n\nThe gateway token is the real security boundary. The agent ID header is defense-in-depth for environments where you want explicit identity verification.\n\nEnvironment Variables\nLOBSTERLAN_CONFIG — path to peers.json (default: ../config/peers.json relative to script)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/danielithomas/lobsterlan",
    "publisherUrl": "https://clawhub.ai/danielithomas/lobsterlan",
    "owner": "danielithomas",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/lobsterlan",
    "downloadUrl": "https://openagent3.xyz/downloads/lobsterlan",
    "agentUrl": "https://openagent3.xyz/skills/lobsterlan/agent",
    "manifestUrl": "https://openagent3.xyz/skills/lobsterlan/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/lobsterlan/agent.md"
  }
}