{"id":"92d4c4d1-c0fb-47f9-be13-06512120af97","entityType":"agent","slug":"clawhub-gthu-vn-voicenotes-official","name":"Voicenotes Official","canonicalUrl":"https://www.xpersona.co/agent/clawhub-gthu-vn-voicenotes-official","canonicalPath":"/agent/clawhub-gthu-vn-voicenotes-official","generatedAt":"2026-10-10T01:45:19.280Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T13:07:56.687Z","emptyReason":null},"description":"This official skill from the Voicenotes team gives OpenClaw access to new APIs and the ability to search semantically, retrieve full transcripts, filter by t... Skill: Voicenotes Official Owner: gthu-vn Summary: This official skill from the Voicenotes team gives OpenClaw access to new APIs and the ability to search semantically, retrieve full transcripts, filter by t... Tags: latest:1.0.3 Version history: v1.0.3 | 2026-02-17T15:33:45.983Z | user Added input sanitization guidance to address shell injection concerns v1.0.2 | 2026-02-17T05:12:03.700Z | user Fixed metadata schem","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.6K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17apyaz70tr0qhzfa6ckjgqch83ngcw:voicenotes-official","sourceUrl":"https://clawhub.ai/gthu-vn/voicenotes-official","homepage":"https://clawhub.ai/gthu-vn/skills/voicenotes-official","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/gthu-vn/voicenotes-official","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/gthu-vn/skills/voicenotes-official","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":68,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"This official skill from the Voicenotes team gives OpenClaw access to new APIs and the ability to search semantically, retrieve full transcripts, filter by t..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:07:56.687Z","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-09T13:07:56.687Z","emptyReason":null},"stars":null,"forks":null,"downloads":2591,"packageName":null,"latestVersion":"1.0.3","tractionLabel":"2.6K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:07:56.687Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T13:07:56.687Z","lastCrawledAt":"2026-10-09T13:07:56.687Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T13:07:56.687Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.3","createdAt":"2026-02-17T15:33:45.983Z","changelog":"Added input sanitization guidance to address shell injection concerns","fileCount":3,"zipByteSize":4279},{"version":"1.0.2","createdAt":"2026-02-17T05:12:03.700Z","changelog":"Fixed metadata schema (added bins declaration) and added security guardrails documentation","fileCount":2,"zipByteSize":2686},{"version":"1.0.1","createdAt":"2026-02-09T07:50:06.782Z","changelog":"Description update","fileCount":2,"zipByteSize":2532},{"version":"1.0.0","createdAt":"2026-02-09T07:24:31.896Z","changelog":"Initial release","fileCount":2,"zipByteSize":2449}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17apyaz70tr0qhzfa6ckjgqch83ngcw:voicenotes-official","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-gthu-vn-voicenotes-official/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-gthu-vn-voicenotes-official/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-gthu-vn-voicenotes-official/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-gthu-vn-voicenotes-official/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-gthu-vn-voicenotes-official/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-gthu-vn-voicenotes-official/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-10T01:45:19.280Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-gthu-vn-voicenotes-official/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-gthu-vn-voicenotes-official/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-gthu-vn-voicenotes-official/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-gthu-vn-voicenotes-official/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-09T13:07:56.687Z","emptyReason":null},"readme":"Skill: Voicenotes Official\n\nOwner: gthu-vn\n\nSummary: This official skill from the Voicenotes team gives OpenClaw access to new APIs and the ability to search semantically, retrieve full transcripts, filter by t...\n\nTags: latest:1.0.3\n\nVersion history:\n\nv1.0.3 | 2026-02-17T15:33:45.983Z | user\n\nAdded input sanitization guidance to address shell injection concerns\n\nv1.0.2 | 2026-02-17T05:12:03.700Z | user\n\nFixed metadata schema (added bins declaration) and added security guardrails documentation\n\nv1.0.1 | 2026-02-09T07:50:06.782Z | user\n\nDescription update\n\nv1.0.0 | 2026-02-09T07:24:31.896Z | user\n\nInitial release\n\nArchive index:\n\nArchive v1.0.3: 3 files, 4279 bytes\n\nFiles: skill-card.md (2409b), SKILL.md (6833b), _meta.json (138b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: voicenotes\ndescription: This official skill from the Voicenotes team gives OpenClaw access to new APIs and the ability to search semantically, retrieve full transcripts, filter by tags or date range and create text notes — all through natural conversation.\n\nhomepage: https://voicenotes.com\nmetadata:\n  openclaw:\n    emoji: \"📝\"\n    requires:\n      env:\n        - VOICENOTES_API_KEY\n      bins:\n        - curl\n    primaryEnv: VOICENOTES_API_KEY\n---\n\n# voicenotes\n\nUse the Voicenotes skill to create, search and retrieve user’s notes.\n\n## Setup\n\n1. Create an integration at https://voicenotes.com/app?open-claw=true#settings\n2. Copy the API key\n3. Configure it:\n\n**Webchat:** Skills → Voicenotes → API Key in the sidebar\n\n**Terminal:** Add to your OpenClaw config (`~/.openclaw/config.yaml`):\n```yaml\nskills:\n  voicenotes:\n    env:\n      VOICENOTES_API_KEY: \"your_key_here\"\n```\n\nOr export it directly:\n```bash\nexport VOICENOTES_API_KEY=\"your_key_here\"\n```\n\nThe key is then available as `$VOICENOTES_API_KEY` environment variable.\n\n## API Basics\n\nAll requests need the Authorization header:\n\n```bash\ncurl -X GET \"https://api.voicenotes.com/api/integrations/open-claw/...\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\"\n```\n\n## Common Operations\n\n**Search query in users notes:**\n\nQuery parameters:\n- `query` (required): The search query string\n\n```bash\ncurl -X GET \"https://api.voicenotes.com/api/integrations/open-claw/search/semantic?query={search_query}\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\"\n```\n\n**Get multiple Voicenotes with filters (tags and date range):**\n\nQuery parameters:\n- `tags` (optional): array of valid tags\n- `date_range` (optional): array with start and end date as UTC timestamps\n\n```bash\ncurl -X POST \"https://api.voicenotes.com/api/integrations/open-claw/recordings\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"tags\": [\"tag1\", \"tag2\"],\n    \"date_range\": [\"2026-01-01T00:00:00.000000Z\", \"2026-02-01T00:00:00.000000Z\"]\n  }'\n```\n\n**If you want more context get the whole transcript:**\n\n```bash\ncurl \"https://api.voicenotes.com/api/integrations/open-claw/recordings/{recording_uuid}\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n```\n\n**Create a text note in Voicenotes:**\n\n```bash\ncurl -X POST \"https://api.voicenotes.com/api/integrations/open-claw/recordings/new\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"recording_type\": 3,\n    \"transcript\": \"note content here\",\n    \"device_info\": \"open-claw\"\n  }'\n```\n\n## Response Structure\n\n**Semantic Search Response:**\n\nReturns an array of notes and note splits ordered by relevance:\n\n```json\n[\n  {\n    \"type\": \"note\",\n    \"uuid\": \"NTHiJljf\",\n    \"title\": \"Quick idea about project\",\n    \"transcript\": \"Full transcript text with <br> for line breaks...\",\n    \"tags\": [\"idea\", \"project\"],\n    \"created_at\": \"2025-01-15T10:30:00.000000Z\"\n  },\n  {\n    \"type\": \"note_split\",\n    \"uuid\": \"8JzkhEGh\",\n    \"title\": \"Long meeting notes\",\n    \"transcript\": \"Relevant chunk from a larger note...\",\n    \"tags\": [\"meeting\"],\n    \"created_at\": \"2025-01-14T09:00:00.000000Z\"\n  },\n  {\n    \"type\": \"import_split\",\n    \"uuid\": \"xYz12345\",\n    \"title\": \"filename.extension\",\n    \"transcript\": \"Chunk from an imported note...\",\n    \"tags\": [\"imported\"],\n    \"created_at\": \"2025-01-10T14:00:00.000000Z\"\n  }\n]\n```\n\n- `type: \"note\"` - Complete note matching the search\n- `type: \"note_split\"` - Chunk from a larger note; use the `uuid` to fetch full transcript if needed\n- `type: \"import_split\"` - Chunk from an imported note; title is the filename; **cannot** be fetched via `/recordings/{uuid}`\n- `transcript` may contain HTML (`<br>`, `<b>`) for formatting\n\n**Get Recordings Response (with filters):**\n\nReturns paginated notes matching the filters:\n\n```json\n{\n  \"data\": [\n    {\n      \"id\": \"bTZI5t12\",\n      \"title\": null,\n      \"transcript\": \"this is a sample note\",\n      \"duration\": 0,\n      \"recorded_at\": \"2026-02-06T10:07:45.000000Z\",\n      \"created_at\": \"2026-02-06T10:07:45.000000Z\",\n      \"recording_type\": 3,\n      \"tags\": []\n    }\n  ],\n  \"links\": {\n    \"first\": \"https://api.voicenotes.com/api/integrations/open-claw/recordings?page=1\",\n    \"last\": null,\n    \"prev\": null,\n    \"next\": null\n  },\n  \"meta\": {\n    \"current_page\": 1,\n    \"from\": 1,\n    \"path\": \"https://api.voicenotes.com/api/integrations/open-claw/recordings\",\n    \"per_page\": 10,\n    \"to\": 1\n  }\n}\n```\n\nKey fields:\n- `data` - Array of recording objects\n- `links.next` - URL for next page (null if no more pages)\n- `meta.per_page` - Results per page (default 10)\n\n**Get Recording Response:**\n\nReturns full note details:\n\n```json\n{\n  \"data\": {\n    \"id\": \"NTHiJljf\",\n    \"title\": \"Meeting Connectivity Check\",\n    \"transcript\": \"Full transcript text...\",\n    \"duration\": 12101,\n    \"recorded_at\": \"2025-08-07T09:50:14.000000Z\",\n    \"created_at\": \"2025-08-07T09:50:14.000000Z\",\n    \"recording_type\": 2,\n    \"tags\": [\"meeting\"],\n    \"subnotes\": [],\n    \"attachments\": []\n  }\n}\n```\n\nKey fields:\n- `id` - Note UUID\n- `transcript` - Full text (meetings include `[HH:MM:SS] Speaker N:` timestamps)\n- `duration` - Length in milliseconds\n- `recording_type` - 1=voice note, 2=voice meeting, 3=text note\n- `tags` - Array of tag objects with `name` field\n\n**Create Note Response:**\n\n```json\n{\n  \"message\": \"Recording audio uploaded successfully!\",\n  \"recording\": {\n    \"id\": \"bPI3RcUP\",\n    \"recording_id\": \"bPI3RcUP\",\n    \"title\": null,\n    \"transcript\": \"Sample note\",\n    \"recording_type\": 3,\n    \"created_at\": \"2026-02-04T08:51:29.000000Z\",\n    \"tags\": []\n  }\n}\n```\n\nKey fields:\n- `message` - Success confirmation\n- `recording.id` - New note UUID\n- `recording.transcript` - The note content\n\n## Notes\n\n- Note IDs are UUIDs\n- Rate limit: ~3 requests/second average\n\n## Security & Guardrails\n\n- Only accesses `api.voicenotes.com` endpoints\n- No credential exfiltration or external data storage\n- No telemetry or analytics\n- No automatic code execution or file overwrites\n- Read/write limited to user's own Voicenotes data via authenticated API\n\n## Input Sanitization\n\nWhen constructing API requests, the agent MUST sanitize all user-provided inputs:\n\n- **Search queries**: URL-encode the `query` parameter using `--data-urlencode` instead of string interpolation\n- **Recording UUIDs**: Validate format (alphanumeric, 8 characters) before use; reject any input containing shell metacharacters (`;`, `|`, `&`, `$`, `` ` ``, `\\`)\n- **JSON body fields**: Use proper JSON encoding; never concatenate raw user input into JSON strings\n\n**Safe example for search:**\n```bash\ncurl -G \"https://api.voicenotes.com/api/integrations/open-claw/search/semantic\" \\\n  --data-urlencode \"query=user search term here\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\"\n```\n\n**UUID validation pattern:** `/^[a-zA-Z0-9]{8}$/`\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7daq6w51frkqke7hw6gzpgmd80fe5v\",\n  \"slug\": \"voicenotes-official\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1771342425983\n}\n\nFile v1.0.3:skill-card.md\n\n## Description:\n\nThis official skill from the Voicenotes team gives OpenClaw access to APIs for semantic note search, full transcript retrieval, tag or date filtering, and text note creation through natural conversation.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[gthu-vn](https://clawhub.ai/user/gthu-vn)\n\n### License/Terms of Use:\n\n\n## Use Case:\n\nExternal users and developers use this skill to let an OpenClaw agent search, retrieve, filter, and create notes in their own Voicenotes account through authenticated API calls.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can expose note contents and search terms to Voicenotes through authenticated API requests.\n\nMitigation: Use it only with Voicenotes accounts trusted for the relevant note contents, and avoid sending secrets or regulated information unless that is appropriate for the account.\n\nRisk: The skill can create notes or retrieve transcripts in the user's Voicenotes account.\n\nMitigation: Review requested account actions before execution and keep the API key scoped to the intended Voicenotes account.\n\nRisk: Unsafe interpolation of search queries, recording IDs, or JSON fields could alter generated shell commands.\n\nMitigation: URL-encode search queries, validate recording IDs against the documented alphanumeric pattern, and JSON-encode request bodies instead of concatenating raw user input.\n\n## Reference(s):\n\n- [Voicenotes homepage](https://voicenotes.com)\n- [Voicenotes OpenClaw integration setup](https://voicenotes.com/app?open-claw=true#settings)\n- [Voicenotes Official ClawHub listing](https://clawhub.ai/gthu-vn/skills/voicenotes-official)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, API Calls, Guidance]\n\n**Output Format:** [Markdown with curl commands, YAML configuration, and JSON response examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires VOICENOTES_API_KEY and curl; API calls operate on the user's authenticated Voicenotes account.]\n\n## Skill Version(s):\n\n1.0.3 (source: server release metadata)\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\nArchive v1.0.2: 2 files, 2686 bytes\n\nFiles: SKILL.md (6081b), _meta.json (138b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: voicenotes\ndescription: This official skill from the Voicenotes team gives OpenClaw access to new APIs and the ability to search semantically, retrieve full transcripts, filter by tags or date range and create text notes — all through natural conversation.\n\nhomepage: https://voicenotes.com\nmetadata:\n  openclaw:\n    emoji: \"📝\"\n    requires:\n      env:\n        - VOICENOTES_API_KEY\n      bins:\n        - curl\n    primaryEnv: VOICENOTES_API_KEY\n---\n\n# voicenotes\n\nUse the Voicenotes skill to create, search and retrieve user’s notes.\n\n## Setup\n\n1. Create an integration at https://voicenotes.com/app?open-claw=true#settings\n2. Copy the API key\n3. Configure it:\n\n**Webchat:** Skills → Voicenotes → API Key in the sidebar\n\n**Terminal:** Add to your OpenClaw config (`~/.openclaw/config.yaml`):\n```yaml\nskills:\n  voicenotes:\n    env:\n      VOICENOTES_API_KEY: \"your_key_here\"\n```\n\nOr export it directly:\n```bash\nexport VOICENOTES_API_KEY=\"your_key_here\"\n```\n\nThe key is then available as `$VOICENOTES_API_KEY` environment variable.\n\n## API Basics\n\nAll requests need the Authorization header:\n\n```bash\ncurl -X GET \"https://api.voicenotes.com/api/integrations/open-claw/...\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\"\n```\n\n## Common Operations\n\n**Search query in users notes:**\n\nQuery parameters:\n- `query` (required): The search query string\n\n```bash\ncurl -X GET \"https://api.voicenotes.com/api/integrations/open-claw/search/semantic?query={search_query}\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\"\n```\n\n**Get multiple Voicenotes with filters (tags and date range):**\n\nQuery parameters:\n- `tags` (optional): array of valid tags\n- `date_range` (optional): array with start and end date as UTC timestamps\n\n```bash\ncurl -X POST \"https://api.voicenotes.com/api/integrations/open-claw/recordings\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"tags\": [\"tag1\", \"tag2\"],\n    \"date_range\": [\"2026-01-01T00:00:00.000000Z\", \"2026-02-01T00:00:00.000000Z\"]\n  }'\n```\n\n**If you want more context get the whole transcript:**\n\n```bash\ncurl \"https://api.voicenotes.com/api/integrations/open-claw/recordings/{recording_uuid}\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n```\n\n**Create a text note in Voicenotes:**\n\n```bash\ncurl -X POST \"https://api.voicenotes.com/api/integrations/open-claw/recordings/new\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"recording_type\": 3,\n    \"transcript\": \"note content here\",\n    \"device_info\": \"open-claw\"\n  }'\n```\n\n## Response Structure\n\n**Semantic Search Response:**\n\nReturns an array of notes and note splits ordered by relevance:\n\n```json\n[\n  {\n    \"type\": \"note\",\n    \"uuid\": \"NTHiJljf\",\n    \"title\": \"Quick idea about project\",\n    \"transcript\": \"Full transcript text with <br> for line breaks...\",\n    \"tags\": [\"idea\", \"project\"],\n    \"created_at\": \"2025-01-15T10:30:00.000000Z\"\n  },\n  {\n    \"type\": \"note_split\",\n    \"uuid\": \"8JzkhEGh\",\n    \"title\": \"Long meeting notes\",\n    \"transcript\": \"Relevant chunk from a larger note...\",\n    \"tags\": [\"meeting\"],\n    \"created_at\": \"2025-01-14T09:00:00.000000Z\"\n  },\n  {\n    \"type\": \"import_split\",\n    \"uuid\": \"xYz12345\",\n    \"title\": \"filename.extension\",\n    \"transcript\": \"Chunk from an imported note...\",\n    \"tags\": [\"imported\"],\n    \"created_at\": \"2025-01-10T14:00:00.000000Z\"\n  }\n]\n```\n\n- `type: \"note\"` - Complete note matching the search\n- `type: \"note_split\"` - Chunk from a larger note; use the `uuid` to fetch full transcript if needed\n- `type: \"import_split\"` - Chunk from an imported note; title is the filename; **cannot** be fetched via `/recordings/{uuid}`\n- `transcript` may contain HTML (`<br>`, `<b>`) for formatting\n\n**Get Recordings Response (with filters):**\n\nReturns paginated notes matching the filters:\n\n```json\n{\n  \"data\": [\n    {\n      \"id\": \"bTZI5t12\",\n      \"title\": null,\n      \"transcript\": \"this is a sample note\",\n      \"duration\": 0,\n      \"recorded_at\": \"2026-02-06T10:07:45.000000Z\",\n      \"created_at\": \"2026-02-06T10:07:45.000000Z\",\n      \"recording_type\": 3,\n      \"tags\": []\n    }\n  ],\n  \"links\": {\n    \"first\": \"https://api.voicenotes.com/api/integrations/open-claw/recordings?page=1\",\n    \"last\": null,\n    \"prev\": null,\n    \"next\": null\n  },\n  \"meta\": {\n    \"current_page\": 1,\n    \"from\": 1,\n    \"path\": \"https://api.voicenotes.com/api/integrations/open-claw/recordings\",\n    \"per_page\": 10,\n    \"to\": 1\n  }\n}\n```\n\nKey fields:\n- `data` - Array of recording objects\n- `links.next` - URL for next page (null if no more pages)\n- `meta.per_page` - Results per page (default 10)\n\n**Get Recording Response:**\n\nReturns full note details:\n\n```json\n{\n  \"data\": {\n    \"id\": \"NTHiJljf\",\n    \"title\": \"Meeting Connectivity Check\",\n    \"transcript\": \"Full transcript text...\",\n    \"duration\": 12101,\n    \"recorded_at\": \"2025-08-07T09:50:14.000000Z\",\n    \"created_at\": \"2025-08-07T09:50:14.000000Z\",\n    \"recording_type\": 2,\n    \"tags\": [\"meeting\"],\n    \"subnotes\": [],\n    \"attachments\": []\n  }\n}\n```\n\nKey fields:\n- `id` - Note UUID\n- `transcript` - Full text (meetings include `[HH:MM:SS] Speaker N:` timestamps)\n- `duration` - Length in milliseconds\n- `recording_type` - 1=voice note, 2=voice meeting, 3=text note\n- `tags` - Array of tag objects with `name` field\n\n**Create Note Response:**\n\n```json\n{\n  \"message\": \"Recording audio uploaded successfully!\",\n  \"recording\": {\n    \"id\": \"bPI3RcUP\",\n    \"recording_id\": \"bPI3RcUP\",\n    \"title\": null,\n    \"transcript\": \"Sample note\",\n    \"recording_type\": 3,\n    \"created_at\": \"2026-02-04T08:51:29.000000Z\",\n    \"tags\": []\n  }\n}\n```\n\nKey fields:\n- `message` - Success confirmation\n- `recording.id` - New note UUID\n- `recording.transcript` - The note content\n\n## Notes\n\n- Note IDs are UUIDs\n- Rate limit: ~3 requests/second average\n\n## Security & Guardrails\n\n- Only accesses `api.voicenotes.com` endpoints\n- No credential exfiltration or external data storage\n- No telemetry or analytics\n- No automatic code execution or file overwrites\n- Read/write limited to user's own Voicenotes data via authenticated API\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7daq6w51frkqke7hw6gzpgmd80fe5v\",\n  \"slug\": \"voicenotes-official\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1771305123700\n}\n\nArchive v1.0.1: 2 files, 2532 bytes\n\nFiles: SKILL.md (5776b), _meta.json (138b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: voicenotes\ndescription: This official skill from the Voicenotes team gives OpenClaw access to new APIs and the ability to search semantically, retrieve full transcripts, filter by tags or date range and create text notes — all through natural conversation.\n\nhomepage: https://voicenotes.com\nmetadata:\n  openclaw:\n    emoji: \"📝\"\n    requires:\n      env:\n        - VOICENOTES_API_KEY\n    primaryEnv: VOICENOTES_API_KEY\n---\n\n# voicenotes\n\nUse the Voicenotes skill to create, search and retrieve user’s notes.\n\n## Setup\n\n1. Create an integration at https://voicenotes.com/app?open-claw=true#settings\n2. Copy the API key\n3. Configure it:\n\n**Webchat:** Skills → Voicenotes → API Key in the sidebar\n\n**Terminal:** Add to your OpenClaw config (`~/.openclaw/config.yaml`):\n```yaml\nskills:\n  voicenotes:\n    env:\n      VOICENOTES_API_KEY: \"your_key_here\"\n```\n\nOr export it directly:\n```bash\nexport VOICENOTES_API_KEY=\"your_key_here\"\n```\n\nThe key is then available as `$VOICENOTES_API_KEY` environment variable.\n\n## API Basics\n\nAll requests need the Authorization header:\n\n```bash\ncurl -X GET \"https://api.voicenotes.com/api/integrations/open-claw/...\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\"\n```\n\n## Common Operations\n\n**Search query in users notes:**\n\nQuery parameters:\n- `query` (required): The search query string\n\n```bash\ncurl -X GET \"https://api.voicenotes.com/api/integrations/open-claw/search/semantic?query={search_query}\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\"\n```\n\n**Get multiple Voicenotes with filters (tags and date range):**\n\nQuery parameters:\n- `tags` (optional): array of valid tags\n- `date_range` (optional): array with start and end date as UTC timestamps\n\n```bash\ncurl -X POST \"https://api.voicenotes.com/api/integrations/open-claw/recordings\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"tags\": [\"tag1\", \"tag2\"],\n    \"date_range\": [\"2026-01-01T00:00:00.000000Z\", \"2026-02-01T00:00:00.000000Z\"]\n  }'\n```\n\n**If you want more context get the whole transcript:**\n\n```bash\ncurl \"https://api.voicenotes.com/api/integrations/open-claw/recordings/{recording_uuid}\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n```\n\n**Create a text note in Voicenotes:**\n\n```bash\ncurl -X POST \"https://api.voicenotes.com/api/integrations/open-claw/recordings/new\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"recording_type\": 3,\n    \"transcript\": \"note content here\",\n    \"device_info\": \"open-claw\"\n  }'\n```\n\n## Response Structure\n\n**Semantic Search Response:**\n\nReturns an array of notes and note splits ordered by relevance:\n\n```json\n[\n  {\n    \"type\": \"note\",\n    \"uuid\": \"NTHiJljf\",\n    \"title\": \"Quick idea about project\",\n    \"transcript\": \"Full transcript text with <br> for line breaks...\",\n    \"tags\": [\"idea\", \"project\"],\n    \"created_at\": \"2025-01-15T10:30:00.000000Z\"\n  },\n  {\n    \"type\": \"note_split\",\n    \"uuid\": \"8JzkhEGh\",\n    \"title\": \"Long meeting notes\",\n    \"transcript\": \"Relevant chunk from a larger note...\",\n    \"tags\": [\"meeting\"],\n    \"created_at\": \"2025-01-14T09:00:00.000000Z\"\n  },\n  {\n    \"type\": \"import_split\",\n    \"uuid\": \"xYz12345\",\n    \"title\": \"filename.extension\",\n    \"transcript\": \"Chunk from an imported note...\",\n    \"tags\": [\"imported\"],\n    \"created_at\": \"2025-01-10T14:00:00.000000Z\"\n  }\n]\n```\n\n- `type: \"note\"` - Complete note matching the search\n- `type: \"note_split\"` - Chunk from a larger note; use the `uuid` to fetch full transcript if needed\n- `type: \"import_split\"` - Chunk from an imported note; title is the filename; **cannot** be fetched via `/recordings/{uuid}`\n- `transcript` may contain HTML (`<br>`, `<b>`) for formatting\n\n**Get Recordings Response (with filters):**\n\nReturns paginated notes matching the filters:\n\n```json\n{\n  \"data\": [\n    {\n      \"id\": \"bTZI5t12\",\n      \"title\": null,\n      \"transcript\": \"this is a sample note\",\n      \"duration\": 0,\n      \"recorded_at\": \"2026-02-06T10:07:45.000000Z\",\n      \"created_at\": \"2026-02-06T10:07:45.000000Z\",\n      \"recording_type\": 3,\n      \"tags\": []\n    }\n  ],\n  \"links\": {\n    \"first\": \"https://api.voicenotes.com/api/integrations/open-claw/recordings?page=1\",\n    \"last\": null,\n    \"prev\": null,\n    \"next\": null\n  },\n  \"meta\": {\n    \"current_page\": 1,\n    \"from\": 1,\n    \"path\": \"https://api.voicenotes.com/api/integrations/open-claw/recordings\",\n    \"per_page\": 10,\n    \"to\": 1\n  }\n}\n```\n\nKey fields:\n- `data` - Array of recording objects\n- `links.next` - URL for next page (null if no more pages)\n- `meta.per_page` - Results per page (default 10)\n\n**Get Recording Response:**\n\nReturns full note details:\n\n```json\n{\n  \"data\": {\n    \"id\": \"NTHiJljf\",\n    \"title\": \"Meeting Connectivity Check\",\n    \"transcript\": \"Full transcript text...\",\n    \"duration\": 12101,\n    \"recorded_at\": \"2025-08-07T09:50:14.000000Z\",\n    \"created_at\": \"2025-08-07T09:50:14.000000Z\",\n    \"recording_type\": 2,\n    \"tags\": [\"meeting\"],\n    \"subnotes\": [],\n    \"attachments\": []\n  }\n}\n```\n\nKey fields:\n- `id` - Note UUID\n- `transcript` - Full text (meetings include `[HH:MM:SS] Speaker N:` timestamps)\n- `duration` - Length in milliseconds\n- `recording_type` - 1=voice note, 2=voice meeting, 3=text note\n- `tags` - Array of tag objects with `name` field\n\n**Create Note Response:**\n\n```json\n{\n  \"message\": \"Recording audio uploaded successfully!\",\n  \"recording\": {\n    \"id\": \"bPI3RcUP\",\n    \"recording_id\": \"bPI3RcUP\",\n    \"title\": null,\n    \"transcript\": \"Sample note\",\n    \"recording_type\": 3,\n    \"created_at\": \"2026-02-04T08:51:29.000000Z\",\n    \"tags\": []\n  }\n}\n```\n\nKey fields:\n- `message` - Success confirmation\n- `recording.id` - New note UUID\n- `recording.transcript` - The note content\n\n## Notes\n\n- Note IDs are UUIDs\n- Rate limit: ~3 requests/second average\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7daq6w51frkqke7hw6gzpgmd80fe5v\",\n  \"slug\": \"voicenotes-official\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1770623406782\n}\n\nArchive v1.0.0: 2 files, 2449 bytes\n\nFiles: SKILL.md (5636b), _meta.json (138b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: voicenotes\ndescription: Voicenotes API for search, creating voice notes, and retrieving transcriptions.\n\nhomepage: https://voicenotes.com\nmetadata:\n  openclaw:\n    emoji: \"📝\"\n    requires:\n      env:\n        - VOICENOTES_API_KEY\n    primaryEnv: VOICENOTES_API_KEY\n---\n\n# voicenotes\n\nUse the Voicenotes API to create, search and retrieve a user’s voice and text notes.\n\n## Setup\n\n1. Create an integration at https://voicenotes.com/app?open-claw=true#settings\n2. Copy the API key\n3. Configure it:\n\n**Webchat:** Skills → Voicenotes → API Key in the sidebar\n\n**Terminal:** Add to your OpenClaw config (`~/.openclaw/config.yaml`):\n```yaml\nskills:\n  voicenotes:\n    env:\n      VOICENOTES_API_KEY: \"your_key_here\"\n```\n\nOr export it directly:\n```bash\nexport VOICENOTES_API_KEY=\"your_key_here\"\n```\n\nThe key is then available as `$VOICENOTES_API_KEY` environment variable.\n\n## API Basics\n\nAll requests need the Authorization header:\n\n```bash\ncurl -X GET \"https://api.voicenotes.com/api/integrations/open-claw/...\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\"\n```\n\n## Common Operations\n\n**Search query in users notes:**\n\nQuery parameters:\n- `query` (required): The search query string\n\n```bash\ncurl -X GET \"https://api.voicenotes.com/api/integrations/open-claw/search/semantic?query={search_query}\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\"\n```\n\n**Get multiple Voicenotes with filters (tags and date range):**\n\nQuery parameters:\n- `tags` (optional): array of valid tags\n- `date_range` (optional): array with start and end date as UTC timestamps\n\n```bash\ncurl -X POST \"https://api.voicenotes.com/api/integrations/open-claw/recordings\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"tags\": [\"tag1\", \"tag2\"],\n    \"date_range\": [\"2026-01-01T00:00:00.000000Z\", \"2026-02-01T00:00:00.000000Z\"]\n  }'\n```\n\n**If you want more context get the whole transcript:**\n\n```bash\ncurl \"https://api.voicenotes.com/api/integrations/open-claw/recordings/{recording_uuid}\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n```\n\n**Create a text note in Voicenotes:**\n\n```bash\ncurl -X POST \"https://api.voicenotes.com/api/integrations/open-claw/recordings/new\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"recording_type\": 3,\n    \"transcript\": \"note content here\",\n    \"device_info\": \"open-claw\"\n  }'\n```\n\n## Response Structure\n\n**Semantic Search Response:**\n\nReturns an array of notes and note splits ordered by relevance:\n\n```json\n[\n  {\n    \"type\": \"note\",\n    \"uuid\": \"NTHiJljf\",\n    \"title\": \"Quick idea about project\",\n    \"transcript\": \"Full transcript text with <br> for line breaks...\",\n    \"tags\": [\"idea\", \"project\"],\n    \"created_at\": \"2025-01-15T10:30:00.000000Z\"\n  },\n  {\n    \"type\": \"note_split\",\n    \"uuid\": \"8JzkhEGh\",\n    \"title\": \"Long meeting notes\",\n    \"transcript\": \"Relevant chunk from a larger note...\",\n    \"tags\": [\"meeting\"],\n    \"created_at\": \"2025-01-14T09:00:00.000000Z\"\n  },\n  {\n    \"type\": \"import_split\",\n    \"uuid\": \"xYz12345\",\n    \"title\": \"filename.extension\",\n    \"transcript\": \"Chunk from an imported note...\",\n    \"tags\": [\"imported\"],\n    \"created_at\": \"2025-01-10T14:00:00.000000Z\"\n  }\n]\n```\n\n- `type: \"note\"` - Complete note matching the search\n- `type: \"note_split\"` - Chunk from a larger note; use the `uuid` to fetch full transcript if needed\n- `type: \"import_split\"` - Chunk from an imported note; title is the filename; **cannot** be fetched via `/recordings/{uuid}`\n- `transcript` may contain HTML (`<br>`, `<b>`) for formatting\n\n**Get Recordings Response (with filters):**\n\nReturns paginated notes matching the filters:\n\n```json\n{\n  \"data\": [\n    {\n      \"id\": \"bTZI5t12\",\n      \"title\": null,\n      \"transcript\": \"this is a sample note\",\n      \"duration\": 0,\n      \"recorded_at\": \"2026-02-06T10:07:45.000000Z\",\n      \"created_at\": \"2026-02-06T10:07:45.000000Z\",\n      \"recording_type\": 3,\n      \"tags\": []\n    }\n  ],\n  \"links\": {\n    \"first\": \"https://api.voicenotes.com/api/integrations/open-claw/recordings?page=1\",\n    \"last\": null,\n    \"prev\": null,\n    \"next\": null\n  },\n  \"meta\": {\n    \"current_page\": 1,\n    \"from\": 1,\n    \"path\": \"https://api.voicenotes.com/api/integrations/open-claw/recordings\",\n    \"per_page\": 10,\n    \"to\": 1\n  }\n}\n```\n\nKey fields:\n- `data` - Array of recording objects\n- `links.next` - URL for next page (null if no more pages)\n- `meta.per_page` - Results per page (default 10)\n\n**Get Recording Response:**\n\nReturns full note details:\n\n```json\n{\n  \"data\": {\n    \"id\": \"NTHiJljf\",\n    \"title\": \"Meeting Connectivity Check\",\n    \"transcript\": \"Full transcript text...\",\n    \"duration\": 12101,\n    \"recorded_at\": \"2025-08-07T09:50:14.000000Z\",\n    \"created_at\": \"2025-08-07T09:50:14.000000Z\",\n    \"recording_type\": 2,\n    \"tags\": [\"meeting\"],\n    \"subnotes\": [],\n    \"attachments\": []\n  }\n}\n```\n\nKey fields:\n- `id` - Note UUID\n- `transcript` - Full text (meetings include `[HH:MM:SS] Speaker N:` timestamps)\n- `duration` - Length in milliseconds\n- `recording_type` - 1=voice note, 2=voice meeting, 3=text note\n- `tags` - Array of tag objects with `name` field\n\n**Create Note Response:**\n\n```json\n{\n  \"message\": \"Recording audio uploaded successfully!\",\n  \"recording\": {\n    \"id\": \"bPI3RcUP\",\n    \"recording_id\": \"bPI3RcUP\",\n    \"title\": null,\n    \"transcript\": \"Sample note\",\n    \"recording_type\": 3,\n    \"created_at\": \"2026-02-04T08:51:29.000000Z\",\n    \"tags\": []\n  }\n}\n```\n\nKey fields:\n- `message` - Success confirmation\n- `recording.id` - New note UUID\n- `recording.transcript` - The note content\n\n## Notes\n\n- Note IDs are UUIDs\n- Rate limit: ~3 requests/second average\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7daq6w51frkqke7hw6gzpgmd80fe5v\",\n  \"slug\": \"voicenotes-official\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1770621871896\n}","readmeExcerpt":"Skill: Voicenotes Official Owner: gthu-vn Summary: This official skill from the Voicenotes team gives OpenClaw access to new APIs and the ability to search semantically, retrieve full transcripts, filter by t... Tags: latest:1.0.3 Version history: v1.0.3 | 2026-02-17T15:33:45.983Z | user Added input sanitization guidance to address shell injection concerns v1.0.2 | 2026-02-17T05:12:03.700Z | user Fixed metadata schem","codeSnippets":[],"executableExamples":[{"language":"yaml","snippet":"skills:\n  voicenotes:\n    env:\n      VOICENOTES_API_KEY: \"your_key_here\""},{"language":"bash","snippet":"export VOICENOTES_API_KEY=\"your_key_here\""},{"language":"bash","snippet":"curl -X GET \"https://api.voicenotes.com/api/integrations/open-claw/...\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\""},{"language":"bash","snippet":"curl -X GET \"https://api.voicenotes.com/api/integrations/open-claw/...\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\""},{"language":"bash","snippet":"curl -X GET \"https://api.voicenotes.com/api/integrations/open-claw/search/semantic?query={search_query}\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\""},{"language":"bash","snippet":"curl -X GET \"https://api.voicenotes.com/api/integrations/open-claw/search/semantic?query={search_query}\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: voicenotes\ndescription: This official skill from the Voicenotes team gives OpenClaw access to new APIs and the ability to search semantically, retrieve full transcripts, filter by tags or date range and create text notes — all through natural conversation.\n\nhomepage: https://voicenotes.com\nmetadata:\n  openclaw:\n    emoji: \"📝\"\n    requires:\n      env:\n        - VOICENOTES_API_KEY\n      bins:\n        - curl\n    primaryEnv: VOICENOTES_API_KEY\n---\n\n# voicenotes\n\nUse the Voicenotes skill to create, search and retrieve user’s notes.\n\n## Setup\n\n1. Create an integration at https://voicenotes.com/app?open-claw=true#settings\n2. Copy the API key\n3. Configure it:\n\n**Webchat:** Skills → Voicenotes → API Key in the sidebar\n\n**Terminal:** Add to your OpenClaw config (`~/.openclaw/config.yaml`):\n```yaml\nskills:\n  voicenotes:\n    env:\n      VOICENOTES_API_KEY: \"your_key_here\"\n```\n\nOr export it directly:\n```bash\nexport VOICENOTES_API_KEY=\"your_key_here\"\n```\n\nThe key is then available as `$VOICENOTES_API_KEY` environment variable.\n\n## API Basics\n\nAll requests need the Authorization header:\n\n```bash\ncurl -X GET \"https://api.voicenotes.com/api/integrations/open-claw/...\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\"\n```\n\n## Common Operations\n\n**Search query in users notes:**\n\nQuery parameters:\n- `query` (required): The search query string\n\n```bash\ncurl -X GET \"https://api.voicenotes.com/api/integrations/open-claw/search/semantic?query={search_query}\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\"\n```\n\n**Get multiple Voicenotes with filters (tags and date range):**\n\nQuery parameters:\n- `tags` (optional): array of valid tags\n- `date_range` (optional): array with start and end date as UTC timestamps\n\n```bash\ncurl -X POST \"https://api.voicenotes.com/api/integrations/open-claw/recordings\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"tags\": [\"tag1\", \"tag2\"],\n    \"date_range\": [\"2026-01-01T00:00:00.000000Z\", \"2026-02-01T00:00:00.000000Z\"]\n  }'\n```\n\n**If you want more context get the whole transcript:**\n\n```bash\ncurl \"https://api.voicenotes.com/api/integrations/open-claw/recordings/{recording_uuid}\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n```\n\n**Create a text note in Voicenotes:**\n\n```bash\ncurl -X POST \"https://api.voicenotes.com/api/integrations/open-claw/recordings/new\" \\\n  -H \"Authorization: $VOICENOTES_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"recording_type\": 3,\n    \"transcript\": \"note content here\",\n    \"device_info\": \"open-claw\"\n  }'\n```\n\n## Response Structure\n\n**Semantic Search Response:**\n\nReturns an array of notes and note splits ordered by relevance:\n\n```json\n[\n  {\n    \"type\": \"note\",\n    \"uuid\": \"NTHiJljf\",\n    \"title\": \"Quick idea about project\",\n    \"transcript\": \"Full transcript text with <br> for line breaks...\",\n    \"tags\": [\"idea\", \"project\"],\n    \"created_at\": \"2025-01-15T10:30:00.000000Z\"\n  },\n  {\n    \"type\": \"note_split\",\n    \"uuid\": \"8JzkhEGh\",\n    \"title\": \"Long mee"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7daq6w51frkqke7hw6gzpgmd80fe5v\",\n  \"slug\": \"voicenotes-official\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1771342425983\n}"},{"path":"skill-card.md","content":"## Description:\n\nThis official skill from the Voicenotes team gives OpenClaw access to APIs for semantic note search, full transcript retrieval, tag or date filtering, and text note creation through natural conversation.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[gthu-vn](https://clawhub.ai/user/gthu-vn)\n\n### License/Terms of Use:\n\n\n## Use Case:\n\nExternal users and developers use this skill to let an OpenClaw agent search, retrieve, filter, and create notes in their own Voicenotes account through authenticated API calls.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can expose note contents and search terms to Voicenotes through authenticated API requests.\n\nMitigation: Use it only with Voicenotes accounts trusted for the relevant note contents, and avoid sending secrets or regulated information unless that is appropriate for the account.\n\nRisk: The skill can create notes or retrieve transcripts in the user's Voicenotes account.\n\nMitigation: Review requested account actions before execution and keep the API key scoped to the intended Voicenotes account.\n\nRisk: Unsafe interpolation of search queries, recording IDs, or JSON fields could alter generated shell commands.\n\nMitigation: URL-encode search queries, validate recording IDs against the documented alphanumeric pattern, and JSON-encode request bodies instead of concatenating raw user input.\n\n## Reference(s):\n\n- [Voicenotes homepage](https://voicenotes.com)\n- [Voicenotes OpenClaw integration setup](https://voicenotes.com/app?open-claw=true#settings)\n- [Voicenotes Official ClawHub listing](https://clawhub.ai/gthu-vn/skills/voicenotes-official)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, API Calls, Guidance]\n\n**Output Format:** [Markdown with curl commands, YAML configuration, and JSON response examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires VOICENOTES_API_KEY and curl; API calls operate on the user's authenticated Voicenotes account.]\n\n## Skill Version(s):\n\n1.0.3 (source: server release metadata)\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."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"This official skill from the Voicenotes team gives OpenClaw access to new APIs and the ability to search semantically, retrieve full transcripts, filter by t... Skill: Voicenotes Official Owner: gthu-vn Summary: This official skill from the Voicenotes team gives OpenClaw access to new APIs and the ability to search semantically, retrieve full transcripts, filter by t... Tags: latest:1.0.3 Version history: v1.0.3 | 2026-02-17T15:33:45.983Z | user Added input sanitization guidance to address shell injection concerns v1.0.2 | 2026-02-17T05:12:03.700Z | user Fixed metadata schem","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":961,"uniquenessScore":52,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T13:07:56.687Z","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-09T13:07:56.687Z","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-10T01:45:19.280Z","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"}]}}}