{
  "schemaVersion": "1.0",
  "item": {
    "slug": "spool",
    "name": "spool",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/zizi-cat/spool",
    "canonicalUrl": "https://clawhub.ai/zizi-cat/spool",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/spool",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=spool",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.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/spool"
    },
    "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/spool",
    "agentPageUrl": "https://openagent3.xyz/skills/spool/agent",
    "manifestUrl": "https://openagent3.xyz/skills/spool/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/spool/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": "spool",
        "body": "OpenClaw browser 도구로 Threads (threads.net) 조작하기."
      },
      {
        "title": "환경 요구사항",
        "body": "OpenClaw with browser tool enabled\nopenclaw browser profile\nThreads 계정 로그인 완료"
      },
      {
        "title": "Headless 서버인 경우 (GUI 없음)",
        "body": "Xvfb 가상 디스플레이 필요:\n\n# 1. Xvfb 설치 및 서비스 등록\nsudo apt install -y xvfb\nsudo tee /etc/systemd/system/xvfb.service << 'EOF'\n[Unit]\nDescription=X Virtual Frame Buffer\nAfter=network.target\n[Service]\nType=simple\nExecStart=/usr/bin/Xvfb :99 -screen 0 1920x1080x24\nRestart=always\n[Install]\nWantedBy=multi-user.target\nEOF\nsudo systemctl enable --now xvfb\n\n# 2. OpenClaw Gateway에 DISPLAY 환경변수 추가\nmkdir -p ~/.config/systemd/user/openclaw-gateway.service.d\necho -e '[Service]\\nEnvironment=DISPLAY=:99' > ~/.config/systemd/user/openclaw-gateway.service.d/display.conf\nsystemctl --user daemon-reload\nsystemctl --user restart openclaw-gateway"
      },
      {
        "title": "로그인 (처음 한 번만)",
        "body": "browser action=start profile=openclaw\nbrowser action=open profile=openclaw targetUrl=\"https://www.threads.net/login\"\n# 사용자에게 수동 로그인 요청"
      },
      {
        "title": "1. 타임라인 읽기",
        "body": "browser action=open profile=openclaw targetUrl=\"https://www.threads.net\"\nbrowser action=snapshot profile=openclaw compact=true\n\n결과에서 각 게시물의 작성자, 내용, 좋아요/댓글 수 확인 가능."
      },
      {
        "title": "2. 포스팅 (전체 플로우)",
        "body": "Step 1: 홈으로 이동\n\nbrowser action=open profile=openclaw targetUrl=\"https://www.threads.net\"\nbrowser action=snapshot profile=openclaw compact=true\n\nStep 2: \"What's new?\" 버튼 찾아서 클릭\nsnapshot에서 \"What's new?\" 또는 \"Empty text field\" 포함된 button의 ref 찾기\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"e14\"}\n\n(ref는 snapshot마다 다름! 반드시 snapshot에서 확인)\n\nStep 3: 다이얼로그에서 텍스트 입력\n\nbrowser action=snapshot profile=openclaw compact=true\n\ntextbox ref 찾아서:\n\nbrowser action=act profile=openclaw request={\"kind\":\"type\",\"ref\":\"e14\",\"text\":\"포스팅 내용\"}\n\nStep 4: Post 버튼 클릭\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"e22\"}\n\n(Post 버튼 ref도 snapshot에서 확인)\n\nStep 5: 확인\n\nbrowser action=snapshot profile=openclaw compact=true\n\n→ \"Posted\" 텍스트와 \"View\" 링크가 보이면 성공!"
      },
      {
        "title": "3. 프로필 보기",
        "body": "browser action=open profile=openclaw targetUrl=\"https://www.threads.net/@username\"\nbrowser action=snapshot profile=openclaw compact=true"
      },
      {
        "title": "4. 검색",
        "body": "browser action=open profile=openclaw targetUrl=\"https://www.threads.net/search?q=검색어\"\nbrowser action=snapshot profile=openclaw compact=true"
      },
      {
        "title": "5. 답글 달기",
        "body": "# 게시물 열기\nbrowser action=open profile=openclaw targetUrl=\"https://www.threads.net/@user/post/POSTID\"\nbrowser action=snapshot profile=openclaw compact=true\n\n# Reply 버튼 클릭 (ref 확인 후)\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<reply-ref>\"}\n\n# 텍스트 입력 및 게시 (포스팅과 동일)"
      },
      {
        "title": "핵심 포인트",
        "body": "snapshot 먼저! - 모든 작업 전에 snapshot으로 현재 페이지 상태와 ref 확인\nref는 매번 달라짐 - snapshot 결과에서 항상 새로 찾기\ncompact=true - 토큰 절약을 위해 항상 사용\ntargetId 유지 - 같은 탭에서 작업하려면 targetId 파라미터 사용\n포스팅 전 확인 - 사용자에게 내용 확인받고 포스팅"
      },
      {
        "title": "트러블슈팅",
        "body": "문제해결browser 도구 안 됨Xvfb 실행 확인, DISPLAY=:99 설정 확인, Gateway 재시작로그인 안 됨/login 페이지로 이동 후 수동 로그인 요청ref 못 찾음snapshot 다시 찍고 비슷한 텍스트/버튼 찾기포스팅 안 됨Post 버튼이 disabled인지 확인 (텍스트 입력 필요)"
      }
    ],
    "body": "spool\n\nOpenClaw browser 도구로 Threads (threads.net) 조작하기.\n\nPrerequisites\n환경 요구사항\nOpenClaw with browser tool enabled\nopenclaw browser profile\nThreads 계정 로그인 완료\nHeadless 서버인 경우 (GUI 없음)\n\nXvfb 가상 디스플레이 필요:\n\n# 1. Xvfb 설치 및 서비스 등록\nsudo apt install -y xvfb\nsudo tee /etc/systemd/system/xvfb.service << 'EOF'\n[Unit]\nDescription=X Virtual Frame Buffer\nAfter=network.target\n[Service]\nType=simple\nExecStart=/usr/bin/Xvfb :99 -screen 0 1920x1080x24\nRestart=always\n[Install]\nWantedBy=multi-user.target\nEOF\nsudo systemctl enable --now xvfb\n\n# 2. OpenClaw Gateway에 DISPLAY 환경변수 추가\nmkdir -p ~/.config/systemd/user/openclaw-gateway.service.d\necho -e '[Service]\\nEnvironment=DISPLAY=:99' > ~/.config/systemd/user/openclaw-gateway.service.d/display.conf\nsystemctl --user daemon-reload\nsystemctl --user restart openclaw-gateway\n\n로그인 (처음 한 번만)\nbrowser action=start profile=openclaw\nbrowser action=open profile=openclaw targetUrl=\"https://www.threads.net/login\"\n# 사용자에게 수동 로그인 요청\n\n사용법\n1. 타임라인 읽기\nbrowser action=open profile=openclaw targetUrl=\"https://www.threads.net\"\nbrowser action=snapshot profile=openclaw compact=true\n\n\n결과에서 각 게시물의 작성자, 내용, 좋아요/댓글 수 확인 가능.\n\n2. 포스팅 (전체 플로우)\n\nStep 1: 홈으로 이동\n\nbrowser action=open profile=openclaw targetUrl=\"https://www.threads.net\"\nbrowser action=snapshot profile=openclaw compact=true\n\n\nStep 2: \"What's new?\" 버튼 찾아서 클릭 snapshot에서 \"What's new?\" 또는 \"Empty text field\" 포함된 button의 ref 찾기\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"e14\"}\n\n\n(ref는 snapshot마다 다름! 반드시 snapshot에서 확인)\n\nStep 3: 다이얼로그에서 텍스트 입력\n\nbrowser action=snapshot profile=openclaw compact=true\n\n\ntextbox ref 찾아서:\n\nbrowser action=act profile=openclaw request={\"kind\":\"type\",\"ref\":\"e14\",\"text\":\"포스팅 내용\"}\n\n\nStep 4: Post 버튼 클릭\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"e22\"}\n\n\n(Post 버튼 ref도 snapshot에서 확인)\n\nStep 5: 확인\n\nbrowser action=snapshot profile=openclaw compact=true\n\n\n→ \"Posted\" 텍스트와 \"View\" 링크가 보이면 성공!\n\n3. 프로필 보기\nbrowser action=open profile=openclaw targetUrl=\"https://www.threads.net/@username\"\nbrowser action=snapshot profile=openclaw compact=true\n\n4. 검색\nbrowser action=open profile=openclaw targetUrl=\"https://www.threads.net/search?q=검색어\"\nbrowser action=snapshot profile=openclaw compact=true\n\n5. 답글 달기\n# 게시물 열기\nbrowser action=open profile=openclaw targetUrl=\"https://www.threads.net/@user/post/POSTID\"\nbrowser action=snapshot profile=openclaw compact=true\n\n# Reply 버튼 클릭 (ref 확인 후)\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<reply-ref>\"}\n\n# 텍스트 입력 및 게시 (포스팅과 동일)\n\n핵심 포인트\nsnapshot 먼저! - 모든 작업 전에 snapshot으로 현재 페이지 상태와 ref 확인\nref는 매번 달라짐 - snapshot 결과에서 항상 새로 찾기\ncompact=true - 토큰 절약을 위해 항상 사용\ntargetId 유지 - 같은 탭에서 작업하려면 targetId 파라미터 사용\n포스팅 전 확인 - 사용자에게 내용 확인받고 포스팅\n트러블슈팅\n문제\t해결\nbrowser 도구 안 됨\tXvfb 실행 확인, DISPLAY=:99 설정 확인, Gateway 재시작\n로그인 안 됨\t/login 페이지로 이동 후 수동 로그인 요청\nref 못 찾음\tsnapshot 다시 찍고 비슷한 텍스트/버튼 찾기\n포스팅 안 됨\tPost 버튼이 disabled인지 확인 (텍스트 입력 필요)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/zizi-cat/spool",
    "publisherUrl": "https://clawhub.ai/zizi-cat/spool",
    "owner": "zizi-cat",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/spool",
    "downloadUrl": "https://openagent3.xyz/downloads/spool",
    "agentUrl": "https://openagent3.xyz/skills/spool/agent",
    "manifestUrl": "https://openagent3.xyz/skills/spool/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/spool/agent.md"
  }
}