# Send Voicenotes Official to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "voicenotes-official",
    "name": "Voicenotes Official",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/gthu-bmc/voicenotes-official",
    "canonicalUrl": "https://clawhub.ai/gthu-bmc/voicenotes-official",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/voicenotes-official",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=voicenotes-official",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "voicenotes-official",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-10T17:56:42.875Z",
      "expiresAt": "2026-05-17T17:56:42.875Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=voicenotes-official",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=voicenotes-official",
        "contentDisposition": "attachment; filename=\"voicenotes-official-1.0.3.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "voicenotes-official"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/voicenotes-official"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/voicenotes-official",
    "downloadUrl": "https://openagent3.xyz/downloads/voicenotes-official",
    "agentUrl": "https://openagent3.xyz/skills/voicenotes-official/agent",
    "manifestUrl": "https://openagent3.xyz/skills/voicenotes-official/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/voicenotes-official/agent.md"
  }
}
```
## Documentation

### voicenotes

Use the Voicenotes skill to create, search and retrieve user’s notes.

### Setup

Create an integration at https://voicenotes.com/app?open-claw=true#settings
Copy the API key
Configure it:

Webchat: Skills → Voicenotes → API Key in the sidebar

Terminal: Add to your OpenClaw config (~/.openclaw/config.yaml):

skills:
  voicenotes:
    env:
      VOICENOTES_API_KEY: "your_key_here"

Or export it directly:

export VOICENOTES_API_KEY="your_key_here"

The key is then available as $VOICENOTES_API_KEY environment variable.

### API Basics

All requests need the Authorization header:

curl -X GET "https://api.voicenotes.com/api/integrations/open-claw/..." \\
  -H "Authorization: $VOICENOTES_API_KEY"

### Common Operations

Search query in users notes:

Query parameters:

query (required): The search query string

curl -X GET "https://api.voicenotes.com/api/integrations/open-claw/search/semantic?query={search_query}" \\
  -H "Authorization: $VOICENOTES_API_KEY"

Get multiple Voicenotes with filters (tags and date range):

Query parameters:

tags (optional): array of valid tags
date_range (optional): array with start and end date as UTC timestamps

curl -X POST "https://api.voicenotes.com/api/integrations/open-claw/recordings" \\
  -H "Authorization: $VOICENOTES_API_KEY" \\
  -H "Content-Type: application/json" \\
  -d '{
    "tags": ["tag1", "tag2"],
    "date_range": ["2026-01-01T00:00:00.000000Z", "2026-02-01T00:00:00.000000Z"]
  }'

If you want more context get the whole transcript:

curl "https://api.voicenotes.com/api/integrations/open-claw/recordings/{recording_uuid}" \\
  -H "Authorization: $VOICENOTES_API_KEY" \\

Create a text note in Voicenotes:

curl -X POST "https://api.voicenotes.com/api/integrations/open-claw/recordings/new" \\
  -H "Authorization: $VOICENOTES_API_KEY" \\
  -H "Content-Type: application/json" \\
  -d '{
    "recording_type": 3,
    "transcript": "note content here",
    "device_info": "open-claw"
  }'

### Response Structure

Semantic Search Response:

Returns an array of notes and note splits ordered by relevance:

[
  {
    "type": "note",
    "uuid": "NTHiJljf",
    "title": "Quick idea about project",
    "transcript": "Full transcript text with <br> for line breaks...",
    "tags": ["idea", "project"],
    "created_at": "2025-01-15T10:30:00.000000Z"
  },
  {
    "type": "note_split",
    "uuid": "8JzkhEGh",
    "title": "Long meeting notes",
    "transcript": "Relevant chunk from a larger note...",
    "tags": ["meeting"],
    "created_at": "2025-01-14T09:00:00.000000Z"
  },
  {
    "type": "import_split",
    "uuid": "xYz12345",
    "title": "filename.extension",
    "transcript": "Chunk from an imported note...",
    "tags": ["imported"],
    "created_at": "2025-01-10T14:00:00.000000Z"
  }
]

type: "note" - Complete note matching the search
type: "note_split" - Chunk from a larger note; use the uuid to fetch full transcript if needed
type: "import_split" - Chunk from an imported note; title is the filename; cannot be fetched via /recordings/{uuid}
transcript may contain HTML (<br>, <b>) for formatting

Get Recordings Response (with filters):

Returns paginated notes matching the filters:

{
  "data": [
    {
      "id": "bTZI5t12",
      "title": null,
      "transcript": "this is a sample note",
      "duration": 0,
      "recorded_at": "2026-02-06T10:07:45.000000Z",
      "created_at": "2026-02-06T10:07:45.000000Z",
      "recording_type": 3,
      "tags": []
    }
  ],
  "links": {
    "first": "https://api.voicenotes.com/api/integrations/open-claw/recordings?page=1",
    "last": null,
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "path": "https://api.voicenotes.com/api/integrations/open-claw/recordings",
    "per_page": 10,
    "to": 1
  }
}

Key fields:

data - Array of recording objects
links.next - URL for next page (null if no more pages)
meta.per_page - Results per page (default 10)

Get Recording Response:

Returns full note details:

{
  "data": {
    "id": "NTHiJljf",
    "title": "Meeting Connectivity Check",
    "transcript": "Full transcript text...",
    "duration": 12101,
    "recorded_at": "2025-08-07T09:50:14.000000Z",
    "created_at": "2025-08-07T09:50:14.000000Z",
    "recording_type": 2,
    "tags": ["meeting"],
    "subnotes": [],
    "attachments": []
  }
}

Key fields:

id - Note UUID
transcript - Full text (meetings include [HH:MM:SS] Speaker N: timestamps)
duration - Length in milliseconds
recording_type - 1=voice note, 2=voice meeting, 3=text note
tags - Array of tag objects with name field

Create Note Response:

{
  "message": "Recording audio uploaded successfully!",
  "recording": {
    "id": "bPI3RcUP",
    "recording_id": "bPI3RcUP",
    "title": null,
    "transcript": "Sample note",
    "recording_type": 3,
    "created_at": "2026-02-04T08:51:29.000000Z",
    "tags": []
  }
}

Key fields:

message - Success confirmation
recording.id - New note UUID
recording.transcript - The note content

### Notes

Note IDs are UUIDs
Rate limit: ~3 requests/second average

### Security & Guardrails

Only accesses api.voicenotes.com endpoints
No credential exfiltration or external data storage
No telemetry or analytics
No automatic code execution or file overwrites
Read/write limited to user's own Voicenotes data via authenticated API

### Input Sanitization

When constructing API requests, the agent MUST sanitize all user-provided inputs:

Search queries: URL-encode the query parameter using --data-urlencode instead of string interpolation
Recording UUIDs: Validate format (alphanumeric, 8 characters) before use; reject any input containing shell metacharacters (;, |, &, $, \`, \\)
JSON body fields: Use proper JSON encoding; never concatenate raw user input into JSON strings

Safe example for search:

curl -G "https://api.voicenotes.com/api/integrations/open-claw/search/semantic" \\
  --data-urlencode "query=user search term here" \\
  -H "Authorization: $VOICENOTES_API_KEY"

UUID validation pattern: /^[a-zA-Z0-9]{8}$/
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: gthu-bmc
- Version: 1.0.3
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-10T17:56:42.875Z
- Expires at: 2026-05-17T17:56:42.875Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/voicenotes-official)
- [Send to Agent page](https://openagent3.xyz/skills/voicenotes-official/agent)
- [JSON manifest](https://openagent3.xyz/skills/voicenotes-official/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/voicenotes-official/agent.md)
- [Download page](https://openagent3.xyz/downloads/voicenotes-official)