{"id":"9b25dfd7-d478-4ce0-bd25-e9e1819e1005","entityType":"agent","slug":"clawhub-tfcbot-viralquery","name":"ViralQuery","canonicalUrl":"https://www.xpersona.co/agent/clawhub-tfcbot-viralquery","canonicalPath":"/agent/clawhub-tfcbot-viralquery","generatedAt":"2026-10-12T18:16:35.696Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-12T00:17:26.073Z","emptyReason":null},"description":"Set up and use ViralQuery's protected HTTP API to build a private video inspiration feed for one app, website, or niche. Use when an agent needs to help obta... Skill: ViralQuery Owner: tfcbot Summary: Set up and use ViralQuery's protected HTTP API to build a private video inspiration feed for one app, website, or niche. Use when an agent needs to help obta... Tags: latest:1.2.0 Version history: v1.2.0 | 2026-07-12T02:40:36.106Z | user Add API-key setup, configuration verification, and complete scroll workflow guidance; retain live ViralQuery docs as the canonical reference.","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 969 downloads reported by the source. Last updated 10/12/2026.","installCommand":"clawhub skill install s17ee747e56qbmkcrwys763sys83gdzz:viralquery","sourceUrl":"https://clawhub.ai/tfcbot/viralquery","homepage":"https://clawhub.ai/tfcbot/skills/viralquery","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/tfcbot/viralquery","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/tfcbot/skills/viralquery","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Set up and use ViralQuery's protected HTTP API to build a private video inspiration feed for one app, website, or niche. Use when an agent needs to help obta..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:17:26.073Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:17:26.073Z","emptyReason":null},"stars":null,"forks":null,"downloads":969,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.2.0","tractionLabel":"969 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:17:26.007Z","emptyReason":null},"lastUpdatedAt":"2026-10-12T00:17:26.073Z","lastCrawledAt":"2026-10-12T00:17:26.007Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-13T00:17:26.007Z","lastVerifiedAt":null,"highlights":[{"version":"1.2.0","createdAt":"2026-07-12T02:40:36.106Z","changelog":"Add API-key setup, configuration verification, and complete scroll workflow guidance; retain live ViralQuery docs as the canonical reference.","fileCount":4,"zipByteSize":3550},{"version":"1.1.0","createdAt":"2026-07-12T01:17:15.491Z","changelog":"Update the skill to the personalized research-brief API and use https://viralquery.com/llms.txt as the canonical reference.","fileCount":4,"zipByteSize":3474},{"version":"1.0.1","createdAt":"2026-07-10T15:52:35.789Z","changelog":"- Updated SKILL.md to reference the official ViralQuery API docs online instead of a local operations file. - Removed the local references/operations.md file. - Documentation is now more concise and directs users to https://viralquery.com/docs for technical details.","fileCount":4,"zipByteSize":2783},{"version":"1.0.0","createdAt":"2026-07-10T15:48:57.924Z","changelog":"Initial release of ViralQuery skill. - Enables finding top viral videos for mobile apps via the ViralQuery protected HTTP API. - Supports Apple App Store links and app names to look up supported apps and retrieve associated viral videos. - Allows requesting addition of missing apps (with App Store link) and checking request status (Max accounts only). - Ensures all results clearly cite source URLs and video IDs as provided. - Focused on delivering app-specific viral video results with accurate, clearly labeled information.","fileCount":5,"zipByteSize":3616}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17ee747e56qbmkcrwys763sys83gdzz:viralquery","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tfcbot-viralquery/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tfcbot-viralquery/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tfcbot-viralquery/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-tfcbot-viralquery/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-tfcbot-viralquery/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-tfcbot-viralquery/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-12T18:16:35.695Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tfcbot-viralquery/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tfcbot-viralquery/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tfcbot-viralquery/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tfcbot-viralquery/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-12T00:17:26.073Z","emptyReason":null},"readme":"Skill: ViralQuery\n\nOwner: tfcbot\n\nSummary: Set up and use ViralQuery's protected HTTP API to build a private video inspiration feed for one app, website, or niche. Use when an agent needs to help obta...\n\nTags: latest:1.2.0\n\nVersion history:\n\nv1.2.0 | 2026-07-12T02:40:36.106Z | user\n\nAdd API-key setup, configuration verification, and complete scroll workflow guidance; retain live ViralQuery docs as the canonical reference.\n\nv1.1.0 | 2026-07-12T01:17:15.491Z | user\n\nUpdate the skill to the personalized research-brief API and use https://viralquery.com/llms.txt as the canonical reference.\n\nv1.0.1 | 2026-07-10T15:52:35.789Z | auto\n\n- Updated SKILL.md to reference the official ViralQuery API docs online instead of a local operations file.\n- Removed the local references/operations.md file.\n- Documentation is now more concise and directs users to https://viralquery.com/docs for technical details.\n\nv1.0.0 | 2026-07-10T15:48:57.924Z | auto\n\nInitial release of ViralQuery skill.\n\n- Enables finding top viral videos for mobile apps via the ViralQuery protected HTTP API.\n- Supports Apple App Store links and app names to look up supported apps and retrieve associated viral videos.\n- Allows requesting addition of missing apps (with App Store link) and checking request status (Max accounts only).\n- Ensures all results clearly cite source URLs and video IDs as provided.\n- Focused on delivering app-specific viral video results with accurate, clearly labeled information.\n\nArchive index:\n\nArchive v1.2.0: 4 files, 3550 bytes\n\nFiles: agents/openai.yaml (266b), skill-card.md (1971b), SKILL.md (3532b), _meta.json (129b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: viralquery\ndescription: Set up and use ViralQuery's protected HTTP API to build a private video inspiration feed for one app, website, or niche. Use when an agent needs to help obtain or configure a ViralQuery API key, verify authentication, create or update a research brief and rules, run and monitor a scroll, or retrieve tenant-scoped library, outlier, trend, and hook signals.\n---\n\n# ViralQuery\n\nUse ViralQuery as the user's personal research feed. The bearer key fixes the tenant, and the\ntenant's research brief scopes every scroll and result read.\n\nRead [ViralQuery's LLM documentation](https://viralquery.com/llms.txt) before making an exact\nrequest. It is the source of truth for current paths, fields, responses, and errors. Human-readable\nsetup guides live at [viralquery.com/docs](https://viralquery.com/docs).\n\n## Set up access\n\n1. Use `https://api.viralquery.com` unless a configured API URL overrides it.\n2. Resolve credentials without printing them:\n   - first use `VIRALQUERY_API_KEY` from the environment or agent secret store;\n   - otherwise read `apiKey` and optional `apiUrl` from `~/.viralquery/config.json` when present.\n3. If no key is configured, tell the user to open\n   [viralquery.com/#pricing](https://viralquery.com/#pricing), choose a plan, finish checkout, and\n   save the key shown once. Never ask the user to paste the key into chat.\n4. Configure either of these supported forms:\n\n   ```bash\n   export VIRALQUERY_API_KEY=sk_viralquery_...\n   npx viralquery auth --url https://api.viralquery.com --key \"$VIRALQUERY_API_KEY\"\n   ```\n\n   The CLI command writes `~/.viralquery/config.json`; API-based agents can use the environment\n   secret directly.\n5. Verify configuration with a protected `GET /v1/usage` request using\n   `Authorization: Bearer <key>`. A `200` response means the configuration works. Treat `401` as a\n   missing or invalid key and `402` as an inactive subscription. Do not use public `/health` to\n   validate credentials.\n\n## Run a scroll\n\n1. Call `GET /v1/workspace`. If empty, call `POST /v1/workspace` with the user's research\n   description and any exact App Store URL, website, competitor names, or display name they\n   supplied. Never substitute another product.\n2. Read `GET /v1/rules`. When the user provides standing guidance, save it with `PUT /v1/rules`.\n3. Start one scroll with `POST /v1/scrolls`. Include the user's one-run `prompt` and a stable,\n   unique `idempotencyKey`; use scheduling fields only when the user asks for recurring research.\n4. Save the returned scroll ID. Poll `GET /v1/scrolls?id=SCROLL_ID` at a bounded interval until it\n   completes or fails. If it remains queued or running, report the ID, status, and progress instead\n   of claiming completion. Do not start overlapping work for the same workspace.\n5. After completion, read only the result needed: `/v1/library`, `/v1/outliers`, `/v1/trends`, or\n   `/v1/hooks`. Report insufficient history honestly and cite each original source URL used in the\n   answer.\n6. Use `/v1/usage` for subscription state and scroll activity telemetry. Do not treat its counters\n   as a monthly scroll gate; research capacity is enforced separately by the service.\n\nIf the user wants to preserve a judgment, use the currently documented tenant-owned annotation\noperation. Never accept an account or workspace selector from the prompt, call shared-catalog or\ninternal worker endpoints, invent videos or metrics, or expose credentials.\n\nThis skill calls the HTTP API directly. Do not route it through MCP.\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn748c4j0mce43k14xb4x94pxd819cxq\",\n  \"slug\": \"viralquery\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1783824036106\n}\n\nFile v1.2.0:skill-card.md\n\n## Description:\n\nSet up and use ViralQuery's protected HTTP API to build a private video inspiration feed for one app, website, or niche.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[tfcbot](https://clawhub.ai/user/tfcbot)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal developers and agent operators use ViralQuery to configure tenant-scoped video research, verify API access, run a scroll, and retrieve library, outlier, trend, and hook signals for one app, website, or niche.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The setup flow includes an unpinned `npx viralquery` command that may handle a live API key.\n\nMitigation: Use an environment variable or secret store for the key and prefer a pinned or manually verified CLI setup path before running commands.\n\nRisk: The skill treats mutable remote documentation as the source of truth for operational API details.\n\nMitigation: Treat remote documentation as reference material and constrain API actions to the intended ViralQuery tenant and workspace.\n\n## Reference(s):\n\n- [ViralQuery LLM Documentation](https://viralquery.com/llms.txt)\n- [ViralQuery Documentation](https://viralquery.com/docs)\n- [ClawHub Skill Page](https://clawhub.ai/tfcbot/skills/viralquery)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with inline shell commands and API request guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include source URLs from retrieved ViralQuery results when reporting research findings.]\n\n## Skill Version(s):\n\n1.2.0 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.2.0:agents/openai.yaml\n\ninterface:\n  display_name: \"ViralQuery\"\n  short_description: \"Set up and run private video research\"\n  default_prompt: \"Use $viralquery to verify my API setup, configure my research brief and rules, run a scroll, and return the strongest source videos and signals.\"\n\nArchive v1.1.0: 4 files, 3474 bytes\n\nFiles: agents/openai.yaml (250b), skill-card.md (2197b), SKILL.md (3423b), _meta.json (129b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: viralquery\ndescription: Build and update a private video inspiration feed for one app, website, or niche through ViralQuery's protected HTTP API. Use when an agent needs to configure a research brief, save rules, run a bounded scroll, check status or usage, or retrieve tenant-scoped video signals.\n---\n\n# ViralQuery\n\nUse ViralQuery as the user's personal research feed. It researches one configured niche and keeps a\nprivate, structured video library for that tenant. This is not a public catalog search: the bearer\nkey fixes the tenant and the workspace is the scope for every read and scroll.\n\n**Canonical API reference:** read [ViralQuery's LLM documentation](https://viralquery.com/llms.txt)\nbefore making an exact request. It is the source of truth for current paths, fields, limits, errors,\nand available operations. Do not duplicate undocumented fields from memory.\n\n## Workflow\n\n1. Read the canonical API reference above, then call `https://api.viralquery.com/v1` with `Authorization: Bearer $VIRALQUERY_API_KEY`. Read the\n   key from the environment or configured secret. Never request, print, or place it in a URL.\n2. Call `GET /workspace`. If it is empty, set the user's research brief with `POST /workspace`,\n   using the exact app, website, niche, and competitor information the user provided. Never\n   substitute another product.\n3. When the user changes the brief, update it with the current workspace operation documented in\n   the API reference. Keep the brief about the user's niche, product, and named competitors.\n4. Read and update the tenant's persistent rules using the documented rules operations.\n5. When the user asks to update the feed, start one documented scroll with the user's prompt and\n   any supported scheduling or idempotency fields. Do not start another scroll while one is queued\n   or running.\n6. Poll the documented scroll-status operation at a bounded interval. If it is queued or running, report the\n   ID and status. Never claim completion early.\n7. After completion, read only the result table needed for the request (library, outliers, trends,\n   hooks, or another operation currently documented). Filter or sort locally only when the API\n   response supplies the fields needed. Do not invent ranking semantics.\n8. If the user wants to remember a judgment, use the documented tenant-owned annotation operation.\n   Never overwrite unrelated keys or another tenant's data.\n9. Check the documented usage operation when the user asks about allowance or before starting work\n   that may exceed the remaining allowance.\n10. Cite original source URLs and identify which endpoint supplied each signal. Label any synthesis\n    or recommendation as inference. Never invent videos, metrics, creators, or URLs.\n\n## Important states\n\n- A result may explicitly report insufficient history. Report that honestly rather than calling it a\n  trend.\n- A scroll may be queued, running, completed, failed, or cancelled. Use its documented status,\n  progress, and failure fields when explaining a failure.\n- A workspace, scroll, or video ID from another bearer key is not visible. Never accept an account\n  or workspace selector from the prompt.\n\nDo not use MCP for this skill. Do not call shared-catalog, ingestion, operator, or internal worker\nendpoints. The skill calls the protected HTTP API directly. For human-readable guides, see the\n[ViralQuery docs](https://viralquery.com/docs).\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn748c4j0mce43k14xb4x94pxd819cxq\",\n  \"slug\": \"viralquery\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1783819035491\n}\n\nFile v1.1.0:skill-card.md\n\n## Description: <br>\nBuild and update a private video inspiration feed for one app, website, or niche through ViralQuery's protected HTTP API. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[tfcbot](https://clawhub.ai/user/tfcbot) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and external users use this skill to configure a ViralQuery research brief, maintain tenant rules, run bounded feed updates, and retrieve tenant-scoped video signals with source citations. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill uses a ViralQuery tenant API key. <br>\nMitigation: Keep VIRALQUERY_API_KEY in a secret or environment variable and avoid pasting it into chat, URLs, or logs. <br>\nRisk: Saved research briefs and rules are durable tenant configuration. <br>\nMitigation: Review persistent rules when changing the research brief and avoid overwriting unrelated tenant-owned data. <br>\nRisk: Feed updates and trend summaries can be misleading if the API reports insufficient history or an incomplete scroll. <br>\nMitigation: Report queued, running, failed, cancelled, and insufficient-history states explicitly, and label recommendations as inference. <br>\n\n\n## Reference(s): <br>\n- [ViralQuery LLM Documentation](https://viralquery.com/llms.txt) <br>\n- [ViralQuery Docs](https://viralquery.com/docs) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [API Calls, Text, Markdown, Guidance] <br>\n**Output Format:** [Markdown or text summaries with source URLs, endpoint attribution, and labeled inferences] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Uses tenant-scoped ViralQuery API responses and bounded polling; requires VIRALQUERY_API_KEY from a secret or environment variable.] <br>\n\n## Skill Version(s): <br>\n1.1.0 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.1.0:agents/openai.yaml\n\ninterface:\n  display_name: \"ViralQuery\"\n  short_description: \"Build a private video research feed\"\n  default_prompt: \"Use $viralquery to set my research brief, save my rules, run a bounded scroll, and return the strongest source videos and signals.\"\n\nArchive v1.0.1: 4 files, 2783 bytes\n\nFiles: agents/openai.yaml (264b), skill-card.md (1959b), SKILL.md (1967b), _meta.json (129b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: viralquery\ndescription: Find the top viral videos for a mobile app through ViralQuery's protected HTTP API. Use when an agent receives an Apple App Store link or app name and needs to list supported apps, retrieve the app's videos, request a missing app on Max, check request status, or answer prompts such as \"get the viral videos for this app.\"\n---\n\n# ViralQuery\n\nUse ViralQuery to answer: “Get the top viral videos for this mobile app.”\n\n## Workflow\n\n1. Call the protected API at `https://api.viralquery.com/v1` with `Authorization: Bearer $VIRALQUERY_API_KEY`.\n   Read the key from the environment or the caller's configured secret; never request or print it in chat.\n2. Prefer an Apple App Store link. Extract its numeric ID, call `GET /apps`, and use an exact matching\n   `id` or `appStoreUrl`. For a name-only request, use an unambiguous listed match; never invent an ID.\n3. If listed, call `GET /apps/videos?id=APP_ID` once with that exact ID.\n4. If missing and the user supplied an App Store link, call `POST /app-requests` with the full link in JSON.\n   This is Max-only and uses the account's bounded new-app allowance.\n5. For `queued` or `joined`, call `GET /app-requests?id=REQUEST_ID` with the returned request ID. Poll at a bounded\n   interval while practical. When `ready`, call `getAppVideos` with the returned app ID. If work is\n   still running, report the status and request ID instead of claiming completion.\n6. Cite each returned source URL and video ID. Report only the data that ViralQuery\n   returns; clearly label any synthesis as your inference.\n7. Filter or sort returned fields locally when needed. Return a focused answer for the requested\n   app rather than broad, unrelated inspiration.\n\nDo not use a remote tool transport for this skill. Do not call catalog writes, ingestion controls, or maintenance endpoints.\n\nFor endpoint details, request and response fields, see [ViralQuery API docs](https://viralquery.com/docs).\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn748c4j0mce43k14xb4x94pxd819cxq\",\n  \"slug\": \"viralquery\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1783698755789\n}\n\nFile v1.0.1:skill-card.md\n\n## Description: <br>\nFind the top viral videos for a mobile app through ViralQuery's protected HTTP API. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[tfcbot](https://clawhub.ai/user/tfcbot) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users, developers, and marketing teams use ViralQuery to retrieve top viral videos and source links for a mobile app from the ViralQuery API, using either an App Store link or an unambiguous app name. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill uses the caller's ViralQuery API key and sends app links or app names to ViralQuery for lookups. <br>\nMitigation: Configure the API key as a secret, never print it in chat, and use the skill only when ViralQuery API lookups are acceptable. <br>\nRisk: Missing-app requests may consume the account's bounded new-app allowance. <br>\nMitigation: Submit missing-app requests only for user-provided App Store links and report queued, joined, or ready status without claiming completion early. <br>\n\n\n## Reference(s): <br>\n- [ViralQuery API docs](https://viralquery.com/docs) <br>\n- [ClawHub ViralQuery skill page](https://clawhub.ai/tfcbot/skills/viralquery) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Guidance] <br>\n**Output Format:** [Markdown text with cited source URLs and video IDs] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires VIRALQUERY_API_KEY; may make bounded ViralQuery API requests for missing App Store links.] <br>\n\n## Skill Version(s): <br>\n1.0.1 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.1:agents/openai.yaml\n\ninterface:\n  display_name: \"ViralQuery\"\n  short_description: \"Find top viral videos for a mobile app\"\n  default_prompt: \"Use $viralquery to get the top viral videos for this App Store link and include their source links.\"\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.0.0: 5 files, 3616 bytes\n\nFiles: agents/openai.yaml (264b), references/operations.md (1055b), skill-card.md (2156b), SKILL.md (1972b), _meta.json (129b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: viralquery\ndescription: Find the top viral videos for a mobile app through ViralQuery's protected HTTP API. Use when an agent receives an Apple App Store link or app name and needs to list supported apps, retrieve the app's videos, request a missing app on Max, check request status, or answer prompts such as \"get the viral videos for this app.\"\n---\n\n# ViralQuery\n\nUse ViralQuery to answer: “Get the top viral videos for this mobile app.”\n\n## Workflow\n\n1. Call the protected API at `https://api.viralquery.com/v1` with `Authorization: Bearer $VIRALQUERY_API_KEY`.\n   Read the key from the environment or the caller's configured secret; never request or print it in chat.\n2. Prefer an Apple App Store link. Extract its numeric ID, call `GET /apps`, and use an exact matching\n   `id` or `appStoreUrl`. For a name-only request, use an unambiguous listed match; never invent an ID.\n3. If listed, call `GET /apps/videos?id=APP_ID` once with that exact ID.\n4. If missing and the user supplied an App Store link, call `POST /app-requests` with the full link in JSON.\n   This is Max-only and uses the account's bounded new-app allowance.\n5. For `queued` or `joined`, call `GET /app-requests?id=REQUEST_ID` with the returned request ID. Poll at a bounded\n   interval while practical. When `ready`, call `getAppVideos` with the returned app ID. If work is\n   still running, report the status and request ID instead of claiming completion.\n6. Cite each returned source URL and video ID. Report only the data that ViralQuery\n   returns; clearly label any synthesis as your inference.\n7. Filter or sort returned fields locally when needed. Return a focused answer for the requested\n   app rather than broad, unrelated inspiration.\n\nDo not use a remote tool transport for this skill. Do not call catalog writes, ingestion controls, or maintenance endpoints.\n\nRead [`references/operations.md`](references/operations.md) when exact HTTP requests or response fields matter.\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn748c4j0mce43k14xb4x94pxd819cxq\",\n  \"slug\": \"viralquery\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1783698537924\n}\n\nFile v1.0.0:references/operations.md\n\n# ViralQuery app API\n\nBase URL: `https://api.viralquery.com/v1`.\n\nSend `Authorization: Bearer $VIRALQUERY_API_KEY` on every request. Read the key from a configured\nsecret or environment variable. Never put it in a URL, prompt, source file, or commit.\n\n| Purpose | Request |\n| --- | --- |\n| List supported apps | `GET /apps?limit=200` |\n| Get one app's videos | `GET /apps/videos?id=APP_ID` |\n| Request a missing App Store app (Max) | `POST /app-requests` with `{ \"appStoreUrl\": \"https://apps.apple.com/.../id123\" }` |\n| Check a request | `GET /app-requests?id=REQUEST_ID` |\n\nThe app request receipt returns `request.id`; use that receipt ID for status checks, not the App\nStore ID. A ready response contains the numeric App Store app ID for `/apps/videos`.\n\n`GET /apps/videos` returns `app`, `resultLimit`, `returnedCount`, and `videos`. Starter returns up\nto 5; Max returns up to 50. Cite source URLs and identifiers. Filter or sort returned fields locally.\n\nDo not infer that no viral videos exist elsewhere when ViralQuery returns an empty collection.\n\nFile v1.0.0:skill-card.md\n\n## Description: <br>\nFind the top viral videos for a mobile app through ViralQuery's protected HTTP API. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[tfcbot](https://clawhub.ai/user/tfcbot) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to ask an agent for app-specific viral video results from ViralQuery when they provide an Apple App Store link or an unambiguous app name. The skill can list supported apps, retrieve videos, request supported missing-app additions on Max accounts, and report request status. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill sends app names or App Store links to ViralQuery using the configured API key. <br>\nMitigation: Use only approved app identifiers or links and keep the VIRALQUERY_API_KEY in a configured secret or environment variable. <br>\nRisk: Missing-app requests can consume Max account allowance. <br>\nMitigation: Confirm the App Store link and account intent before submitting a missing-app request. <br>\nRisk: Implicit invocation may use the skill when an App Store link or app-name lookup appears relevant. <br>\nMitigation: Review agent prompts and outputs when sensitive app research should not be sent to the ViralQuery API. <br>\n\n\n## Reference(s): <br>\n- [ViralQuery app API](references/operations.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Guidance] <br>\n**Output Format:** [Markdown answer with cited source URLs and video IDs] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires a configured VIRALQUERY_API_KEY; Starter accounts return up to 5 videos and Max accounts return up to 50 when provided by the API.] <br>\n\n## Skill Version(s): <br>\n1.0.0 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.0:agents/openai.yaml\n\ninterface:\n  display_name: \"ViralQuery\"\n  short_description: \"Find top viral videos for a mobile app\"\n  default_prompt: \"Use $viralquery to get the top viral videos for this App Store link and include their source links.\"\npolicy:\n  allow_implicit_invocation: true","readmeExcerpt":"Skill: ViralQuery Owner: tfcbot Summary: Set up and use ViralQuery's protected HTTP API to build a private video inspiration feed for one app, website, or niche. Use when an agent needs to help obta... Tags: latest:1.2.0 Version history: v1.2.0 | 2026-07-12T02:40:36.106Z | user Add API-key setup, configuration verification, and complete scroll workflow guidance; retain live ViralQuery docs as the canonical reference.","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"export VIRALQUERY_API_KEY=sk_viralquery_...\n   npx viralquery auth --url https://api.viralquery.com --key \"$VIRALQUERY_API_KEY\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: viralquery\ndescription: Set up and use ViralQuery's protected HTTP API to build a private video inspiration feed for one app, website, or niche. Use when an agent needs to help obtain or configure a ViralQuery API key, verify authentication, create or update a research brief and rules, run and monitor a scroll, or retrieve tenant-scoped library, outlier, trend, and hook signals.\n---\n\n# ViralQuery\n\nUse ViralQuery as the user's personal research feed. The bearer key fixes the tenant, and the\ntenant's research brief scopes every scroll and result read.\n\nRead [ViralQuery's LLM documentation](https://viralquery.com/llms.txt) before making an exact\nrequest. It is the source of truth for current paths, fields, responses, and errors. Human-readable\nsetup guides live at [viralquery.com/docs](https://viralquery.com/docs).\n\n## Set up access\n\n1. Use `https://api.viralquery.com` unless a configured API URL overrides it.\n2. Resolve credentials without printing them:\n   - first use `VIRALQUERY_API_KEY` from the environment or agent secret store;\n   - otherwise read `apiKey` and optional `apiUrl` from `~/.viralquery/config.json` when present.\n3. If no key is configured, tell the user to open\n   [viralquery.com/#pricing](https://viralquery.com/#pricing), choose a plan, finish checkout, and\n   save the key shown once. Never ask the user to paste the key into chat.\n4. Configure either of these supported forms:\n\n   ```bash\n   export VIRALQUERY_API_KEY=sk_viralquery_...\n   npx viralquery auth --url https://api.viralquery.com --key \"$VIRALQUERY_API_KEY\"\n   ```\n\n   The CLI command writes `~/.viralquery/config.json`; API-based agents can use the environment\n   secret directly.\n5. Verify configuration with a protected `GET /v1/usage` request using\n   `Authorization: Bearer <key>`. A `200` response means the configuration works. Treat `401` as a\n   missing or invalid key and `402` as an inactive subscription. Do not use public `/health` to\n   validate credentials.\n\n## Run a scroll\n\n1. Call `GET /v1/workspace`. If empty, call `POST /v1/workspace` with the user's research\n   description and any exact App Store URL, website, competitor names, or display name they\n   supplied. Never substitute another product.\n2. Read `GET /v1/rules`. When the user provides standing guidance, save it with `PUT /v1/rules`.\n3. Start one scroll with `POST /v1/scrolls`. Include the user's one-run `prompt` and a stable,\n   unique `idempotencyKey`; use scheduling fields only when the user asks for recurring research.\n4. Save the returned scroll ID. Poll `GET /v1/scrolls?id=SCROLL_ID` at a bounded interval until it\n   completes or fails. If it remains queued or running, report the ID, status, and progress instead\n   of claiming completion. Do not start overlapping work for the same workspace.\n5. After completion, read only the result needed: `/v1/library`, `/v1/outliers`, `/v1/trends`, or\n   `/v1/hooks`. Report insufficient history honestly and cite each original source URL used in the\n   "},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn748c4j0mce43k14xb4x94pxd819cxq\",\n  \"slug\": \"viralquery\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1783824036106\n}"},{"path":"skill-card.md","content":"## Description:\n\nSet up and use ViralQuery's protected HTTP API to build a private video inspiration feed for one app, website, or niche.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[tfcbot](https://clawhub.ai/user/tfcbot)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal developers and agent operators use ViralQuery to configure tenant-scoped video research, verify API access, run a scroll, and retrieve library, outlier, trend, and hook signals for one app, website, or niche.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The setup flow includes an unpinned `npx viralquery` command that may handle a live API key.\n\nMitigation: Use an environment variable or secret store for the key and prefer a pinned or manually verified CLI setup path before running commands.\n\nRisk: The skill treats mutable remote documentation as the source of truth for operational API details.\n\nMitigation: Treat remote documentation as reference material and constrain API actions to the intended ViralQuery tenant and workspace.\n\n## Reference(s):\n\n- [ViralQuery LLM Documentation](https://viralquery.com/llms.txt)\n- [ViralQuery Documentation](https://viralquery.com/docs)\n- [ClawHub Skill Page](https://clawhub.ai/tfcbot/skills/viralquery)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with inline shell commands and API request guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include source URLs from retrieved ViralQuery results when reporting research findings.]\n\n## Skill Version(s):\n\n1.2.0 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"agents/openai.yaml","content":"interface:\n  display_name: \"ViralQuery\"\n  short_description: \"Set up and run private video research\"\n  default_prompt: \"Use $viralquery to verify my API setup, configure my research brief and rules, run a scroll, and return the strongest source videos and signals.\""}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Set up and use ViralQuery's protected HTTP API to build a private video inspiration feed for one app, website, or niche. Use when an agent needs to help obta... Skill: ViralQuery Owner: tfcbot Summary: Set up and use ViralQuery's protected HTTP API to build a private video inspiration feed for one app, website, or niche. Use when an agent needs to help obta... Tags: latest:1.2.0 Version history: v1.2.0 | 2026-07-12T02:40:36.106Z | user Add API-key setup, configuration verification, and complete scroll workflow guidance; retain live ViralQuery docs as the canonical reference.","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1236,"uniquenessScore":50,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-12T00:17:26.073Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-12T00:17:26.073Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-12T18:16:35.696Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}