voicenotes-officialThis official skill from the Voicenotes team gives OpenClaw access to new APIs and the ability to search semantically, retrieve full transcripts, filter by t...
Install via ClawdBot CLI:
clawdbot install gthu-bmc/voicenotes-officialUse 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}$/
Generated Mar 1, 2026
A journalist uses the skill to quickly search through interview recordings and notes by semantic query, retrieving relevant segments for article writing. They filter by date range to organize notes from a specific event and create text notes to capture follow-up ideas.
A law firm integrates the skill to manage client meeting transcripts and case notes, using tags to categorize by case type or client. They retrieve full transcripts for detailed review and create text notes for legal briefs or summaries.
Researchers use the skill to semantically search across shared notes and recordings from experiments or literature reviews. They filter by tags like 'methodology' or 'results' and create text notes to document hypotheses and findings for team collaboration.
A product team leverages the skill to search through brainstorming session recordings and notes by keywords like 'feature' or 'bug'. They filter by date to track progress over sprints and create text notes for action items and design decisions.
Healthcare professionals use the skill to manage patient consultation recordings and notes, searching semantically for symptoms or treatments. They filter by tags such as 'follow-up' or 'diagnosis' and create text notes for treatment plans and referrals.
Offer a free tier with limited API calls and basic features to attract individual users, then charge for premium tiers with higher rate limits, advanced search, and team collaboration tools. Revenue comes from subscription fees based on usage and features.
License the skill to businesses for integration into their internal tools like CRM or project management systems, providing custom APIs and support. Revenue is generated through annual licensing fees and service contracts for maintenance and updates.
List the skill on AI agent marketplaces or platforms, earning revenue through pay-per-use fees or commissions on transactions. This model targets developers building applications that require note management and search capabilities.
💬 Integration Tip
Ensure the VOICENOTES_API_KEY is securely stored in environment variables and test API calls with curl first to verify connectivity before full integration.
Turn your AI into JARVIS. Voice, wit, and personality — the complete package. Humor cranked to maximum.
Local Voice Input/Output for Agents using the AI Voice Agent API.
Transcribe audio files using OpenAI's gpt-4o-mini-transcribe model with vocabulary hints and text replacements. Requires uv (https://docs.astral.sh/uv/).
本地生成 Telegram 语音消息,支持自动清洗、分段与临时文件管理。
Speak responses aloud on macOS using the built-in `say` command when user input indicates Voice Wake/voice recognition (for example, messages starting with "User talked via voice recognition on <device>").
向指定 Telegram 群组发送语音消息