{
  "schemaVersion": "1.0",
  "item": {
    "slug": "torrentclaw",
    "name": "TorrentClaw",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/buryni/torrentclaw",
    "canonicalUrl": "https://clawhub.ai/buryni/torrentclaw",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/torrentclaw",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=torrentclaw",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "CONTRIBUTING.md",
      "README.md",
      "SKILL.md",
      "lefthook.yml",
      "references/api-reference.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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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/torrentclaw"
    },
    "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/torrentclaw",
    "agentPageUrl": "https://openagent3.xyz/skills/torrentclaw/agent",
    "manifestUrl": "https://openagent3.xyz/skills/torrentclaw/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/torrentclaw/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "TorrentClaw",
        "body": "Search movies and TV shows across multiple torrent sources with TMDB metadata enrichment. Detect local torrent clients and start downloads automatically."
      },
      {
        "title": "Base URL",
        "body": "https://torrentclaw.com"
      },
      {
        "title": "Workflow",
        "body": "Follow these steps when the user asks to find or download a torrent:"
      },
      {
        "title": "Step 1: Detect torrent clients",
        "body": "Run the detection script to check what's available on the user's system:\n\nbash \"$(dirname \"$0\")/scripts/detect-client.sh\"\n\nThe script outputs JSON with detected clients and OS info. Remember the result for Step 4."
      },
      {
        "title": "Step 2: Search for content",
        "body": "Query the TorrentClaw API. Always include the x-search-source: skill header for analytics. The API key is optional — anonymous usage allows 30 req/min, which is enough for casual searches. Only include the Authorization header if $TORRENTCLAW_API_KEY is set.\n\nImportant: Always use --data-urlencode for user-supplied values to prevent shell injection. Never interpolate user input directly into the URL string.\n\ncurl -s -G -H \"x-search-source: skill\" \\\n  --data-urlencode \"q=QUERY\" \\\n  -d \"sort=seeders\" -d \"limit=5\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\nIf the user has configured an API key for higher rate limits:\n\ncurl -s -G -H \"x-search-source: skill\" -H \"Authorization: Bearer $TORRENTCLAW_API_KEY\" \\\n  --data-urlencode \"q=QUERY\" \\\n  -d \"sort=seeders\" -d \"limit=5\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\nUseful filters (append as query params):\n\ntype=movie or type=show\nquality=1080p (also: 720p, 2160p, 480p)\ngenre=Action (see references/api-reference.md for full list)\nyear_min=2020&year_max=2025\nmin_rating=7\nlang=es (ISO 639 language code)\naudio=atmos (also: aac, flac, opus)\nhdr=dolby_vision (also: hdr10, hdr10plus, hlg)\nseason=1 — Filter by TV show season\nepisode=5 — Filter by episode number\nlocale=es — Get titles in Spanish (also: fr, de, pt, it, ja, ko, zh, ru, ar)\nsort=seeders (also: relevance, year, rating, added)"
      },
      {
        "title": "Step 3: Present results",
        "body": "Display results in a clear table format. For each content item show:\n\nTitle, year, content type\nIMDb rating (or TMDB rating as fallback)\nFor each torrent: quality, codec, size (human-readable), seeders\n\nExample format:\n\n1. Inception (2010) - Movie - IMDb: 8.8\n   a) 1080p BluRay x265 - 2.1 GB - 847 seeders\n   b) 2160p WEB-DL x265 HDR - 8.3 GB - 234 seeders\n   c) 720p BluRay x264 - 1.0 GB - 156 seeders\n\nAsk the user which torrent they want."
      },
      {
        "title": "Step 4: Handle download",
        "body": "Based on the detection from Step 1:\n\nIf a torrent client was detected:\nOffer to add the magnet link directly:\n\nbash \"$(dirname \"$0\")/scripts/add-torrent.sh\" \"MAGNET_URL\"\n\nOr with a specific client and download directory:\n\nbash \"$(dirname \"$0\")/scripts/add-torrent.sh\" \"MAGNET_URL\" --client transmission --download-dir ~/Downloads\n\nIf NO torrent client was detected:\nOffer these options:\n\nCopy magnet link — Give the user the full magnetUrl from the API response to copy\nDownload .torrent file — curl -o \"filename.torrent\" \"https://torrentclaw.com/api/v1/torrent/INFO_HASH\"\nInstall a client — Run the install guide script:\n\nbash \"$(dirname \"$0\")/scripts/install-guide.sh\" transmission\n\nRecommend Transmission for Linux/macOS (lightweight daemon, simple CLI) and aria2 as alternative (multi-protocol, no daemon needed)."
      },
      {
        "title": "Search — GET /api/v1/search",
        "body": "Main search endpoint. Required: q (query string).\n\nFilters: type (movie/show), genre, year_min, year_max, min_rating (0-10), quality (480p/720p/1080p/2160p), lang (ISO 639), audio (aac/flac/opus/atmos), hdr (hdr10/dolby_vision/hdr10plus/hlg).\n\nSorting: sort = relevance | seeders | year | rating | added\n\nPagination: page (1-1000), limit (1-50, default 20)\n\nResponse: { total, page, pageSize, results: [{ id, imdbId, tmdbId, contentType, title, year, overview, posterUrl, backdropUrl, genres, ratingImdb, ratingTmdb, contentUrl, hasTorrents, maxSeeders, torrents: [{ infoHash, magnetUrl, torrentUrl, quality, codec, sourceType, sizeBytes, seeders, leechers, source, qualityScore, scrapedAt, uploadedAt, languages, audioCodec, hdrType, releaseGroup, isProper, isRepack, isRemastered, season, episode }] }] }\n\nNew fields:\n\nhasTorrents (boolean) — Whether content has any associated torrents\nmaxSeeders (number) — Highest seeder count across all torrents for this content\nscrapedAt (string) — ISO timestamp of last tracker scrape for real-time seeder/leecher counts"
      },
      {
        "title": "Autocomplete — GET /api/v1/autocomplete",
        "body": "Fast typeahead. Param: q (min 2 chars). Returns max 8 suggestions."
      },
      {
        "title": "Popular — GET /api/v1/popular",
        "body": "Trending content by seeders. Params: limit (1-24, default 12), page."
      },
      {
        "title": "Recent — GET /api/v1/recent",
        "body": "Recently added content. Params: limit (1-24, default 12), page."
      },
      {
        "title": "Torrent File — GET /api/v1/torrent/{infoHash}",
        "body": "Download .torrent file by 40-char hex info hash. Returns binary application/x-bittorrent."
      },
      {
        "title": "Stats — GET /api/v1/stats",
        "body": "Content/torrent counts and recent ingestion history. No params."
      },
      {
        "title": "Credits — GET /api/v1/content/{id}/credits",
        "body": "Director and top 10 cast members with character names.\n\nParams: id (path, required — content ID from search)\n\nResponse: { contentId, director: \"name\", cast: [{ name, character, profileUrl }] }\n\nUsage: Show cast info when the user asks \"who's in this movie?\" or wants details about a search result."
      },
      {
        "title": "Track — POST /api/v1/track",
        "body": "Record user interactions for popularity ranking. Call this after the user selects a torrent.\n\nRequest body (JSON):\n\n{\"infoHash\": \"40-char hex\", \"action\": \"magnet|torrent_download|copy\"}\n\nResponse: {\"ok\": true}"
      },
      {
        "title": "Search Analytics — GET /api/v1/search-analytics",
        "body": "Search volume, top queries, and zero-result queries by period. Requires API key with pro tier.\n\nParams: days (1-90, default 7), limit (1-100, default 20)\n\nResponse: { period, summary, topQueries, zeroResultQueries, dailyVolume }"
      },
      {
        "title": "Season & Episode Search",
        "body": "TorrentClaw supports smart episode filtering with multiple formats:\n\nSupported formats:\n\nS01E05 (standard format)\n1x05 (alternative format)\n1x05-1x08 (episode ranges)\nSeason 1 Episode 5 (natural language)\n\nUsage:\n\nIn query text (automatic parsing):\n\ncurl -s -G --data-urlencode \"q=breaking bad S05E14\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\nWith explicit parameters:\n\ncurl -s -G --data-urlencode \"q=breaking bad\" \\\n  -d \"season=5\" -d \"episode=14\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\nThe API automatically detects episode patterns in queries and filters results accordingly."
      },
      {
        "title": "API Authentication",
        "body": "The API works without authentication (30 req/min anonymous tier). An API key is only needed if you require higher rate limits for heavy or automated usage.\n\nRate Limit Tiers:\n\nTierRequests/minRequests/dayAuthenticationAnonymous30UnlimitedNoneFree1201,000API key requiredPro1,00010,000API key requiredInternalUnlimitedUnlimitedAPI key required\n\nUsing an API key:\n\nAlways use the $TORRENTCLAW_API_KEY environment variable via the Authorization header. Avoid passing the key as a query parameter — query strings may be logged in server access logs and HTTP referrer headers.\n\ncurl -s -G -H \"Authorization: Bearer $TORRENTCLAW_API_KEY\" \\\n  --data-urlencode \"q=dune\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\nRate limit headers in response:\n\nX-RateLimit-Tier - Your current tier (anonymous/free/pro/internal)\nX-RateLimit-Remaining - Requests remaining in current window\n\nGetting an API key:\nContact via https://torrentclaw.com/contact or https://torrentclaw.com/api/v1/contact"
      },
      {
        "title": "MCP Server Integration",
        "body": "For users of Claude Desktop, Cursor, or Windsurf, TorrentClaw is also available as an MCP (Model Context Protocol) server:\n\nnpx @torrentclaw/mcp\n\nMCP vs Skill:\n\nSkill (this file): For OpenClaw, Claude Code, Cline, Roo Code — natural language interface\nMCP Server: For Claude Desktop, Cursor, Windsurf — structured tools interface\nBoth use the same TorrentClaw API backend\n\nSee https://torrentclaw.com/mcp for MCP installation and usage."
      },
      {
        "title": "Common Patterns",
        "body": "Find best quality torrent for a movie:\nSearch with sort=seeders, pick the torrent with highest qualityScore.\n\nFind 4K content:\nUse quality=2160p filter.\n\nBrowse Spanish-language torrents:\nUse lang=es filter.\n\nSearch for a specific TV episode:\n\ncurl -s -G --data-urlencode \"q=entrevias S01E05\" \\\n  -d \"locale=es\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\nSearch with API key for higher rate limits:\n\ncurl -s -G -H \"Authorization: Bearer $TORRENTCLAW_API_KEY\" \\\n  --data-urlencode \"q=dune\" \\\n  -d \"quality=2160p\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\nFind popular sci-fi movies:\n\ncurl -s -G --data-urlencode \"genre=Science Fiction\" \\\n  -d \"type=movie\" -d \"sort=seeders\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\nFind Dolby Vision / HDR content:\n\ncurl -s -G --data-urlencode \"q=dune\" \\\n  -d \"hdr=dolby_vision\" -d \"quality=2160p\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\nFind Atmos audio torrents:\n\ncurl -s -G --data-urlencode \"q=oppenheimer\" \\\n  -d \"audio=atmos\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\nGet cast info for a movie:\n\ncurl \"https://torrentclaw.com/api/v1/content/42/credits\"\n\nTrack torrent selection (call after user picks a torrent):\n\ncurl -X POST -H \"Content-Type: application/json\" \\\n  -d '{\"infoHash\":\"aaf1e71c...\",\"action\":\"magnet\"}' \\\n  \"https://torrentclaw.com/api/v1/track\""
      },
      {
        "title": "Troubleshooting",
        "body": "Scripts not executable: Run chmod +x scripts/*.sh in the skill directory.\n\nTransmission not detected but installed: Ensure transmission-remote is in PATH. On some systems the package is transmission-cli.\n\naria2 starts but exits immediately: aria2c in direct mode downloads to current directory. Use --download-dir flag or --daemon mode.\n\nNo torrent client detected: Run bash scripts/install-guide.sh transmission to see installation instructions for your OS (Linux, macOS, Windows/WSL).\n\nAPI key not working:\n\nVerify the key format: tc_live_ followed by 32 hex characters\nCheck the Authorization: Bearer <key> header is correct\nEnsure the key hasn't expired (contact support if needed)\nCheck X-RateLimit-Tier header in responses to confirm tier\n\nRate limits:\n\nAnonymous: 30 req/min (no auth)\nFree tier: 120 req/min, 1K/day (with API key)\nPro tier: 1K req/min, 10K/day (with API key)\nIf you get 429, wait a moment or use an API key for higher limits\n\nWindows users: Scripts require bash. Use WSL (Windows Subsystem for Linux) or Git Bash."
      },
      {
        "title": "Links",
        "body": "Website: https://torrentclaw.com\nGitHub: https://github.com/torrentclaw/torrentclaw-skill\nOpenAPI Spec: https://torrentclaw.com/api/openapi.json\nSwagger UI: https://torrentclaw.com/api/docs\nMCP Server: https://torrentclaw.com/mcp\nllms.txt: https://torrentclaw.com/llms.txt"
      }
    ],
    "body": "TorrentClaw\n\nSearch movies and TV shows across multiple torrent sources with TMDB metadata enrichment. Detect local torrent clients and start downloads automatically.\n\nBase URL\nhttps://torrentclaw.com\n\nWorkflow\n\nFollow these steps when the user asks to find or download a torrent:\n\nStep 1: Detect torrent clients\n\nRun the detection script to check what's available on the user's system:\n\nbash \"$(dirname \"$0\")/scripts/detect-client.sh\"\n\n\nThe script outputs JSON with detected clients and OS info. Remember the result for Step 4.\n\nStep 2: Search for content\n\nQuery the TorrentClaw API. Always include the x-search-source: skill header for analytics. The API key is optional — anonymous usage allows 30 req/min, which is enough for casual searches. Only include the Authorization header if $TORRENTCLAW_API_KEY is set.\n\nImportant: Always use --data-urlencode for user-supplied values to prevent shell injection. Never interpolate user input directly into the URL string.\n\ncurl -s -G -H \"x-search-source: skill\" \\\n  --data-urlencode \"q=QUERY\" \\\n  -d \"sort=seeders\" -d \"limit=5\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\n\nIf the user has configured an API key for higher rate limits:\n\ncurl -s -G -H \"x-search-source: skill\" -H \"Authorization: Bearer $TORRENTCLAW_API_KEY\" \\\n  --data-urlencode \"q=QUERY\" \\\n  -d \"sort=seeders\" -d \"limit=5\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\n\nUseful filters (append as query params):\n\ntype=movie or type=show\nquality=1080p (also: 720p, 2160p, 480p)\ngenre=Action (see references/api-reference.md for full list)\nyear_min=2020&year_max=2025\nmin_rating=7\nlang=es (ISO 639 language code)\naudio=atmos (also: aac, flac, opus)\nhdr=dolby_vision (also: hdr10, hdr10plus, hlg)\nseason=1 — Filter by TV show season\nepisode=5 — Filter by episode number\nlocale=es — Get titles in Spanish (also: fr, de, pt, it, ja, ko, zh, ru, ar)\nsort=seeders (also: relevance, year, rating, added)\nStep 3: Present results\n\nDisplay results in a clear table format. For each content item show:\n\nTitle, year, content type\nIMDb rating (or TMDB rating as fallback)\nFor each torrent: quality, codec, size (human-readable), seeders\n\nExample format:\n\n1. Inception (2010) - Movie - IMDb: 8.8\n   a) 1080p BluRay x265 - 2.1 GB - 847 seeders\n   b) 2160p WEB-DL x265 HDR - 8.3 GB - 234 seeders\n   c) 720p BluRay x264 - 1.0 GB - 156 seeders\n\n\nAsk the user which torrent they want.\n\nStep 4: Handle download\n\nBased on the detection from Step 1:\n\nIf a torrent client was detected: Offer to add the magnet link directly:\n\nbash \"$(dirname \"$0\")/scripts/add-torrent.sh\" \"MAGNET_URL\"\n\n\nOr with a specific client and download directory:\n\nbash \"$(dirname \"$0\")/scripts/add-torrent.sh\" \"MAGNET_URL\" --client transmission --download-dir ~/Downloads\n\n\nIf NO torrent client was detected: Offer these options:\n\nCopy magnet link — Give the user the full magnetUrl from the API response to copy\nDownload .torrent file — curl -o \"filename.torrent\" \"https://torrentclaw.com/api/v1/torrent/INFO_HASH\"\nInstall a client — Run the install guide script:\nbash \"$(dirname \"$0\")/scripts/install-guide.sh\" transmission\n\n\nRecommend Transmission for Linux/macOS (lightweight daemon, simple CLI) and aria2 as alternative (multi-protocol, no daemon needed).\n\nEndpoints\nSearch — GET /api/v1/search\n\nMain search endpoint. Required: q (query string).\n\nFilters: type (movie/show), genre, year_min, year_max, min_rating (0-10), quality (480p/720p/1080p/2160p), lang (ISO 639), audio (aac/flac/opus/atmos), hdr (hdr10/dolby_vision/hdr10plus/hlg).\n\nSorting: sort = relevance | seeders | year | rating | added\n\nPagination: page (1-1000), limit (1-50, default 20)\n\nResponse: { total, page, pageSize, results: [{ id, imdbId, tmdbId, contentType, title, year, overview, posterUrl, backdropUrl, genres, ratingImdb, ratingTmdb, contentUrl, hasTorrents, maxSeeders, torrents: [{ infoHash, magnetUrl, torrentUrl, quality, codec, sourceType, sizeBytes, seeders, leechers, source, qualityScore, scrapedAt, uploadedAt, languages, audioCodec, hdrType, releaseGroup, isProper, isRepack, isRemastered, season, episode }] }] }\n\nNew fields:\n\nhasTorrents (boolean) — Whether content has any associated torrents\nmaxSeeders (number) — Highest seeder count across all torrents for this content\nscrapedAt (string) — ISO timestamp of last tracker scrape for real-time seeder/leecher counts\nAutocomplete — GET /api/v1/autocomplete\n\nFast typeahead. Param: q (min 2 chars). Returns max 8 suggestions.\n\nPopular — GET /api/v1/popular\n\nTrending content by seeders. Params: limit (1-24, default 12), page.\n\nRecent — GET /api/v1/recent\n\nRecently added content. Params: limit (1-24, default 12), page.\n\nTorrent File — GET /api/v1/torrent/{infoHash}\n\nDownload .torrent file by 40-char hex info hash. Returns binary application/x-bittorrent.\n\nStats — GET /api/v1/stats\n\nContent/torrent counts and recent ingestion history. No params.\n\nCredits — GET /api/v1/content/{id}/credits\n\nDirector and top 10 cast members with character names.\n\nParams: id (path, required — content ID from search)\n\nResponse: { contentId, director: \"name\", cast: [{ name, character, profileUrl }] }\n\nUsage: Show cast info when the user asks \"who's in this movie?\" or wants details about a search result.\n\nTrack — POST /api/v1/track\n\nRecord user interactions for popularity ranking. Call this after the user selects a torrent.\n\nRequest body (JSON):\n\n{\"infoHash\": \"40-char hex\", \"action\": \"magnet|torrent_download|copy\"}\n\n\nResponse: {\"ok\": true}\n\nSearch Analytics — GET /api/v1/search-analytics\n\nSearch volume, top queries, and zero-result queries by period. Requires API key with pro tier.\n\nParams: days (1-90, default 7), limit (1-100, default 20)\n\nResponse: { period, summary, topQueries, zeroResultQueries, dailyVolume }\n\nSeason & Episode Search\n\nTorrentClaw supports smart episode filtering with multiple formats:\n\nSupported formats:\n\nS01E05 (standard format)\n1x05 (alternative format)\n1x05-1x08 (episode ranges)\nSeason 1 Episode 5 (natural language)\n\nUsage:\n\nIn query text (automatic parsing):\ncurl -s -G --data-urlencode \"q=breaking bad S05E14\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\nWith explicit parameters:\ncurl -s -G --data-urlencode \"q=breaking bad\" \\\n  -d \"season=5\" -d \"episode=14\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\n\nThe API automatically detects episode patterns in queries and filters results accordingly.\n\nAPI Authentication\n\nThe API works without authentication (30 req/min anonymous tier). An API key is only needed if you require higher rate limits for heavy or automated usage.\n\nRate Limit Tiers:\n\nTier\tRequests/min\tRequests/day\tAuthentication\nAnonymous\t30\tUnlimited\tNone\nFree\t120\t1,000\tAPI key required\nPro\t1,000\t10,000\tAPI key required\nInternal\tUnlimited\tUnlimited\tAPI key required\n\nUsing an API key:\n\nAlways use the $TORRENTCLAW_API_KEY environment variable via the Authorization header. Avoid passing the key as a query parameter — query strings may be logged in server access logs and HTTP referrer headers.\n\ncurl -s -G -H \"Authorization: Bearer $TORRENTCLAW_API_KEY\" \\\n  --data-urlencode \"q=dune\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\n\nRate limit headers in response:\n\nX-RateLimit-Tier - Your current tier (anonymous/free/pro/internal)\nX-RateLimit-Remaining - Requests remaining in current window\n\nGetting an API key: Contact via https://torrentclaw.com/contact or https://torrentclaw.com/api/v1/contact\n\nMCP Server Integration\n\nFor users of Claude Desktop, Cursor, or Windsurf, TorrentClaw is also available as an MCP (Model Context Protocol) server:\n\nnpx @torrentclaw/mcp\n\n\nMCP vs Skill:\n\nSkill (this file): For OpenClaw, Claude Code, Cline, Roo Code — natural language interface\nMCP Server: For Claude Desktop, Cursor, Windsurf — structured tools interface\nBoth use the same TorrentClaw API backend\n\nSee https://torrentclaw.com/mcp for MCP installation and usage.\n\nCommon Patterns\n\nFind best quality torrent for a movie: Search with sort=seeders, pick the torrent with highest qualityScore.\n\nFind 4K content: Use quality=2160p filter.\n\nBrowse Spanish-language torrents: Use lang=es filter.\n\nSearch for a specific TV episode:\n\ncurl -s -G --data-urlencode \"q=entrevias S01E05\" \\\n  -d \"locale=es\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\n\nSearch with API key for higher rate limits:\n\ncurl -s -G -H \"Authorization: Bearer $TORRENTCLAW_API_KEY\" \\\n  --data-urlencode \"q=dune\" \\\n  -d \"quality=2160p\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\n\nFind popular sci-fi movies:\n\ncurl -s -G --data-urlencode \"genre=Science Fiction\" \\\n  -d \"type=movie\" -d \"sort=seeders\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\n\nFind Dolby Vision / HDR content:\n\ncurl -s -G --data-urlencode \"q=dune\" \\\n  -d \"hdr=dolby_vision\" -d \"quality=2160p\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\n\nFind Atmos audio torrents:\n\ncurl -s -G --data-urlencode \"q=oppenheimer\" \\\n  -d \"audio=atmos\" \\\n  \"https://torrentclaw.com/api/v1/search\"\n\n\nGet cast info for a movie:\n\ncurl \"https://torrentclaw.com/api/v1/content/42/credits\"\n\n\nTrack torrent selection (call after user picks a torrent):\n\ncurl -X POST -H \"Content-Type: application/json\" \\\n  -d '{\"infoHash\":\"aaf1e71c...\",\"action\":\"magnet\"}' \\\n  \"https://torrentclaw.com/api/v1/track\"\n\nTroubleshooting\n\nScripts not executable: Run chmod +x scripts/*.sh in the skill directory.\n\nTransmission not detected but installed: Ensure transmission-remote is in PATH. On some systems the package is transmission-cli.\n\naria2 starts but exits immediately: aria2c in direct mode downloads to current directory. Use --download-dir flag or --daemon mode.\n\nNo torrent client detected: Run bash scripts/install-guide.sh transmission to see installation instructions for your OS (Linux, macOS, Windows/WSL).\n\nAPI key not working:\n\nVerify the key format: tc_live_ followed by 32 hex characters\nCheck the Authorization: Bearer <key> header is correct\nEnsure the key hasn't expired (contact support if needed)\nCheck X-RateLimit-Tier header in responses to confirm tier\n\nRate limits:\n\nAnonymous: 30 req/min (no auth)\nFree tier: 120 req/min, 1K/day (with API key)\nPro tier: 1K req/min, 10K/day (with API key)\nIf you get 429, wait a moment or use an API key for higher limits\n\nWindows users: Scripts require bash. Use WSL (Windows Subsystem for Linux) or Git Bash.\n\nLinks\nWebsite: https://torrentclaw.com\nGitHub: https://github.com/torrentclaw/torrentclaw-skill\nOpenAPI Spec: https://torrentclaw.com/api/openapi.json\nSwagger UI: https://torrentclaw.com/api/docs\nMCP Server: https://torrentclaw.com/mcp\nllms.txt: https://torrentclaw.com/llms.txt"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/buryni/torrentclaw",
    "publisherUrl": "https://clawhub.ai/buryni/torrentclaw",
    "owner": "buryni",
    "version": "0.1.17",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/torrentclaw",
    "downloadUrl": "https://openagent3.xyz/downloads/torrentclaw",
    "agentUrl": "https://openagent3.xyz/skills/torrentclaw/agent",
    "manifestUrl": "https://openagent3.xyz/skills/torrentclaw/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/torrentclaw/agent.md"
  }
}