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...
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install voicenotes-official或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install voicenotes-official⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/voicenotes-official/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: voicenotes 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 tags or date range and create text notes — all through natural conversation.
homepage: https://voicenotes.com metadata: openclaw: emoji: "📝" requires: env: - VOICENOTES_API_KEY bins: - curl primaryEnv: VOICENOTES_API_KEY ---
Use the Voicenotes skill to create, search and retrieve user’s notes.
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.
All requests need the Authorization header:
curl -X GET "https://api.voicenotes.com/api/integrations/open-claw/..." \
-H "Authorization: $VOICENOTES_API_KEY"
Search query in users notes:
Query parameters:
query (required): The search query stringcurl -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 tagsdate_range (optional): array with start and end date as UTC timestampscurl -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"
}'
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 searchtype: "note_split" - Chunk from a larger note; use the uuid to fetch full transcript if neededtype: "import_split" - Chunk from an imported note; title is the filename; cannot be fetched via /recordings/{uuid}transcript may contain HTML (
, ) for formattingGet 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 objectslinks.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 UUIDtranscript - Full text (meetings include [HH:MM:SS] Speaker N: timestamps)duration - Length in millisecondsrecording_type - 1=voice note, 2=voice meeting, 3=text notetags - Array of tag objects with name fieldCreate 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 confirmationrecording.id - New note UUIDrecording.transcript - The note contentapi.voicenotes.com endpointsWhen constructing API requests, the agent MUST sanitize all user-provided inputs:
query parameter using --data-urlencode instead of string interpolation;, |, &, $, ` `, \`)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}$/
安装 Voicenotes Official 后,可以对 AI 说这些话来触发它
Help me get started with Voicenotes Official
Explains what Voicenotes Official does, walks through the setup, and runs a quick demo based on your current project
Use Voicenotes Official to this official skill from the Voicenotes team gives OpenClaw access ...
Invokes Voicenotes Official with the right parameters and returns the result directly in the conversation
What can I do with Voicenotes Official in my documents & notes workflow?
Lists the top use cases for Voicenotes Official, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/voicenotes-official/ 目录(个人级,所有项目可用),或 .claude/skills/voicenotes-official/(项目级)。重启 AI 客户端后,用 /voicenotes-official 主动调用,或让 AI 根据上下文自动发现并使用。
Voicenotes Official 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Voicenotes Official 可免费安装使用。请查阅仓库了解许可证信息。
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...
Voicenotes Official 属于「Documents & Notes」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my documents & notes tasks using Voicenotes Official
Identifies repetitive steps in your workflow and sets up Voicenotes Official to handle them automatically