{"id":"9ec21099-af96-41e5-81c9-9e81465aa6da","entityType":"agent","slug":"clawhub-skills-alinxus-usewhisper-autohook","name":"usewhisper-autohook","canonicalUrl":"https://www.xpersona.co/agent/clawhub-skills-alinxus-usewhisper-autohook","canonicalPath":"/agent/clawhub-skills-alinxus-usewhisper-autohook","generatedAt":"2026-10-10T00:03:05.655Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"usewhisper-autohook (OpenClaw Skill) --- name: usewhisper-autohook version: 1.0.0 description: Auto-hook tools for OpenClaw: query Whisper Context before every generation, ingest after every turn. Built for Telegram agents (stable user_id/session_id). author: \"usewhisper\" metadata: openclaw: requires: bins: [\"node\"] env: [\"WHISPER_CONTEXT_API_KEY\", \"WHISPER_CONTEXT_PROJECT\"] optional_env: [\"WHISPER_CONTEXT_API_URL\"] security: notes: - Makes outbound HTT","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.","installCommand":"clawhub skill install skills:alinxus:usewhisper-autohook","sourceUrl":"https://github.com/openclaw/skills/tree/main/skills/alinxus/usewhisper-autohook","homepage":null,"primaryLinks":[{"label":"View on ClawHub","url":"https://github.com/openclaw/skills/tree/main/skills/alinxus/usewhisper-autohook","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":50,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"usewhisper-autohook (OpenClaw Skill) --- name: usewhisper-autohook version: 1.0.0 description: Auto-hook tools for OpenClaw: query Whisper Context before every "},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[{"label":"set","status":"self-declared"},{"label":"store","status":"self-declared"},{"label":"overriding","status":"self-declared"}],"verifiedCount":0,"selfDeclaredCount":4,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"set","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"store","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"overriding","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile capability:set|supported|profile capability:store|supported|profile capability:overriding|supported|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No source adoption metrics were available."},"stars":null,"forks":null,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-02-25T05:59:13.443Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-25T05:59:13.443Z","lastIndexedAt":null,"nextCrawlAt":"2026-02-26T05:59:13.443Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install skills:alinxus:usewhisper-autohook","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-skills-alinxus-usewhisper-autohook/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-alinxus-usewhisper-autohook/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-alinxus-usewhisper-autohook/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-alinxus-usewhisper-autohook/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-alinxus-usewhisper-autohook/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-alinxus-usewhisper-autohook/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-10T00:03:05.655Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-alinxus-usewhisper-autohook/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-alinxus-usewhisper-autohook/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-alinxus-usewhisper-autohook/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-alinxus-usewhisper-autohook/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-04-15T00:45:39.800Z","emptyReason":null},"readme":"---\nname: usewhisper-autohook\nversion: 1.0.0\ndescription: Auto-hook tools for OpenClaw: query Whisper Context before every generation, ingest after every turn. Built for Telegram agents (stable user_id/session_id).\nauthor: \"usewhisper\"\nmetadata:\n  openclaw:\n    requires:\n      bins: [\"node\"]\n      env: [\"WHISPER_CONTEXT_API_KEY\", \"WHISPER_CONTEXT_PROJECT\"]\n      optional_env: [\"WHISPER_CONTEXT_API_URL\"]\n    security:\n      notes:\n        - Makes outbound HTTPS requests to the Whisper Context API using a user-provided API key.\n        - Does not require additional npm dependencies.\n        - Review the script before use.\n---\n\n# usewhisper-autohook (OpenClaw Skill)\n\nThis skill is a thin wrapper designed to make \"automatic memory\" easy:\n\n- `get_whisper_context(user_id, session_id, current_query)` for pre-response context injection\n- `ingest_whisper_turn(user_id, session_id, user_msg, assistant_msg)` for post-response ingestion\n\nIt defaults to the token-saving settings you almost always want:\n\n- `compress: true`\n- `compression_strategy: \"delta\"`\n- `use_cache: true`\n- `include_memories: true`\n\nIt also persists the last `context_hash` locally (per `api_url + project + user_id + session_id`) so delta compression works by default without you needing to pass `previous_context_hash`.\n\n## Install (ClawHub)\n\n```bash\nnpx clawhub@latest install usewhisper-autohook\n```\n\n## Setup\n\nSet env vars wherever OpenClaw runs your agent:\n\n```bash\nWHISPER_CONTEXT_API_URL=https://context.usewhisper.dev\nWHISPER_CONTEXT_API_KEY=YOUR_KEY\nWHISPER_CONTEXT_PROJECT=openclaw-yourname\n```\n\nNotes:\n\n- `WHISPER_CONTEXT_API_URL` is optional (defaults to `https://context.usewhisper.dev`).\n- The helper will auto-create the project on first use if it does not exist yet.\n\n## The \"Auto Loop\" Prompt (Copy/Paste)\n\nAdd this to your agent's **system instruction** (or equivalent):\n\n```text\nBefore you think or respond to any message:\n1) Call get_whisper_context with:\n   user_id = \"telegram:{from_id}\"\n   session_id = \"telegram:{chat_id}\"\n   current_query = the user's message text\n2) If the returned context is not empty, prepend it to your prompt as:\n   \"Relevant long-term memory:\\n{context}\\n\\nNow respond to:\\n{user_message}\"\n\nAfter you generate your final response:\n1) Call ingest_whisper_turn with the same user_id and session_id and:\n   user_msg = the full user message\n   assistant_msg = your full final reply\n\nAlways do this. Never skip.\n```\n\nIf you are not on Telegram, keep the same structure: the important part is that `user_id` and `session_id` are stable.\n\n## If Your Agent Still Replays Full Chat History (Proxy Mode)\n\nIf you cannot control how your agent/framework constructs prompts (it always sends the full conversation history), a system prompt cannot reduce token spend: the tokens are already sent to the model.\n\nIn that case, run the built-in OpenAI-compatible proxy so the **network payload is actually reduced**. The proxy:\n\n- receives `POST /v1/chat/completions`\n- queries Whisper memory\n- strips chat history down to system + last user message\n- injects `Relevant long-term memory: ...`\n- calls your upstream OpenAI-compatible provider\n- ingests the turn back into Whisper\n\nStart the proxy:\n\n```bash\nexport OPENAI_API_KEY=\"YOUR_UPSTREAM_KEY\"\nnode usewhisper-autohook.mjs serve_openai_proxy --port 8787\n```\n\nThen point your agent’s OpenAI base URL to `http://127.0.0.1:8787` (exact env/config depends on your agent).\n\nIf your agent supports overriding the upstream base URL, you can set:\n\n- `OPENAI_BASE_URL` (for OpenAI-compatible upstreams)\n- `ANTHROPIC_BASE_URL` (for Anthropic upstreams)\n\nOr pass `--upstream_base_url` when starting the proxy.\n\nFor correct per-user/session memory, pass headers on each request:\n\n- `x-whisper-user-id: telegram:{from_id}`\n- `x-whisper-session-id: telegram:{chat_id}`\n\n### Anthropic Native Proxy (`/v1/messages`)\n\nIf your agent uses **Anthropic's native API** (not OpenAI-compatible), run the Anthropic proxy instead:\n\n```bash\nexport ANTHROPIC_API_KEY=\"YOUR_ANTHROPIC_KEY\"\nnode usewhisper-autohook.mjs serve_anthropic_proxy --port 8788\n```\n\nThen point your agent’s Anthropic base URL to `http://127.0.0.1:8788`.\n\nPass IDs via headers (recommended):\n\n- `x-whisper-user-id: telegram:{from_id}`\n- `x-whisper-session-id: telegram:{chat_id}`\n\nIf you do not pass headers, the proxies will attempt to infer stable IDs from OpenClaw's system prompt / session key if present. This is best-effort; headers are still the most reliable.\n\n## CLI Usage (what the tools call)\n\nAll commands print JSON to stdout.\n\n### Get packed context\n\n```bash\nnode usewhisper-autohook.mjs get_whisper_context \\\n  --current_query \"What did we decide last time?\" \\\n  --user_id \"telegram:123\" \\\n  --session_id \"telegram:456\"\n```\n\n### Ingest a completed turn\n\n```bash\nnode usewhisper-autohook.mjs ingest_whisper_turn \\\n  --user_id \"telegram:123\" \\\n  --session_id \"telegram:456\" \\\n  --user_msg \"...\" \\\n  --assistant_msg \"...\"\n```\n\nFor large content, pass JSON via stdin:\n\n```bash\necho '{ \"user_msg\": \"....\", \"assistant_msg\": \"....\" }' | node usewhisper-autohook.mjs ingest_whisper_turn --session_id \"telegram:456\" --user_id \"telegram:123\" --turn_json -\n```\n\n## Output Format\n\n`get_whisper_context` returns:\n\n- `context`: the packed context string to prepend\n- `context_hash`: a short hash you can store and pass back as `previous_context_hash` next time (optional)\n- `meta`: cache hit and compression info (useful for debugging)\n","readmeExcerpt":"--- name: usewhisper-autohook version: 1.0.0 description: Auto-hook tools for OpenClaw: query Whisper Context before every generation, ingest after every turn. Built for Telegram agents (stable user_id/session_id). author: \"usewhisper\" metadata: openclaw: requires: bins: [\"node\"] env: [\"WHISPER_CONTEXT_API_KEY\", \"WHISPER_CONTEXT_PROJECT\"] optional_env: [\"WHISPER_CONTEXT_API_URL\"] security: notes: - Makes outbound HTT","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"npx clawhub@latest install usewhisper-autohook"},{"language":"bash","snippet":"WHISPER_CONTEXT_API_URL=https://context.usewhisper.dev\nWHISPER_CONTEXT_API_KEY=YOUR_KEY\nWHISPER_CONTEXT_PROJECT=openclaw-yourname"},{"language":"text","snippet":"Before you think or respond to any message:\n1) Call get_whisper_context with:\n   user_id = \"telegram:{from_id}\"\n   session_id = \"telegram:{chat_id}\"\n   current_query = the user's message text\n2) If the returned context is not empty, prepend it to your prompt as:\n   \"Relevant long-term memory:\\n{context}\\n\\nNow respond to:\\n{user_message}\"\n\nAfter you generate your final response:\n1) Call ingest_whisper_turn with the same user_id and session_id and:\n   user_msg = the full user message\n   assistant_msg = your full final reply\n\nAlways do this. Never skip."},{"language":"bash","snippet":"export OPENAI_API_KEY=\"YOUR_UPSTREAM_KEY\"\nnode usewhisper-autohook.mjs serve_openai_proxy --port 8787"},{"language":"bash","snippet":"export ANTHROPIC_API_KEY=\"YOUR_ANTHROPIC_KEY\"\nnode usewhisper-autohook.mjs serve_anthropic_proxy --port 8788"},{"language":"bash","snippet":"node usewhisper-autohook.mjs get_whisper_context \\\n  --current_query \"What did we decide last time?\" \\\n  --user_id \"telegram:123\" \\\n  --session_id \"telegram:456\""}],"parameters":{},"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"CLAWHUB","editorialOverview":"usewhisper-autohook (OpenClaw Skill) --- name: usewhisper-autohook version: 1.0.0 description: Auto-hook tools for OpenClaw: query Whisper Context before every generation, ingest after every turn. Built for Telegram agents (stable user_id/session_id). author: \"usewhisper\" metadata: openclaw: requires: bins: [\"node\"] env: [\"WHISPER_CONTEXT_API_KEY\", \"WHISPER_CONTEXT_PROJECT\"] optional_env: [\"WHISPER_CONTEXT_API_URL\"] security: notes: - Makes outbound HTT","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":362,"uniquenessScore":69,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","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-04-15T00:45:39.800Z","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-10T00:03:05.655Z","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"}]}}}