{
  "schemaVersion": "1.0",
  "item": {
    "slug": "tweet-cli",
    "name": "Tweet Cli",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/0xmythril/tweet-cli",
    "canonicalUrl": "https://clawhub.ai/0xmythril/tweet-cli",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/tweet-cli",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=tweet-cli",
    "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/tweet-cli"
    },
    "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/tweet-cli",
    "agentPageUrl": "https://openagent3.xyz/skills/tweet-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tweet-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tweet-cli/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": "tweet-cli",
        "body": "Post to X/Twitter using the official API v2. This tool uses API credits (limited to 1,500 posts/month on the Free tier), so only use it when the user explicitly asks you to post, or during scheduled cron tasks. Do not speculatively draft and post tweets.\n\nFor reading tweets, searching, and browsing timelines, use bird instead (no credit cost)."
      },
      {
        "title": "Setup",
        "body": "Install (pinned to release tag):\n\nnpm install -g github:0xmythril/tweet-cli#v1.0.0\n\nGet API keys from https://developer.x.com/en/portal/dashboard (Free tier works)\nConfigure credentials (file is created with restricted permissions):\n\nmkdir -p ~/.config/tweet-cli\ntouch ~/.config/tweet-cli/.env\nchmod 600 ~/.config/tweet-cli/.env\ncat > ~/.config/tweet-cli/.env << 'EOF'\nX_API_KEY=your_consumer_key\nX_API_SECRET=your_secret_key\nX_ACCESS_TOKEN=your_access_token\nX_ACCESS_TOKEN_SECRET=your_access_token_secret\nEOF\n\nVerify: tweet-cli whoami"
      },
      {
        "title": "Security",
        "body": "Credentials: Stored in ~/.config/tweet-cli/.env (read by dotenv at runtime). Set chmod 600 to restrict access.\nNo postinstall scripts: The package has zero install scripts — verify via npm pack --dry-run or inspect package.json.\nNo telemetry or network calls except to the official X API (api.x.com) when you run a command.\nPinned install: The install command pins to a specific release tag. Audit the source at https://github.com/0xmythril/tweet-cli before installing.\nDependencies: Only 3 runtime deps — twitter-api-v2 (official X API client), commander (CLI parsing), dotenv (env file loading). No transitive dependencies."
      },
      {
        "title": "Verify auth",
        "body": "tweet-cli whoami"
      },
      {
        "title": "Post a tweet",
        "body": "tweet-cli post \"Your tweet text here\""
      },
      {
        "title": "Reply to a tweet",
        "body": "tweet-cli reply <tweet-id-or-url> \"Your reply text\"\ntweet-cli reply https://x.com/user/status/123456 \"Your reply text\""
      },
      {
        "title": "Quote a tweet",
        "body": "tweet-cli quote <tweet-id-or-url> \"Your commentary\"\ntweet-cli quote https://x.com/user/status/123456 \"Your commentary\""
      },
      {
        "title": "Delete a tweet",
        "body": "tweet-cli delete <tweet-id-or-url>"
      },
      {
        "title": "Important rules",
        "body": "Do NOT post unless the user explicitly asks or a cron job triggers it. Each post uses API credits.\nAlways confirm with the user before posting, replying, or quoting. Show them the text first.\nFor reading tweets, searching, or viewing timelines, use bird (not tweet-cli).\ntweet-cli accepts both raw tweet IDs and full URLs (x.com or twitter.com).\nIf you get a 402 CreditsDepleted error, inform the user their monthly credits are exhausted."
      }
    ],
    "body": "tweet-cli\n\nPost to X/Twitter using the official API v2. This tool uses API credits (limited to 1,500 posts/month on the Free tier), so only use it when the user explicitly asks you to post, or during scheduled cron tasks. Do not speculatively draft and post tweets.\n\nFor reading tweets, searching, and browsing timelines, use bird instead (no credit cost).\n\nSetup\nInstall (pinned to release tag):\nnpm install -g github:0xmythril/tweet-cli#v1.0.0\n\nGet API keys from https://developer.x.com/en/portal/dashboard (Free tier works)\nConfigure credentials (file is created with restricted permissions):\nmkdir -p ~/.config/tweet-cli\ntouch ~/.config/tweet-cli/.env\nchmod 600 ~/.config/tweet-cli/.env\ncat > ~/.config/tweet-cli/.env << 'EOF'\nX_API_KEY=your_consumer_key\nX_API_SECRET=your_secret_key\nX_ACCESS_TOKEN=your_access_token\nX_ACCESS_TOKEN_SECRET=your_access_token_secret\nEOF\n\nVerify: tweet-cli whoami\nSecurity\nCredentials: Stored in ~/.config/tweet-cli/.env (read by dotenv at runtime). Set chmod 600 to restrict access.\nNo postinstall scripts: The package has zero install scripts — verify via npm pack --dry-run or inspect package.json.\nNo telemetry or network calls except to the official X API (api.x.com) when you run a command.\nPinned install: The install command pins to a specific release tag. Audit the source at https://github.com/0xmythril/tweet-cli before installing.\nDependencies: Only 3 runtime deps — twitter-api-v2 (official X API client), commander (CLI parsing), dotenv (env file loading). No transitive dependencies.\nCommands\nVerify auth\ntweet-cli whoami\n\nPost a tweet\ntweet-cli post \"Your tweet text here\"\n\nReply to a tweet\ntweet-cli reply <tweet-id-or-url> \"Your reply text\"\ntweet-cli reply https://x.com/user/status/123456 \"Your reply text\"\n\nQuote a tweet\ntweet-cli quote <tweet-id-or-url> \"Your commentary\"\ntweet-cli quote https://x.com/user/status/123456 \"Your commentary\"\n\nDelete a tweet\ntweet-cli delete <tweet-id-or-url>\n\nImportant rules\nDo NOT post unless the user explicitly asks or a cron job triggers it. Each post uses API credits.\nAlways confirm with the user before posting, replying, or quoting. Show them the text first.\nFor reading tweets, searching, or viewing timelines, use bird (not tweet-cli).\ntweet-cli accepts both raw tweet IDs and full URLs (x.com or twitter.com).\nIf you get a 402 CreditsDepleted error, inform the user their monthly credits are exhausted."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/0xmythril/tweet-cli",
    "publisherUrl": "https://clawhub.ai/0xmythril/tweet-cli",
    "owner": "0xmythril",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/tweet-cli",
    "downloadUrl": "https://openagent3.xyz/downloads/tweet-cli",
    "agentUrl": "https://openagent3.xyz/skills/tweet-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tweet-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tweet-cli/agent.md"
  }
}