{"id":"b6ac24ac-e71b-4ebc-a463-9c4e77ad8b5f","entityType":"agent","slug":"clawhub-shubhamsaboo-google-gemini-tts","name":"Google Gemini TTS","canonicalUrl":"https://www.xpersona.co/agent/clawhub-shubhamsaboo-google-gemini-tts","canonicalPath":"/agent/clawhub-shubhamsaboo-google-gemini-tts","generatedAt":"2026-10-12T21:04:46.082Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T23:43:39.073Z","emptyReason":null},"description":"Generate spoken audio from text using Google's Gemini TTS models (default is Gemini 3.1 Flash TTS Preview, with fallback to Gemini 2.5 Flash/Pro preview TTS)... Skill: Google Gemini TTS Owner: shubhamsaboo Summary: Generate spoken audio from text using Google's Gemini TTS models (default is Gemini 3.1 Flash TTS Preview, with fallback to Gemini 2.5 Flash/Pro preview TTS)... Tags: latest:1.0.3 Version history: v1.0.3 | 2026-04-16T00:04:27.800Z | user Rewrite Style control docs to match Gemini 3.1 Flash TTS prompting guide: distinguish inline audio tags from structured AUDIO PR","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 974 downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s176jey2ys9ggehnmve29zyq3x83gqtj:google-gemini-tts","sourceUrl":"https://clawhub.ai/shubhamsaboo/google-gemini-tts","homepage":"https://clawhub.ai/shubhamsaboo/skills/google-gemini-tts","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/shubhamsaboo/google-gemini-tts","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/shubhamsaboo/skills/google-gemini-tts","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Generate spoken audio from text using Google's Gemini TTS models (default is Gemini 3.1 Flash TTS Preview, with fallback to Gemini 2.5 Flash/Pro preview TTS)..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T23:43:39.073Z","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-11T23:43:39.073Z","emptyReason":null},"stars":null,"forks":null,"downloads":974,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.0.3","tractionLabel":"974 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T23:43:39.061Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T23:43:39.073Z","lastCrawledAt":"2026-10-11T23:43:39.061Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T23:43:39.061Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.3","createdAt":"2026-04-16T00:04:27.800Z","changelog":"Rewrite Style control docs to match Gemini 3.1 Flash TTS prompting guide: distinguish inline audio tags from structured AUDIO PROFILE/SCENE/DIRECTOR'S NOTES/TRANSCRIPT blocks, list real tag examples (emotion, pace, non-verbal, character), drop old preamble-only bullets.","fileCount":5,"zipByteSize":9377},{"version":"1.0.2","createdAt":"2026-04-15T23:53:19.622Z","changelog":"Dependency check parity: script's runtime deps loop now verifies base64 alongside curl, jq, ffmpeg, matching requires.bins.","fileCount":4,"zipByteSize":7263},{"version":"1.0.1","createdAt":"2026-04-15T23:44:30.313Z","changelog":"Security hardening: remove gcloud ADC fallback (no more ambient cloud credential use). Fix metadata/code parity: declare only GEMINI_API_KEY as required (GOOGLE_API_KEY still accepted as a script-level alias), add base64 to requires.bins. Fix display-name capitalization (TTS).","fileCount":4,"zipByteSize":7259},{"version":"1.0.0","createdAt":"2026-04-15T23:29:51.789Z","changelog":"Initial publish: Gemini 3.1 Flash TTS with 2.5 Flash/Pro fallbacks","fileCount":4,"zipByteSize":7311}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s176jey2ys9ggehnmve29zyq3x83gqtj:google-gemini-tts","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-shubhamsaboo-google-gemini-tts/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shubhamsaboo-google-gemini-tts/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shubhamsaboo-google-gemini-tts/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-shubhamsaboo-google-gemini-tts/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-shubhamsaboo-google-gemini-tts/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-shubhamsaboo-google-gemini-tts/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-12T21:04:46.081Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shubhamsaboo-google-gemini-tts/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shubhamsaboo-google-gemini-tts/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shubhamsaboo-google-gemini-tts/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shubhamsaboo-google-gemini-tts/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-11T23:43:39.073Z","emptyReason":null},"readme":"Skill: Google Gemini TTS\n\nOwner: shubhamsaboo\n\nSummary: Generate spoken audio from text using Google's Gemini TTS models (default is Gemini 3.1 Flash TTS Preview, with fallback to Gemini 2.5 Flash/Pro preview TTS)...\n\nTags: latest:1.0.3\n\nVersion history:\n\nv1.0.3 | 2026-04-16T00:04:27.800Z | user\n\nRewrite Style control docs to match Gemini 3.1 Flash TTS prompting guide: distinguish inline audio tags from structured AUDIO PROFILE/SCENE/DIRECTOR'S NOTES/TRANSCRIPT blocks, list real tag examples (emotion, pace, non-verbal, character), drop old preamble-only bullets.\n\nv1.0.2 | 2026-04-15T23:53:19.622Z | user\n\nDependency check parity: script's runtime deps loop now verifies base64 alongside curl, jq, ffmpeg, matching requires.bins.\n\nv1.0.1 | 2026-04-15T23:44:30.313Z | user\n\nSecurity hardening: remove gcloud ADC fallback (no more ambient cloud credential use). Fix metadata/code parity: declare only GEMINI_API_KEY as required (GOOGLE_API_KEY still accepted as a script-level alias), add base64 to requires.bins. Fix display-name capitalization (TTS).\n\nv1.0.0 | 2026-04-15T23:29:51.789Z | user\n\nInitial publish: Gemini 3.1 Flash TTS with 2.5 Flash/Pro fallbacks\n\nArchive index:\n\nArchive v1.0.3: 5 files, 9377 bytes\n\nFiles: README.md (3597b), scripts/gemini_tts.sh (5388b), skill-card.md (2285b), SKILL.md (7196b), _meta.json (136b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: google-gemini-tts\ndescription: \"Generate spoken audio from text using Google's Gemini TTS models (default is Gemini 3.1 Flash TTS Preview, with fallback to Gemini 2.5 Flash/Pro preview TTS). Use when an agent needs to convert text to speech, produce voice replies, narrate briefings or newsletters, create podcast-style two-speaker conversations, generate audio with expressive style control (whispers, pauses, accents, emotion), or output WAV files for voice-enabled workflows. Supports 30 prebuilt voices, 70+ languages, single and multi-speaker modes, and natural-language style prompts. Requires a GEMINI_API_KEY from Google AI Studio (the script also accepts GOOGLE_API_KEY as an alternative name for the same key).\"\nversion: 1.0.3\nauthor: Shubham Saboo\ncompatibility: Requires curl, jq, base64, ffmpeg, and a GEMINI_API_KEY from Google AI Studio. Preview model names may change as Google promotes them to GA.\nmetadata:\n  openclaw:\n    emoji: \"🔊\"\n    homepage: https://ai.google.dev/gemini-api/docs/speech-generation\n    requires:\n      env:\n        - GEMINI_API_KEY\n      bins:\n        - curl\n        - jq\n        - base64\n        - ffmpeg\n    primaryEnv: GEMINI_API_KEY\n---\n\n# Gemini TTS\n\nGenerate speech audio from text using Gemini TTS models. The default is Gemini 3.1 Flash TTS Preview, and the script still supports Gemini 2.5 preview TTS models when you pass `-m`.\n\n## What this skill does\n\n- Single-speaker text to speech\n- Two-speaker podcast-style audio\n- Style control with natural language prompts\n- WAV output that can be sent directly in chat or used in apps\n\n## Files\n\n- `scripts/gemini_tts.sh`: CLI wrapper around the Gemini REST API\n\n## Quick start\n\n```bash\n# Show all options\nscripts/gemini_tts.sh --help\n\n# Single speaker, default voice (Kore)\nscripts/gemini_tts.sh \"Hello, welcome to the show!\"\n\n# Pick a voice\nscripts/gemini_tts.sh -v Puck \"This is Puck speaking.\"\n\n# With style control\nscripts/gemini_tts.sh -s \"Say in a warm, calm tone:\" \"Take a deep breath.\"\n\n# Save to a specific file\nscripts/gemini_tts.sh -o /tmp/greeting.wav \"Hey there!\"\n\n# Multi-speaker conversation\nscripts/gemini_tts.sh --multi \"Host:Kore,Guest:Puck\" \\\n  \"Host: Welcome to the podcast! Guest: Thanks for having me.\"\n```\n\nThe script prints the output WAV file path.\n\n## Models\n\n| Model | Best for |\n|---|---|\n| `gemini-3.1-flash-tts-preview` (default) | Best default now: low-latency, natural output, expressive narration |\n| `gemini-2.5-flash-preview-tts` | Backward-compatible fast preview model |\n| `gemini-2.5-pro-preview-tts` | Long-form narration and higher-end creative work |\n\nCurrent note: Gemini 3.1 Flash TTS Preview is live and should be the default path for this skill. Gemini 2.5 preview TTS models remain useful as compatibility fallbacks.\n\n> **Preview model note:** `gemini-3.1-flash-tts-preview` is a preview model. If Google renames or retires it, pass `-m gemini-2.5-flash-preview-tts` as a fallback, or check the [current model list](https://ai.google.dev/gemini-api/docs/models).\n\nSwitch model examples:\n\n```bash\nscripts/gemini_tts.sh -m gemini-2.5-pro-preview-tts \"Your text here\"\nscripts/gemini_tts.sh -m gemini-2.5-flash-preview-tts \"Your text here\"\n```\n\n## Voices\n\nAvailable prebuilt voices:\n\n`Zephyr`, `Puck`, `Charon`, `Kore`, `Fenrir`, `Leda`, `Orus`, `Aoede`, `Callirrhoe`, `Autonoe`, `Enceladus`, `Iapetus`, `Umbriel`, `Algieba`, `Despina`, `Erinome`, `Gacrux`, `Pulcherrima`, `Achird`, `Zubenelgenubi`, `Vindemiatrix`, `Sadachbia`, `Sadaltager`, `Sulafat`, `Laomedeia`, `Achernar`, `Schedar`, `Rasalgethi`, `Nashira`, `Enif`\n\nThe same 30-voice library is shared between `gemini-3.1-flash-tts-preview` and the `gemini-2.5-flash-preview-tts` / `gemini-2.5-pro-preview-tts` fallbacks, so a voice you pick for the default model will still work if you drop back to a fallback via `-m`.\n\n## Style control\n\nGemini 3.1 Flash TTS reads plain transcripts naturally, but gives you two complementary ways to steer the delivery when you want more control.\n\n### Inline audio tags\n\nDrop bracketed directions into the transcript. They modify what follows, can appear anywhere, and can stack or repeat across a single script:\n\n```text\n[excitedly] Massive update today — [whispers] but keep it between us. [laughs]\n```\n\nTags are open-ended; anything in `[ ]` is treated as a direction to the model. A useful starting set:\n\n- **Emotion** — `[excitedly]`, `[bored]`, `[reluctantly]`, `[amazed]`, `[curious]`, `[mischievously]`, `[panicked]`, `[sarcastic]`, `[serious]`, `[tired]`, `[trembling]`\n- **Pace and volume** — `[very fast]`, `[very slowly]`, `[asmr]`, `[deep and loud shouting]`, `[whispers]`\n- **Non-verbal** — `[gasp]`, `[giggles]`, `[sighs]`, `[snorts]`, `[cough]`, `[laughs]`, `[crying]`\n- **Character / style** — `[like dracula]`, `[like a dog]`, `[singing]`, `[sarcastically, one painfully slow word at a time]`\n\n### Structured context prompt\n\nFor longer pieces where you want a consistent persona, prepend an `AUDIO PROFILE / SCENE / DIRECTOR'S NOTES / TRANSCRIPT` block. The four headers are load-bearing — the model uses them to separate performance context from the script it should actually speak:\n\n```text\n# AUDIO PROFILE: Jaz, London morning-show radio DJ\n\n## THE SCENE: 10 PM, neon-lit studio, \"ON AIR\" tally blazing.\nJaz is bouncing on their heels, hands on the faders, infectious energy.\n\n### DIRECTOR'S NOTES\nStyle: vocal smile always audible; punchy consonants; elongated vowels on excitement words.\nAccent: Brixton, London.\nPace: energetic, bouncing cadence, no dead air.\n\n#### TRANSCRIPT\n[excitedly] Yes, massive vibes in the studio! [shouting] Turn it up!\n```\n\nInline tags inside `#### TRANSCRIPT` override the baseline direction when you want a specific beat.\n\n### Tips\n\n- Keep the script and direction coherent — the speaker, what is said, and how it is said should agree.\n- Don't overspecify. Give the model space to fill gaps; it reads better.\n- A simple preamble (\"Say cheerfully: ...\") still works for quick one-offs, but inline tags give you per-phrase control and structured prompts give you persona consistency.\n\nFull prompting reference: [Gemini speech-generation docs](https://ai.google.dev/gemini-api/docs/speech-generation).\n\n## Multi-speaker\n\nUp to 2 speakers. Use `--multi \"Name1:Voice1,Name2:Voice2\"` and make sure the speaker names in the text match.\n\n## Supported languages\n\n70+ languages are supported, including Arabic, Bengali, Chinese, English, French, German, Hindi, Indonesian, Italian, Japanese, Korean, Portuguese, Russian, Spanish, Turkish, Ukrainian, Urdu, Vietnamese, and many more. See the [Gemini speech-generation docs](https://ai.google.dev/gemini-api/docs/speech-generation) for the full locale list.\n\n## Limitations\n\n- Audio output only\n- Maximum 2 speakers in multi-speaker mode\n- Preview model names may change\n- No SSML support\n- No custom voice cloning\n\n## Verification\n\nBasic smoke test once your API key is set:\n\n```bash\nexport GEMINI_API_KEY=your_key_here   # GOOGLE_API_KEY is also accepted\nscripts/gemini_tts.sh -o /tmp/gemini-test.wav \"This is a Gemini TTS smoke test.\"\nfile /tmp/gemini-test.wav\n```\n\nExpected result: a playable WAV file is created (24 kHz mono, 16-bit PCM WAV).\n\nFile v1.0.3:README.md\n\n# gemini-tts\n\nClawHub-ready packaging for a Gemini text-to-speech skill.\n\nDefault target: Gemini 3.1 Flash TTS Preview.\nBackward compatibility: Gemini 2.5 Flash Preview TTS and Gemini 2.5 Pro Preview TTS still work when passed with `-m`.\n\n## What is in the bundle\n\n- `SKILL.md`: publishable skill definition\n- `scripts/gemini_tts.sh`: runnable shell wrapper for the Gemini REST API\n- `.clawhubignore`: excludes generated artifacts from the bundle\n\n## Why the new default matters\n\nGemini 3.1 Flash TTS Preview is the right default now because it combines:\n\n- low-latency speech generation\n- stronger naturalness\n- expressive audio tags\n- multilingual output\n- single-speaker and two-speaker generation in one simple workflow\n\nThis makes the skill more than a plain narrator. It is good for agents that need controllable voice output, not just generic TTS.\n\n## Prompting nuance\n\n- audio tags like `[short pause]` and `[whisper]` work best inside a structured transcript or a clear instruction block\n- a bare tag-heavy prompt without enough framing can return no audio\n- practical takeaway: wrap tags in a real narration prompt, not just a pile of modifiers\n\n## Tested prompt patterns that worked\n\nSingle speaker:\n\n```text\nSay in a spooky voice:\n\"By the pricking of my thumbs... [short pause]\n[whisper] Something wicked this way comes\"\n```\n\nMulti-speaker:\n\n```text\nMake Speaker1 sound tired and bored, and Speaker2 sound excited and happy:\n\nSpeaker1: So... [yawn] what's on the agenda today?\nSpeaker2: You're never going to guess!\n```\n\n## What agents can do with this\n\nThis model is especially useful when agents need to deliver output with intent.\n\nExamples:\n\n- Voice replies in chat: an agent can answer with a short spoken memo instead of plain text\n- Daily briefings: a research agent can turn its morning findings into a narrated update\n- Newsletter voice preview: a content agent can turn a written summary into a quick audio rundown\n- Social content drafts: a marketing agent can generate spoken hooks, trailers, or teaser clips\n- Podcast-style synthesis: two-agent conversations can become clean host and guest audio\n- Demo agents: product agents can narrate walkthroughs, onboarding, or feature explanations\n- Emotional delivery: agents can add pauses, whispers, excitement, boredom, or emphasis where it helps the message land\n\nThe main unlock is controllability. You are not just picking a voice. You are giving the agent delivery instructions.\n\n## Usage examples\n\nDefault model:\n\n```bash\nscripts/gemini_tts.sh \"Hello, welcome to the show!\"\n```\n\nPick a voice:\n\n```bash\nscripts/gemini_tts.sh -v Puck \"This is Puck speaking.\"\n```\n\nAdd style guidance:\n\n```bash\nscripts/gemini_tts.sh -s \"Say in a warm, calm tone:\" \"Take a deep breath.\"\n```\n\nUse explicit audio tags in the transcript:\n\n```bash\nscripts/gemini_tts.sh -o /tmp/tagged.wav 'Say in a spooky voice:\n\"By the pricking of my thumbs... [short pause]\n[whisper] Something wicked this way comes\"'\n```\n\nTwo-speaker audio:\n\n```bash\nscripts/gemini_tts.sh --multi \"Host:Kore,Guest:Puck\" \\\n  \"Host: Welcome to the podcast! Guest: Thanks for having me.\"\n```\n\nFallback model selection:\n\n```bash\nscripts/gemini_tts.sh -m gemini-2.5-pro-preview-tts \"Long-form narration example\"\n```\n\n## Requirements\n\nDeclared in `SKILL.md` under `metadata.openclaw.requires` — `GEMINI_API_KEY` (or `GOOGLE_API_KEY` as an alias), plus `curl`, `jq`, `base64`, and `ffmpeg` on the host.\n\n## Suggested publish flow\n\n1. Review `SKILL.md`\n2. Confirm the version number\n3. Submit the folder through the ClawHub publisher\n4. After publish, smoke test with a real API key\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7fhx3kpfzzdvb7hg46n42ea5831wxb\",\n  \"slug\": \"google-gemini-tts\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1776297867800\n}\n\nFile v1.0.3:skill-card.md\n\n## Description:\n\nGenerate spoken audio from text using Google's Gemini TTS models (default is Gemini 3.1 Flash TTS Preview, with fallback to Gemini 2.5 Flash/Pro preview TTS).\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[shubhamsaboo](https://clawhub.ai/user/shubhamsaboo)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to turn generated text into WAV speech for voice replies, briefings, narration, podcast-style two-speaker conversations, and style-controlled spoken output.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill sends user-provided text, style prompts, and related request data to Google's Gemini API.\n\nMitigation: Use it only for data your policy permits sending to Gemini, and avoid secrets, regulated data, or private documents unless approved.\n\nRisk: Gemini API usage may consume quota or incur billing, especially when preview models are selected.\n\nMitigation: Monitor Google API quota and billing for the API key used by the agent.\n\nRisk: Preview model names may change or be retired.\n\nMitigation: Check the current Gemini model list and use the documented fallback model option when needed.\n\n## Reference(s):\n\n- [Gemini speech generation documentation](https://ai.google.dev/gemini-api/docs/speech-generation)\n- [Gemini model list](https://ai.google.dev/gemini-api/docs/models)\n- [Google AI Studio API key setup](https://aistudio.google.com/apikey)\n- [ClawHub skill page](https://clawhub.ai/shubhamsaboo/skills/google-gemini-tts)\n\n## Skill Output:\n\n**Output Type(s):** [Shell commands, Configuration, Audio files, Guidance]\n\n**Output Format:** [Markdown guidance with shell commands; the runtime script writes a local WAV file path.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces 24 kHz mono, 16-bit PCM WAV output after converting Gemini audio response data with ffmpeg.]\n\n## Skill Version(s):\n\n1.0.3 (source: frontmatter and server release evidence)\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: 4 files, 7263 bytes\n\nFiles: README.md (3597b), scripts/gemini_tts.sh (5388b), SKILL.md (5458b), _meta.json (136b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: google-gemini-tts\ndescription: \"Generate spoken audio from text using Google's Gemini TTS models (default is Gemini 3.1 Flash TTS Preview, with fallback to Gemini 2.5 Flash/Pro preview TTS). Use when an agent needs to convert text to speech, produce voice replies, narrate briefings or newsletters, create podcast-style two-speaker conversations, generate audio with expressive style control (whispers, pauses, accents, emotion), or output WAV files for voice-enabled workflows. Supports 30 prebuilt voices, 70+ languages, single and multi-speaker modes, and natural-language style prompts. Requires a GEMINI_API_KEY from Google AI Studio (the script also accepts GOOGLE_API_KEY as an alternative name for the same key).\"\nversion: 1.0.2\nauthor: Shubham Saboo\ncompatibility: Requires curl, jq, base64, ffmpeg, and a GEMINI_API_KEY from Google AI Studio. Preview model names may change as Google promotes them to GA.\nmetadata:\n  openclaw:\n    emoji: \"🔊\"\n    homepage: https://ai.google.dev/gemini-api/docs/speech-generation\n    requires:\n      env:\n        - GEMINI_API_KEY\n      bins:\n        - curl\n        - jq\n        - base64\n        - ffmpeg\n    primaryEnv: GEMINI_API_KEY\n---\n\n# Gemini TTS\n\nGenerate speech audio from text using Gemini TTS models. The default is Gemini 3.1 Flash TTS Preview, and the script still supports Gemini 2.5 preview TTS models when you pass `-m`.\n\n## What this skill does\n\n- Single-speaker text to speech\n- Two-speaker podcast-style audio\n- Style control with natural language prompts\n- WAV output that can be sent directly in chat or used in apps\n\n## Files\n\n- `scripts/gemini_tts.sh`: CLI wrapper around the Gemini REST API\n\n## Quick start\n\n```bash\n# Show all options\nscripts/gemini_tts.sh --help\n\n# Single speaker, default voice (Kore)\nscripts/gemini_tts.sh \"Hello, welcome to the show!\"\n\n# Pick a voice\nscripts/gemini_tts.sh -v Puck \"This is Puck speaking.\"\n\n# With style control\nscripts/gemini_tts.sh -s \"Say in a warm, calm tone:\" \"Take a deep breath.\"\n\n# Save to a specific file\nscripts/gemini_tts.sh -o /tmp/greeting.wav \"Hey there!\"\n\n# Multi-speaker conversation\nscripts/gemini_tts.sh --multi \"Host:Kore,Guest:Puck\" \\\n  \"Host: Welcome to the podcast! Guest: Thanks for having me.\"\n```\n\nThe script prints the output WAV file path.\n\n## Models\n\n| Model | Best for |\n|---|---|\n| `gemini-3.1-flash-tts-preview` (default) | Best default now: low-latency, natural output, expressive narration |\n| `gemini-2.5-flash-preview-tts` | Backward-compatible fast preview model |\n| `gemini-2.5-pro-preview-tts` | Long-form narration and higher-end creative work |\n\nCurrent note: Gemini 3.1 Flash TTS Preview is live and should be the default path for this skill. Gemini 2.5 preview TTS models remain useful as compatibility fallbacks.\n\n> **Preview model note:** `gemini-3.1-flash-tts-preview` is a preview model. If Google renames or retires it, pass `-m gemini-2.5-flash-preview-tts` as a fallback, or check the [current model list](https://ai.google.dev/gemini-api/docs/models).\n\nSwitch model examples:\n\n```bash\nscripts/gemini_tts.sh -m gemini-2.5-pro-preview-tts \"Your text here\"\nscripts/gemini_tts.sh -m gemini-2.5-flash-preview-tts \"Your text here\"\n```\n\n## Voices\n\nAvailable prebuilt voices:\n\n`Zephyr`, `Puck`, `Charon`, `Kore`, `Fenrir`, `Leda`, `Orus`, `Aoede`, `Callirrhoe`, `Autonoe`, `Enceladus`, `Iapetus`, `Umbriel`, `Algieba`, `Despina`, `Erinome`, `Gacrux`, `Pulcherrima`, `Achird`, `Zubenelgenubi`, `Vindemiatrix`, `Sadachbia`, `Sadaltager`, `Sulafat`, `Laomedeia`, `Achernar`, `Schedar`, `Rasalgethi`, `Nashira`, `Enif`\n\nThe same 30-voice library is shared between `gemini-3.1-flash-tts-preview` and the `gemini-2.5-flash-preview-tts` / `gemini-2.5-pro-preview-tts` fallbacks, so a voice you pick for the default model will still work if you drop back to a fallback via `-m`.\n\n## Style control\n\nControl tone, pace, and delivery with natural language prompts. Gemini 3.1 Flash TTS Preview also supports expressive audio tags for finer narration control when you want to lean into the newer model features:\n\n- `\"Say in a spooky whisper:\"`\n- `\"Read enthusiastically as a sports announcer:\"`\n- `\"Speak slowly and calmly, like a meditation guide:\"`\n- `\"Say with a British accent, cheerfully:\"`\n\nFor multi-speaker output, put speaker instructions into the prompt itself:\n\n```text\nMake Host sound professional and warm, and Guest sound excited.\nHost: Welcome back to AI Weekly.\nGuest: I can't wait to share what we found.\n```\n\n## Multi-speaker\n\nUp to 2 speakers. Use `--multi \"Name1:Voice1,Name2:Voice2\"` and make sure the speaker names in the text match.\n\n## Supported languages\n\n70+ languages are supported, including Arabic, Bengali, Chinese, English, French, German, Hindi, Indonesian, Italian, Japanese, Korean, Portuguese, Russian, Spanish, Turkish, Ukrainian, Urdu, Vietnamese, and many more. See the [Gemini speech-generation docs](https://ai.google.dev/gemini-api/docs/speech-generation) for the full locale list.\n\n## Limitations\n\n- Audio output only\n- Maximum 2 speakers in multi-speaker mode\n- Preview model names may change\n- No SSML support\n- No custom voice cloning\n\n## Verification\n\nBasic smoke test once your API key is set:\n\n```bash\nexport GEMINI_API_KEY=your_key_here   # GOOGLE_API_KEY is also accepted\nscripts/gemini_tts.sh -o /tmp/gemini-test.wav \"This is a Gemini TTS smoke test.\"\nfile /tmp/gemini-test.wav\n```\n\nExpected result: a playable WAV file is created (24 kHz mono, 16-bit PCM WAV).\n\nFile v1.0.2:README.md\n\n# gemini-tts\n\nClawHub-ready packaging for a Gemini text-to-speech skill.\n\nDefault target: Gemini 3.1 Flash TTS Preview.\nBackward compatibility: Gemini 2.5 Flash Preview TTS and Gemini 2.5 Pro Preview TTS still work when passed with `-m`.\n\n## What is in the bundle\n\n- `SKILL.md`: publishable skill definition\n- `scripts/gemini_tts.sh`: runnable shell wrapper for the Gemini REST API\n- `.clawhubignore`: excludes generated artifacts from the bundle\n\n## Why the new default matters\n\nGemini 3.1 Flash TTS Preview is the right default now because it combines:\n\n- low-latency speech generation\n- stronger naturalness\n- expressive audio tags\n- multilingual output\n- single-speaker and two-speaker generation in one simple workflow\n\nThis makes the skill more than a plain narrator. It is good for agents that need controllable voice output, not just generic TTS.\n\n## Prompting nuance\n\n- audio tags like `[short pause]` and `[whisper]` work best inside a structured transcript or a clear instruction block\n- a bare tag-heavy prompt without enough framing can return no audio\n- practical takeaway: wrap tags in a real narration prompt, not just a pile of modifiers\n\n## Tested prompt patterns that worked\n\nSingle speaker:\n\n```text\nSay in a spooky voice:\n\"By the pricking of my thumbs... [short pause]\n[whisper] Something wicked this way comes\"\n```\n\nMulti-speaker:\n\n```text\nMake Speaker1 sound tired and bored, and Speaker2 sound excited and happy:\n\nSpeaker1: So... [yawn] what's on the agenda today?\nSpeaker2: You're never going to guess!\n```\n\n## What agents can do with this\n\nThis model is especially useful when agents need to deliver output with intent.\n\nExamples:\n\n- Voice replies in chat: an agent can answer with a short spoken memo instead of plain text\n- Daily briefings: a research agent can turn its morning findings into a narrated update\n- Newsletter voice preview: a content agent can turn a written summary into a quick audio rundown\n- Social content drafts: a marketing agent can generate spoken hooks, trailers, or teaser clips\n- Podcast-style synthesis: two-agent conversations can become clean host and guest audio\n- Demo agents: product agents can narrate walkthroughs, onboarding, or feature explanations\n- Emotional delivery: agents can add pauses, whispers, excitement, boredom, or emphasis where it helps the message land\n\nThe main unlock is controllability. You are not just picking a voice. You are giving the agent delivery instructions.\n\n## Usage examples\n\nDefault model:\n\n```bash\nscripts/gemini_tts.sh \"Hello, welcome to the show!\"\n```\n\nPick a voice:\n\n```bash\nscripts/gemini_tts.sh -v Puck \"This is Puck speaking.\"\n```\n\nAdd style guidance:\n\n```bash\nscripts/gemini_tts.sh -s \"Say in a warm, calm tone:\" \"Take a deep breath.\"\n```\n\nUse explicit audio tags in the transcript:\n\n```bash\nscripts/gemini_tts.sh -o /tmp/tagged.wav 'Say in a spooky voice:\n\"By the pricking of my thumbs... [short pause]\n[whisper] Something wicked this way comes\"'\n```\n\nTwo-speaker audio:\n\n```bash\nscripts/gemini_tts.sh --multi \"Host:Kore,Guest:Puck\" \\\n  \"Host: Welcome to the podcast! Guest: Thanks for having me.\"\n```\n\nFallback model selection:\n\n```bash\nscripts/gemini_tts.sh -m gemini-2.5-pro-preview-tts \"Long-form narration example\"\n```\n\n## Requirements\n\nDeclared in `SKILL.md` under `metadata.openclaw.requires` — `GEMINI_API_KEY` (or `GOOGLE_API_KEY` as an alias), plus `curl`, `jq`, `base64`, and `ffmpeg` on the host.\n\n## Suggested publish flow\n\n1. Review `SKILL.md`\n2. Confirm the version number\n3. Submit the folder through the ClawHub publisher\n4. After publish, smoke test with a real API key\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7fhx3kpfzzdvb7hg46n42ea5831wxb\",\n  \"slug\": \"google-gemini-tts\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1776297199622\n}\n\nArchive v1.0.1: 4 files, 7259 bytes\n\nFiles: README.md (3597b), scripts/gemini_tts.sh (5373b), SKILL.md (5458b), _meta.json (136b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: google-gemini-tts\ndescription: \"Generate spoken audio from text using Google's Gemini TTS models (default is Gemini 3.1 Flash TTS Preview, with fallback to Gemini 2.5 Flash/Pro preview TTS). Use when an agent needs to convert text to speech, produce voice replies, narrate briefings or newsletters, create podcast-style two-speaker conversations, generate audio with expressive style control (whispers, pauses, accents, emotion), or output WAV files for voice-enabled workflows. Supports 30 prebuilt voices, 70+ languages, single and multi-speaker modes, and natural-language style prompts. Requires a GEMINI_API_KEY from Google AI Studio (the script also accepts GOOGLE_API_KEY as an alternative name for the same key).\"\nversion: 1.0.1\nauthor: Shubham Saboo\ncompatibility: Requires curl, jq, base64, ffmpeg, and a GEMINI_API_KEY from Google AI Studio. Preview model names may change as Google promotes them to GA.\nmetadata:\n  openclaw:\n    emoji: \"🔊\"\n    homepage: https://ai.google.dev/gemini-api/docs/speech-generation\n    requires:\n      env:\n        - GEMINI_API_KEY\n      bins:\n        - curl\n        - jq\n        - base64\n        - ffmpeg\n    primaryEnv: GEMINI_API_KEY\n---\n\n# Gemini TTS\n\nGenerate speech audio from text using Gemini TTS models. The default is Gemini 3.1 Flash TTS Preview, and the script still supports Gemini 2.5 preview TTS models when you pass `-m`.\n\n## What this skill does\n\n- Single-speaker text to speech\n- Two-speaker podcast-style audio\n- Style control with natural language prompts\n- WAV output that can be sent directly in chat or used in apps\n\n## Files\n\n- `scripts/gemini_tts.sh`: CLI wrapper around the Gemini REST API\n\n## Quick start\n\n```bash\n# Show all options\nscripts/gemini_tts.sh --help\n\n# Single speaker, default voice (Kore)\nscripts/gemini_tts.sh \"Hello, welcome to the show!\"\n\n# Pick a voice\nscripts/gemini_tts.sh -v Puck \"This is Puck speaking.\"\n\n# With style control\nscripts/gemini_tts.sh -s \"Say in a warm, calm tone:\" \"Take a deep breath.\"\n\n# Save to a specific file\nscripts/gemini_tts.sh -o /tmp/greeting.wav \"Hey there!\"\n\n# Multi-speaker conversation\nscripts/gemini_tts.sh --multi \"Host:Kore,Guest:Puck\" \\\n  \"Host: Welcome to the podcast! Guest: Thanks for having me.\"\n```\n\nThe script prints the output WAV file path.\n\n## Models\n\n| Model | Best for |\n|---|---|\n| `gemini-3.1-flash-tts-preview` (default) | Best default now: low-latency, natural output, expressive narration |\n| `gemini-2.5-flash-preview-tts` | Backward-compatible fast preview model |\n| `gemini-2.5-pro-preview-tts` | Long-form narration and higher-end creative work |\n\nCurrent note: Gemini 3.1 Flash TTS Preview is live and should be the default path for this skill. Gemini 2.5 preview TTS models remain useful as compatibility fallbacks.\n\n> **Preview model note:** `gemini-3.1-flash-tts-preview` is a preview model. If Google renames or retires it, pass `-m gemini-2.5-flash-preview-tts` as a fallback, or check the [current model list](https://ai.google.dev/gemini-api/docs/models).\n\nSwitch model examples:\n\n```bash\nscripts/gemini_tts.sh -m gemini-2.5-pro-preview-tts \"Your text here\"\nscripts/gemini_tts.sh -m gemini-2.5-flash-preview-tts \"Your text here\"\n```\n\n## Voices\n\nAvailable prebuilt voices:\n\n`Zephyr`, `Puck`, `Charon`, `Kore`, `Fenrir`, `Leda`, `Orus`, `Aoede`, `Callirrhoe`, `Autonoe`, `Enceladus`, `Iapetus`, `Umbriel`, `Algieba`, `Despina`, `Erinome`, `Gacrux`, `Pulcherrima`, `Achird`, `Zubenelgenubi`, `Vindemiatrix`, `Sadachbia`, `Sadaltager`, `Sulafat`, `Laomedeia`, `Achernar`, `Schedar`, `Rasalgethi`, `Nashira`, `Enif`\n\nThe same 30-voice library is shared between `gemini-3.1-flash-tts-preview` and the `gemini-2.5-flash-preview-tts` / `gemini-2.5-pro-preview-tts` fallbacks, so a voice you pick for the default model will still work if you drop back to a fallback via `-m`.\n\n## Style control\n\nControl tone, pace, and delivery with natural language prompts. Gemini 3.1 Flash TTS Preview also supports expressive audio tags for finer narration control when you want to lean into the newer model features:\n\n- `\"Say in a spooky whisper:\"`\n- `\"Read enthusiastically as a sports announcer:\"`\n- `\"Speak slowly and calmly, like a meditation guide:\"`\n- `\"Say with a British accent, cheerfully:\"`\n\nFor multi-speaker output, put speaker instructions into the prompt itself:\n\n```text\nMake Host sound professional and warm, and Guest sound excited.\nHost: Welcome back to AI Weekly.\nGuest: I can't wait to share what we found.\n```\n\n## Multi-speaker\n\nUp to 2 speakers. Use `--multi \"Name1:Voice1,Name2:Voice2\"` and make sure the speaker names in the text match.\n\n## Supported languages\n\n70+ languages are supported, including Arabic, Bengali, Chinese, English, French, German, Hindi, Indonesian, Italian, Japanese, Korean, Portuguese, Russian, Spanish, Turkish, Ukrainian, Urdu, Vietnamese, and many more. See the [Gemini speech-generation docs](https://ai.google.dev/gemini-api/docs/speech-generation) for the full locale list.\n\n## Limitations\n\n- Audio output only\n- Maximum 2 speakers in multi-speaker mode\n- Preview model names may change\n- No SSML support\n- No custom voice cloning\n\n## Verification\n\nBasic smoke test once your API key is set:\n\n```bash\nexport GEMINI_API_KEY=your_key_here   # GOOGLE_API_KEY is also accepted\nscripts/gemini_tts.sh -o /tmp/gemini-test.wav \"This is a Gemini TTS smoke test.\"\nfile /tmp/gemini-test.wav\n```\n\nExpected result: a playable WAV file is created (24 kHz mono, 16-bit PCM WAV).\n\nFile v1.0.1:README.md\n\n# gemini-tts\n\nClawHub-ready packaging for a Gemini text-to-speech skill.\n\nDefault target: Gemini 3.1 Flash TTS Preview.\nBackward compatibility: Gemini 2.5 Flash Preview TTS and Gemini 2.5 Pro Preview TTS still work when passed with `-m`.\n\n## What is in the bundle\n\n- `SKILL.md`: publishable skill definition\n- `scripts/gemini_tts.sh`: runnable shell wrapper for the Gemini REST API\n- `.clawhubignore`: excludes generated artifacts from the bundle\n\n## Why the new default matters\n\nGemini 3.1 Flash TTS Preview is the right default now because it combines:\n\n- low-latency speech generation\n- stronger naturalness\n- expressive audio tags\n- multilingual output\n- single-speaker and two-speaker generation in one simple workflow\n\nThis makes the skill more than a plain narrator. It is good for agents that need controllable voice output, not just generic TTS.\n\n## Prompting nuance\n\n- audio tags like `[short pause]` and `[whisper]` work best inside a structured transcript or a clear instruction block\n- a bare tag-heavy prompt without enough framing can return no audio\n- practical takeaway: wrap tags in a real narration prompt, not just a pile of modifiers\n\n## Tested prompt patterns that worked\n\nSingle speaker:\n\n```text\nSay in a spooky voice:\n\"By the pricking of my thumbs... [short pause]\n[whisper] Something wicked this way comes\"\n```\n\nMulti-speaker:\n\n```text\nMake Speaker1 sound tired and bored, and Speaker2 sound excited and happy:\n\nSpeaker1: So... [yawn] what's on the agenda today?\nSpeaker2: You're never going to guess!\n```\n\n## What agents can do with this\n\nThis model is especially useful when agents need to deliver output with intent.\n\nExamples:\n\n- Voice replies in chat: an agent can answer with a short spoken memo instead of plain text\n- Daily briefings: a research agent can turn its morning findings into a narrated update\n- Newsletter voice preview: a content agent can turn a written summary into a quick audio rundown\n- Social content drafts: a marketing agent can generate spoken hooks, trailers, or teaser clips\n- Podcast-style synthesis: two-agent conversations can become clean host and guest audio\n- Demo agents: product agents can narrate walkthroughs, onboarding, or feature explanations\n- Emotional delivery: agents can add pauses, whispers, excitement, boredom, or emphasis where it helps the message land\n\nThe main unlock is controllability. You are not just picking a voice. You are giving the agent delivery instructions.\n\n## Usage examples\n\nDefault model:\n\n```bash\nscripts/gemini_tts.sh \"Hello, welcome to the show!\"\n```\n\nPick a voice:\n\n```bash\nscripts/gemini_tts.sh -v Puck \"This is Puck speaking.\"\n```\n\nAdd style guidance:\n\n```bash\nscripts/gemini_tts.sh -s \"Say in a warm, calm tone:\" \"Take a deep breath.\"\n```\n\nUse explicit audio tags in the transcript:\n\n```bash\nscripts/gemini_tts.sh -o /tmp/tagged.wav 'Say in a spooky voice:\n\"By the pricking of my thumbs... [short pause]\n[whisper] Something wicked this way comes\"'\n```\n\nTwo-speaker audio:\n\n```bash\nscripts/gemini_tts.sh --multi \"Host:Kore,Guest:Puck\" \\\n  \"Host: Welcome to the podcast! Guest: Thanks for having me.\"\n```\n\nFallback model selection:\n\n```bash\nscripts/gemini_tts.sh -m gemini-2.5-pro-preview-tts \"Long-form narration example\"\n```\n\n## Requirements\n\nDeclared in `SKILL.md` under `metadata.openclaw.requires` — `GEMINI_API_KEY` (or `GOOGLE_API_KEY` as an alias), plus `curl`, `jq`, `base64`, and `ffmpeg` on the host.\n\n## Suggested publish flow\n\n1. Review `SKILL.md`\n2. Confirm the version number\n3. Submit the folder through the ClawHub publisher\n4. After publish, smoke test with a real API key\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7fhx3kpfzzdvb7hg46n42ea5831wxb\",\n  \"slug\": \"google-gemini-tts\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1776296670313\n}\n\nArchive v1.0.0: 4 files, 7311 bytes\n\nFiles: README.md (3562b), scripts/gemini_tts.sh (5743b), SKILL.md (5377b), _meta.json (136b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: google-gemini-tts\ndescription: \"Generate spoken audio from text using Google's Gemini TTS models (default is Gemini 3.1 Flash TTS Preview, with fallback to Gemini 2.5 Flash/Pro preview TTS). Use when an agent needs to convert text to speech, produce voice replies, narrate briefings or newsletters, create podcast-style two-speaker conversations, generate audio with expressive style control (whispers, pauses, accents, emotion), or output WAV files for voice-enabled workflows. Supports 30 prebuilt voices, 70+ languages, single and multi-speaker modes, and natural-language style prompts. Requires GEMINI_API_KEY or GOOGLE_API_KEY from Google AI Studio.\"\nversion: 1.0.0\nauthor: Shubham Saboo\ncompatibility: Requires curl, jq, ffmpeg, and a Gemini API key. Preview model names may change as Google promotes them to GA.\nmetadata:\n  openclaw:\n    emoji: \"🔊\"\n    homepage: https://ai.google.dev/gemini-api/docs/speech-generation\n    requires:\n      env:\n        - GEMINI_API_KEY\n        - GOOGLE_API_KEY\n      bins:\n        - curl\n        - jq\n        - ffmpeg\n    primaryEnv: GEMINI_API_KEY\n---\n\n# Gemini TTS\n\nGenerate speech audio from text using Gemini TTS models. The default is Gemini 3.1 Flash TTS Preview, and the script still supports Gemini 2.5 preview TTS models when you pass `-m`.\n\n## What this skill does\n\n- Single-speaker text to speech\n- Two-speaker podcast-style audio\n- Style control with natural language prompts\n- WAV output that can be sent directly in chat or used in apps\n\n## Files\n\n- `scripts/gemini_tts.sh`: CLI wrapper around the Gemini REST API\n\n## Quick start\n\n```bash\n# Show all options\nscripts/gemini_tts.sh --help\n\n# Single speaker, default voice (Kore)\nscripts/gemini_tts.sh \"Hello, welcome to the show!\"\n\n# Pick a voice\nscripts/gemini_tts.sh -v Puck \"This is Puck speaking.\"\n\n# With style control\nscripts/gemini_tts.sh -s \"Say in a warm, calm tone:\" \"Take a deep breath.\"\n\n# Save to a specific file\nscripts/gemini_tts.sh -o /tmp/greeting.wav \"Hey there!\"\n\n# Multi-speaker conversation\nscripts/gemini_tts.sh --multi \"Host:Kore,Guest:Puck\" \\\n  \"Host: Welcome to the podcast! Guest: Thanks for having me.\"\n```\n\nThe script prints the output WAV file path.\n\n## Models\n\n| Model | Best for |\n|---|---|\n| `gemini-3.1-flash-tts-preview` (default) | Best default now: low-latency, natural output, expressive narration |\n| `gemini-2.5-flash-preview-tts` | Backward-compatible fast preview model |\n| `gemini-2.5-pro-preview-tts` | Long-form narration and higher-end creative work |\n\nCurrent note: Gemini 3.1 Flash TTS Preview is live and should be the default path for this skill. Gemini 2.5 preview TTS models remain useful as compatibility fallbacks.\n\n> **Preview model note:** `gemini-3.1-flash-tts-preview` is a preview model. If Google renames or retires it, pass `-m gemini-2.5-flash-preview-tts` as a fallback, or check the [current model list](https://ai.google.dev/gemini-api/docs/models).\n\nSwitch model examples:\n\n```bash\nscripts/gemini_tts.sh -m gemini-2.5-pro-preview-tts \"Your text here\"\nscripts/gemini_tts.sh -m gemini-2.5-flash-preview-tts \"Your text here\"\n```\n\n## Voices\n\nAvailable prebuilt voices:\n\n`Zephyr`, `Puck`, `Charon`, `Kore`, `Fenrir`, `Leda`, `Orus`, `Aoede`, `Callirrhoe`, `Autonoe`, `Enceladus`, `Iapetus`, `Umbriel`, `Algieba`, `Despina`, `Erinome`, `Gacrux`, `Pulcherrima`, `Achird`, `Zubenelgenubi`, `Vindemiatrix`, `Sadachbia`, `Sadaltager`, `Sulafat`, `Laomedeia`, `Achernar`, `Schedar`, `Rasalgethi`, `Nashira`, `Enif`\n\nThe same 30-voice library is shared between `gemini-3.1-flash-tts-preview` and the `gemini-2.5-flash-preview-tts` / `gemini-2.5-pro-preview-tts` fallbacks, so a voice you pick for the default model will still work if you drop back to a fallback via `-m`.\n\n## Style control\n\nControl tone, pace, and delivery with natural language prompts. Gemini 3.1 Flash TTS Preview also supports expressive audio tags for finer narration control when you want to lean into the newer model features:\n\n- `\"Say in a spooky whisper:\"`\n- `\"Read enthusiastically as a sports announcer:\"`\n- `\"Speak slowly and calmly, like a meditation guide:\"`\n- `\"Say with a British accent, cheerfully:\"`\n\nFor multi-speaker output, put speaker instructions into the prompt itself:\n\n```text\nMake Host sound professional and warm, and Guest sound excited.\nHost: Welcome back to AI Weekly.\nGuest: I can't wait to share what we found.\n```\n\n## Multi-speaker\n\nUp to 2 speakers. Use `--multi \"Name1:Voice1,Name2:Voice2\"` and make sure the speaker names in the text match.\n\n## Supported languages\n\n70+ languages are supported, including Arabic, Bengali, Chinese, English, French, German, Hindi, Indonesian, Italian, Japanese, Korean, Portuguese, Russian, Spanish, Turkish, Ukrainian, Urdu, Vietnamese, and many more. See the [Gemini speech-generation docs](https://ai.google.dev/gemini-api/docs/speech-generation) for the full locale list.\n\n## Limitations\n\n- Audio output only\n- Maximum 2 speakers in multi-speaker mode\n- Preview model names may change\n- No SSML support\n- No custom voice cloning\n\n## Verification\n\nBasic smoke test once your API key is set:\n\n```bash\nexport GEMINI_API_KEY=your_key_here\n# or: export GOOGLE_API_KEY=your_key_here\nscripts/gemini_tts.sh -o /tmp/gemini-test.wav \"This is a Gemini TTS smoke test.\"\nfile /tmp/gemini-test.wav\n```\n\nExpected result: a playable WAV file is created (24 kHz mono, 16-bit PCM WAV).\n\nFile v1.0.0:README.md\n\n# gemini-tts\n\nClawHub-ready packaging for a Gemini text-to-speech skill.\n\nDefault target: Gemini 3.1 Flash TTS Preview.\nBackward compatibility: Gemini 2.5 Flash Preview TTS and Gemini 2.5 Pro Preview TTS still work when passed with `-m`.\n\n## What is in the bundle\n\n- `SKILL.md`: publishable skill definition\n- `scripts/gemini_tts.sh`: runnable shell wrapper for the Gemini REST API\n- `.clawhubignore`: excludes generated artifacts from the bundle\n\n## Why the new default matters\n\nGemini 3.1 Flash TTS Preview is the right default now because it combines:\n\n- low-latency speech generation\n- stronger naturalness\n- expressive audio tags\n- multilingual output\n- single-speaker and two-speaker generation in one simple workflow\n\nThis makes the skill more than a plain narrator. It is good for agents that need controllable voice output, not just generic TTS.\n\n## Prompting nuance\n\n- audio tags like `[short pause]` and `[whisper]` work best inside a structured transcript or a clear instruction block\n- a bare tag-heavy prompt without enough framing can return no audio\n- practical takeaway: wrap tags in a real narration prompt, not just a pile of modifiers\n\n## Tested prompt patterns that worked\n\nSingle speaker:\n\n```text\nSay in a spooky voice:\n\"By the pricking of my thumbs... [short pause]\n[whisper] Something wicked this way comes\"\n```\n\nMulti-speaker:\n\n```text\nMake Speaker1 sound tired and bored, and Speaker2 sound excited and happy:\n\nSpeaker1: So... [yawn] what's on the agenda today?\nSpeaker2: You're never going to guess!\n```\n\n## What agents can do with this\n\nThis model is especially useful when agents need to deliver output with intent.\n\nExamples:\n\n- Voice replies in chat: an agent can answer with a short spoken memo instead of plain text\n- Daily briefings: a research agent can turn its morning findings into a narrated update\n- Newsletter voice preview: a content agent can turn a written summary into a quick audio rundown\n- Social content drafts: a marketing agent can generate spoken hooks, trailers, or teaser clips\n- Podcast-style synthesis: two-agent conversations can become clean host and guest audio\n- Demo agents: product agents can narrate walkthroughs, onboarding, or feature explanations\n- Emotional delivery: agents can add pauses, whispers, excitement, boredom, or emphasis where it helps the message land\n\nThe main unlock is controllability. You are not just picking a voice. You are giving the agent delivery instructions.\n\n## Usage examples\n\nDefault model:\n\n```bash\nscripts/gemini_tts.sh \"Hello, welcome to the show!\"\n```\n\nPick a voice:\n\n```bash\nscripts/gemini_tts.sh -v Puck \"This is Puck speaking.\"\n```\n\nAdd style guidance:\n\n```bash\nscripts/gemini_tts.sh -s \"Say in a warm, calm tone:\" \"Take a deep breath.\"\n```\n\nUse explicit audio tags in the transcript:\n\n```bash\nscripts/gemini_tts.sh -o /tmp/tagged.wav 'Say in a spooky voice:\n\"By the pricking of my thumbs... [short pause]\n[whisper] Something wicked this way comes\"'\n```\n\nTwo-speaker audio:\n\n```bash\nscripts/gemini_tts.sh --multi \"Host:Kore,Guest:Puck\" \\\n  \"Host: Welcome to the podcast! Guest: Thanks for having me.\"\n```\n\nFallback model selection:\n\n```bash\nscripts/gemini_tts.sh -m gemini-2.5-pro-preview-tts \"Long-form narration example\"\n```\n\n## Requirements\n\n- `GEMINI_API_KEY` or `GOOGLE_API_KEY`\n- `curl`\n- `jq`\n- `ffmpeg`\n\nThe script also has a `gcloud` fallback if neither env var is set.\n\n## Suggested publish flow\n\n1. Review `SKILL.md`\n2. Confirm the version number\n3. Submit the folder through the ClawHub publisher\n4. After publish, smoke test with a real API key\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7fhx3kpfzzdvb7hg46n42ea5831wxb\",\n  \"slug\": \"google-gemini-tts\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1776295791789\n}","readmeExcerpt":"Skill: Google Gemini TTS Owner: shubhamsaboo Summary: Generate spoken audio from text using Google's Gemini TTS models (default is Gemini 3.1 Flash TTS Preview, with fallback to Gemini 2.5 Flash/Pro preview TTS)... Tags: latest:1.0.3 Version history: v1.0.3 | 2026-04-16T00:04:27.800Z | user Rewrite Style control docs to match Gemini 3.1 Flash TTS prompting guide: distinguish inline audio tags from structured AUDIO PR","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"# Show all options\nscripts/gemini_tts.sh --help\n\n# Single speaker, default voice (Kore)\nscripts/gemini_tts.sh \"Hello, welcome to the show!\"\n\n# Pick a voice\nscripts/gemini_tts.sh -v Puck \"This is Puck speaking.\"\n\n# With style control\nscripts/gemini_tts.sh -s \"Say in a warm, calm tone:\" \"Take a deep breath.\"\n\n# Save to a specific file\nscripts/gemini_tts.sh -o /tmp/greeting.wav \"Hey there!\"\n\n# Multi-speaker conversation\nscripts/gemini_tts.sh --multi \"Host:Kore,Guest:Puck\" \\\n  \"Host: Welcome to the podcast! Guest: Thanks for having me.\""},{"language":"bash","snippet":"scripts/gemini_tts.sh -m gemini-2.5-pro-preview-tts \"Your text here\"\nscripts/gemini_tts.sh -m gemini-2.5-flash-preview-tts \"Your text here\""},{"language":"text","snippet":"[excitedly] Massive update today — [whispers] but keep it between us. [laughs]"},{"language":"text","snippet":"# AUDIO PROFILE: Jaz, London morning-show radio DJ\n\n## THE SCENE: 10 PM, neon-lit studio, \"ON AIR\" tally blazing.\nJaz is bouncing on their heels, hands on the faders, infectious energy.\n\n### DIRECTOR'S NOTES\nStyle: vocal smile always audible; punchy consonants; elongated vowels on excitement words.\nAccent: Brixton, London.\nPace: energetic, bouncing cadence, no dead air.\n\n#### TRANSCRIPT\n[excitedly] Yes, massive vibes in the studio! [shouting] Turn it up!"},{"language":"bash","snippet":"export GEMINI_API_KEY=your_key_here   # GOOGLE_API_KEY is also accepted\nscripts/gemini_tts.sh -o /tmp/gemini-test.wav \"This is a Gemini TTS smoke test.\"\nfile /tmp/gemini-test.wav"},{"language":"text","snippet":"Say in a spooky voice:\n\"By the pricking of my thumbs... [short pause]\n[whisper] Something wicked this way comes\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: google-gemini-tts\ndescription: \"Generate spoken audio from text using Google's Gemini TTS models (default is Gemini 3.1 Flash TTS Preview, with fallback to Gemini 2.5 Flash/Pro preview TTS). Use when an agent needs to convert text to speech, produce voice replies, narrate briefings or newsletters, create podcast-style two-speaker conversations, generate audio with expressive style control (whispers, pauses, accents, emotion), or output WAV files for voice-enabled workflows. Supports 30 prebuilt voices, 70+ languages, single and multi-speaker modes, and natural-language style prompts. Requires a GEMINI_API_KEY from Google AI Studio (the script also accepts GOOGLE_API_KEY as an alternative name for the same key).\"\nversion: 1.0.3\nauthor: Shubham Saboo\ncompatibility: Requires curl, jq, base64, ffmpeg, and a GEMINI_API_KEY from Google AI Studio. Preview model names may change as Google promotes them to GA.\nmetadata:\n  openclaw:\n    emoji: \"🔊\"\n    homepage: https://ai.google.dev/gemini-api/docs/speech-generation\n    requires:\n      env:\n        - GEMINI_API_KEY\n      bins:\n        - curl\n        - jq\n        - base64\n        - ffmpeg\n    primaryEnv: GEMINI_API_KEY\n---\n\n# Gemini TTS\n\nGenerate speech audio from text using Gemini TTS models. The default is Gemini 3.1 Flash TTS Preview, and the script still supports Gemini 2.5 preview TTS models when you pass `-m`.\n\n## What this skill does\n\n- Single-speaker text to speech\n- Two-speaker podcast-style audio\n- Style control with natural language prompts\n- WAV output that can be sent directly in chat or used in apps\n\n## Files\n\n- `scripts/gemini_tts.sh`: CLI wrapper around the Gemini REST API\n\n## Quick start\n\n```bash\n# Show all options\nscripts/gemini_tts.sh --help\n\n# Single speaker, default voice (Kore)\nscripts/gemini_tts.sh \"Hello, welcome to the show!\"\n\n# Pick a voice\nscripts/gemini_tts.sh -v Puck \"This is Puck speaking.\"\n\n# With style control\nscripts/gemini_tts.sh -s \"Say in a warm, calm tone:\" \"Take a deep breath.\"\n\n# Save to a specific file\nscripts/gemini_tts.sh -o /tmp/greeting.wav \"Hey there!\"\n\n# Multi-speaker conversation\nscripts/gemini_tts.sh --multi \"Host:Kore,Guest:Puck\" \\\n  \"Host: Welcome to the podcast! Guest: Thanks for having me.\"\n```\n\nThe script prints the output WAV file path.\n\n## Models\n\n| Model | Best for |\n|---|---|\n| `gemini-3.1-flash-tts-preview` (default) | Best default now: low-latency, natural output, expressive narration |\n| `gemini-2.5-flash-preview-tts` | Backward-compatible fast preview model |\n| `gemini-2.5-pro-preview-tts` | Long-form narration and higher-end creative work |\n\nCurrent note: Gemini 3.1 Flash TTS Preview is live and should be the default path for this skill. Gemini 2.5 preview TTS models remain useful as compatibility fallbacks.\n\n> **Preview model note:** `gemini-3.1-flash-tts-preview` is a preview model. If Google renames or retires it, pass `-m gemini-2.5-flash-preview-tts` as a fallback, or check the [current model list](https://ai.google.dev/gemini-api"},{"path":"README.md","content":"# gemini-tts\n\nClawHub-ready packaging for a Gemini text-to-speech skill.\n\nDefault target: Gemini 3.1 Flash TTS Preview.\nBackward compatibility: Gemini 2.5 Flash Preview TTS and Gemini 2.5 Pro Preview TTS still work when passed with `-m`.\n\n## What is in the bundle\n\n- `SKILL.md`: publishable skill definition\n- `scripts/gemini_tts.sh`: runnable shell wrapper for the Gemini REST API\n- `.clawhubignore`: excludes generated artifacts from the bundle\n\n## Why the new default matters\n\nGemini 3.1 Flash TTS Preview is the right default now because it combines:\n\n- low-latency speech generation\n- stronger naturalness\n- expressive audio tags\n- multilingual output\n- single-speaker and two-speaker generation in one simple workflow\n\nThis makes the skill more than a plain narrator. It is good for agents that need controllable voice output, not just generic TTS.\n\n## Prompting nuance\n\n- audio tags like `[short pause]` and `[whisper]` work best inside a structured transcript or a clear instruction block\n- a bare tag-heavy prompt without enough framing can return no audio\n- practical takeaway: wrap tags in a real narration prompt, not just a pile of modifiers\n\n## Tested prompt patterns that worked\n\nSingle speaker:\n\n```text\nSay in a spooky voice:\n\"By the pricking of my thumbs... [short pause]\n[whisper] Something wicked this way comes\"\n```\n\nMulti-speaker:\n\n```text\nMake Speaker1 sound tired and bored, and Speaker2 sound excited and happy:\n\nSpeaker1: So... [yawn] what's on the agenda today?\nSpeaker2: You're never going to guess!\n```\n\n## What agents can do with this\n\nThis model is especially useful when agents need to deliver output with intent.\n\nExamples:\n\n- Voice replies in chat: an agent can answer with a short spoken memo instead of plain text\n- Daily briefings: a research agent can turn its morning findings into a narrated update\n- Newsletter voice preview: a content agent can turn a written summary into a quick audio rundown\n- Social content drafts: a marketing agent can generate spoken hooks, trailers, or teaser clips\n- Podcast-style synthesis: two-agent conversations can become clean host and guest audio\n- Demo agents: product agents can narrate walkthroughs, onboarding, or feature explanations\n- Emotional delivery: agents can add pauses, whispers, excitement, boredom, or emphasis where it helps the message land\n\nThe main unlock is controllability. You are not just picking a voice. You are giving the agent delivery instructions.\n\n## Usage examples\n\nDefault model:\n\n```bash\nscripts/gemini_tts.sh \"Hello, welcome to the show!\"\n```\n\nPick a voice:\n\n```bash\nscripts/gemini_tts.sh -v Puck \"This is Puck speaking.\"\n```\n\nAdd style guidance:\n\n```bash\nscripts/gemini_tts.sh -s \"Say in a warm, calm tone:\" \"Take a deep breath.\"\n```\n\nUse explicit audio tags in the transcript:\n\n```bash\nscripts/gemini_tts.sh -o /tmp/tagged.wav 'Say in a spooky voice:\n\"By the pricking of my thumbs... [short pause]\n[whisper] Something wicked this way comes\"'\n```\n\nTwo-speaker audio:\n\n```bash\nscripts/gemin"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7fhx3kpfzzdvb7hg46n42ea5831wxb\",\n  \"slug\": \"google-gemini-tts\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1776297867800\n}"},{"path":"skill-card.md","content":"## Description:\n\nGenerate spoken audio from text using Google's Gemini TTS models (default is Gemini 3.1 Flash TTS Preview, with fallback to Gemini 2.5 Flash/Pro preview TTS).\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[shubhamsaboo](https://clawhub.ai/user/shubhamsaboo)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to turn generated text into WAV speech for voice replies, briefings, narration, podcast-style two-speaker conversations, and style-controlled spoken output.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill sends user-provided text, style prompts, and related request data to Google's Gemini API.\n\nMitigation: Use it only for data your policy permits sending to Gemini, and avoid secrets, regulated data, or private documents unless approved.\n\nRisk: Gemini API usage may consume quota or incur billing, especially when preview models are selected.\n\nMitigation: Monitor Google API quota and billing for the API key used by the agent.\n\nRisk: Preview model names may change or be retired.\n\nMitigation: Check the current Gemini model list and use the documented fallback model option when needed.\n\n## Reference(s):\n\n- [Gemini speech generation documentation](https://ai.google.dev/gemini-api/docs/speech-generation)\n- [Gemini model list](https://ai.google.dev/gemini-api/docs/models)\n- [Google AI Studio API key setup](https://aistudio.google.com/apikey)\n- [ClawHub skill page](https://clawhub.ai/shubhamsaboo/skills/google-gemini-tts)\n\n## Skill Output:\n\n**Output Type(s):** [Shell commands, Configuration, Audio files, Guidance]\n\n**Output Format:** [Markdown guidance with shell commands; the runtime script writes a local WAV file path.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces 24 kHz mono, 16-bit PCM WAV output after converting Gemini audio response data with ffmpeg.]\n\n## Skill Version(s):\n\n1.0.3 (source: frontmatter and server release evidence)\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":"Generate spoken audio from text using Google's Gemini TTS models (default is Gemini 3.1 Flash TTS Preview, with fallback to Gemini 2.5 Flash/Pro preview TTS)... Skill: Google Gemini TTS Owner: shubhamsaboo Summary: Generate spoken audio from text using Google's Gemini TTS models (default is Gemini 3.1 Flash TTS Preview, with fallback to Gemini 2.5 Flash/Pro preview TTS)... Tags: latest:1.0.3 Version history: v1.0.3 | 2026-04-16T00:04:27.800Z | user Rewrite Style control docs to match Gemini 3.1 Flash TTS prompting guide: distinguish inline audio tags from structured AUDIO PR","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1110,"uniquenessScore":49,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T23:43:39.073Z","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-11T23:43:39.073Z","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-12T21:04:46.082Z","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"}]}}}