Lilly Community Research
ssaaffaakk/Lilly
Lilly community-research skill. An agent skill from ssaaffaakk/Lilly.
Build complete, working voice agent applications using the gradbot framework.
$ npx skills add gradium-ai/gradbot --skill gradbot-voice-agent -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gradium-ai/gradbot gradbot-voice-agent --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/gradium-ai/gradbot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/gradbot-voice-agent .claude/skills/gradbot-voice-agent && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "gradbot-voice-agent" agent skill from https://github.com/gradium-ai/gradbot/tree/main/skills/gradbot-voice-agent into .claude/skills/gradbot-voice-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gradbot-voice-agent", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/gradium-ai/gradbot/tree/main/skills/gradbot-voice-agentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add gradium-ai/gradbot --skill gradbot-voice-agent -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gradium-ai/gradbot gradbot-voice-agent --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gradium-ai/gradbot.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/gradbot-voice-agent .agents/skills/gradbot-voice-agent && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gradbot-voice-agent" agent skill from https://github.com/gradium-ai/gradbot/tree/main/skills/gradbot-voice-agent into .agents/skills/gradbot-voice-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gradbot-voice-agent", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gradium-ai/gradbot --skill gradbot-voice-agent -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gradium-ai/gradbot gradbot-voice-agent --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gradium-ai/gradbot.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/gradbot-voice-agent .cursor/skills/gradbot-voice-agent && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "gradbot-voice-agent" agent skill from https://github.com/gradium-ai/gradbot/tree/main/skills/gradbot-voice-agent into .cursor/skills/gradbot-voice-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gradbot-voice-agent", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/gradium-ai/gradbot.git --path skills/gradbot-voice-agent--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add gradium-ai/gradbot --skill gradbot-voice-agent -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gradium-ai/gradbot gradbot-voice-agent --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gradium-ai/gradbot.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/gradbot-voice-agent .gemini/skills/gradbot-voice-agent && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "gradbot-voice-agent" agent skill from https://github.com/gradium-ai/gradbot/tree/main/skills/gradbot-voice-agent into .gemini/skills/gradbot-voice-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gradbot-voice-agent", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install gradium-ai/gradbot gradbot-voice-agentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add gradium-ai/gradbot --skill gradbot-voice-agent -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gradium-ai/gradbot.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/gradbot-voice-agent .github/skills/gradbot-voice-agent && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "gradbot-voice-agent" agent skill from https://github.com/gradium-ai/gradbot/tree/main/skills/gradbot-voice-agent into .github/skills/gradbot-voice-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gradbot-voice-agent", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gradium-ai/gradbot --skill gradbot-voice-agent -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gradium-ai/gradbot gradbot-voice-agent --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gradium-ai/gradbot.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/gradbot-voice-agent .opencode/skills/gradbot-voice-agent && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "gradbot-voice-agent" agent skill from https://github.com/gradium-ai/gradbot/tree/main/skills/gradbot-voice-agent into .opencode/skills/gradbot-voice-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gradbot-voice-agent", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
gradbot-voice-agentBuild complete, working voice agent applications using the gradbot framework.
Gradbot Voice Agent is an agent skill from gradium-ai/gradbot. Build complete, working voice agent applications using the gradbot framework. Use when user asks to "build a voice assistant", "create a voice agent", "make a voice app", "build a haggling game", or any voice-interactive application with speech. Generates a FastAPI backend with STT/LLM/TTS orchestration, tool calling, system prompts, and a polished frontend UI. Works for any domain - customer service, games, booking, tutoring, roleplay, etc. Also use when user is working with an existing gradbot demo and wants to…
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/backend-template.md` and `references/frontend-guidelines.md`).
It sits in AI & LLM Engineering, covering Speech recognition and synthesis and Prompt engineering. It works with FastAPI. The repository describes itself as: Open source framework to vibecode and prototype voice agents with Gradium APIs. The licence is Apache-2.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit db64d77. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are toml).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Gradbot Voice Agent loads about 2.9k tokens when it runs, and up to ~8.5k if it reads all its reference files. Until then it costs about 143 tokens; SKILL.md has 1,295 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from gradium-ai/gradbot at commit db64d77, republished under its Apache-2.0 licence (© gradium-ai). 1,295 words, ~2,890 tokens.
.claude/skills/gradbot-voice-agent/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Build working voice agent apps using the gradbot framework. Output is a complete, runnable app with backend, frontend, prompts, and configuration.
references/backend-template.md and references/frontend-guidelines.md before generating codefrontend-design skill to generate the static/index.html — do NOT write a generic HTML fileFor apps that are purely conversational with no actions/side-effects:
on_tool_call to gradbot.websocket.handle_session() (omit it entirely)prompts/ directory needed if prompt comes from frontendwith_voices=True to gradbot.routes.setup() to enable voice selection UIreferences/backend-template.mdFor apps with actions (ordering, searching, game mechanics, etc.):
gradbot.ToolDef and implement tool handlersprompts/ fileson_tool_call callback in gradbot.websocket.handle_session()references/backend-template.mdBefore writing code, identify:
Simple chat (no tools, prompt from frontend):
<app-dir>/
main.py
static/
index.html
pyproject.tomlTool-using agent (tools, file-based prompts):
<app-dir>/
main.py
game.py # domain module (state, tools, tool handler)
prompts/
main.txt # (or base.txt + phase1.txt, phase2.txt, etc.)
static/
index.html
pyproject.tomlIf the app has static data (menus, inventories, etc.), include it as JSON files.
Consult references/backend-template.md for exact code patterns. Choose the right template:
main.py, voice selection, frontend-editable promptmain.py (~20 lines) + domain module (game.py, ~100+ lines) with state, tools, prompts, and tool handlerKey setup rules:
gradbot.config.load(Path(__file__).parent) or gradbot.config.from_env() for config loading — it loads config.yaml from the app directory and any shared parent config automatically. Returns a Config object with .client_kwargs and .session_kwargs properties.gradbot.routes.setup(app, config=cfg, static_dir=...) to serve frontend and bundled JSwith_voices=True to gradbot.routes.setup() if the frontend needs voice selection (registers /api/voices)rewrite_rules enables language-specific text rewriting before TTS. Get it from voice.language.rewrite_rules (returns "en", "fr", etc.). Do NOT use .value — Lang is not a Python enum.silence_timeout_s to 0.0 — the default 5s causes the agent to re-prompt itself with its last message when the user is silentconfig=cfg to handle_session() to auto-set run_kwargs, output_format, and debug from the config. Or pass them individually for custom setups.Critical rules for tool definitions (when using tools):
parameters_json must be a JSON string — use json.dumps()"type": "array" in parameters (some LLMs like Gemma fail). Use "type": "string" with "description": "Comma-separated list" insteadCritical rules for tool handlers (when using tools):
on_tool_call receives 3 args: (handle, input_handle, websocket) where handle is a gradbot.ToolHandlehandle.name gives the tool name, handle.args gives parsed args (already deserialized dict)handle.send_json({...}) (auto-serializes) or handle.send(json.dumps({...})) for raw JSONhandle.send_error("message")websocket.send_json({"type": "custom_event", ...})input_handle.send_config(new_config) to swap prompts/tools mid-sessionCritical rules for system prompts:
Skip this step for simple chat apps where the prompt comes from the frontend.
For tool-using agents, create prompts/base.txt and prompts/main.txt:
For multi-phase apps, create phase1.txt, phase2.txt, etc. and swap via input_handle.send_config().
IMPORTANT: Invoke the frontend-design skill to create static/index.html.
When invoking frontend-design, provide these requirements:
opus-encoder.js, audio-processor.js, synced-audio-player.js from /static/js/ — then use SyncedAudioPlayer as a global (it is NOT an ES module)references/frontend-guidelines.md[project]
name = "<app-name>"
version = "0.1.0"
description = "<description>"
requires-python = ">=3.12"
dependencies = ["gradbot"]gradbot includes fastapi, uvicorn with websocket support, pydantic-settings, and pyyaml. Add extra dependencies only if needed.
After generating all files:
main.py imports gradbot (uses gradbot.websocket, gradbot.routes, gradbot.config)gradbot.config.load(Path(__file__).parent) or gradbot.config.from_env() for configurationgradbot.routes.setup() called with static_dir and with_voices=True (if voice selection needed)rewrite_rules uses voice.language.rewrite_rules (not .value)silence_timeout_s set to 0.0gradbot.websocket.handle_session() with correct callbackson_tool_call is NOT passed to handle_session()parameters_json is a JSON string via json.dumps(), tool results via handle.send_json() or handle.send(json.dumps())on_tool_call takes 3 args (handle, input_handle, websocket), uses handle.name and handle.args<script> tags, NOT ES module importsonText destructures a single object: ({ text, turnIdx, isUser }) =>SyncedAudioPlayerAdd to system prompt: "CRITICAL: Keep ALL responses to 1-2 SHORT sentences. This is a voice conversation, not a text chat."
Set silence_timeout_s = 0.0 in the session config. The default 5s timeout causes the agent to re-send its last message as context and generate a new response.
tool_handle.send() requires a valid JSON string. Always use json.dumps({...}), never pass a raw string.
Ensure on_tool_call is passed to handle_session(). Check that handle.send() is called with a JSON string, or use handle.send_json() with a dict.
Verify frontend loads JS via three script tags (opus-encoder.js, audio-processor.js, synced-audio-player.js), NOT via ES module import. SyncedAudioPlayer is a global.
The onText callback receives a single object, not separate args. Must destructure: ({ text, turnIdx, isUser }) =>.
Add an echo cancellation checkbox and wire it to SyncedAudioPlayer({ echoCancellation: checkbox.checked }).
Ensure gradbot.routes.setup(app, ..., with_voices=True) is passed. Without with_voices=True, the /api/voices endpoint is not registered.
Uvicorn needs the websockets library. Ensure you're using gradbot[demos] (which includes uvicorn[standard]). If still failing, add websockets explicitly to your dependencies.
Set rewrite_rules to voice.language.rewrite_rules. This enables language-specific text rewriting before synthesis.
© gradium-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in skills/gradbot-voice-agent of gradium-ai/gradbot.
Open the folder on GitHubat commit db64d77
Gradbot Voice Agent next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Gradbot Voice Agent this skillgradium-ai/gradbot | 127 | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Lilly Community Researchssaaffaakk/Lilly | 171 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Deps Bumplkmeta/txtify | 135 | — | ~585 | Automated safety check: Pass | Apache-2.0 | |
| Verifylkmeta/txtify | 135 | — | ~583 | Automated safety check: Pass | Apache-2.0 | |
| Prompt Improverseverity1/claude-code-prompt-improver | 1.9k | 1 repos | ~1.7k | Automated safety check: Pass | MIT | |
| TriageTalAter/annyang | 6.8k | — | ~810 | Automated safety check: Notes | MIT |
ssaaffaakk/Lilly
Lilly community-research skill. An agent skill from ssaaffaakk/Lilly.
lkmeta/txtify
Safely update Txtify dependencies or resolve Dependabot alerts.
lkmeta/txtify
Verify a Txtify change end-to-end. An agent skill from lkmeta/txtify.
severity1/claude-code-prompt-improver
This skill enriches vague prompts with targeted research and clarification before execution.
TalAter/annyang
Triage and close GitHub issues on TalAter/annyang. An agent skill from TalAter/annyang.
mcncarl/yichen-skills
逸尘自用的统一音视频转写入口,在 StepFun Step ASR 与火山引擎豆包 ASR 之间按输出需求、安全边界和可用状态路由。用于本地音频或视频的纯文本转写、时间戳、SRT 字幕、口播粗剪,以及转写前体检;用户明确指定服务商时不得静默切换。Use when a local audio or video file needs transcription and the correct…
Works with
Categories
Build complete, working voice agent applications using the gradbot framework. Gradbot Voice Agent is an agent skill from gradium-ai/gradbot. Build complete, working voice agent applications using the gradbot framework.
Gradbot Voice Agent fits situations like: user asks to build a voice assistant; create a voice agent; make a voice app; build a haggling game.
Run `npx skills add gradium-ai/gradbot --skill gradbot-voice-agent -a claude-code`. Or copy the skill folder (skills/gradbot-voice-agent in gradium-ai/gradbot) into .claude/skills/gradbot-voice-agent in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gradium-ai/gradbot --skill gradbot-voice-agent -a codex`. Or copy the skill folder (skills/gradbot-voice-agent in gradium-ai/gradbot) into .agents/skills/gradbot-voice-agent in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gradium-ai/gradbot --skill gradbot-voice-agent -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gradbot-voice-agent, .gemini/skills/gradbot-voice-agent, .github/skills/gradbot-voice-agent and .opencode/skills/gradbot-voice-agent in your project.
SKILL.md names no scripts, command-line tools or credentials: Gradbot Voice Agent is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Gradbot Voice Agent is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Gradbot Voice Agent: Lilly Community Research (ssaaffaakk/Lilly, 171 stars), Deps Bump (lkmeta/txtify, 135 stars), Verify (lkmeta/txtify, 135 stars) and Prompt Improver (severity1/claude-code-prompt-improver, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gradium-ai (a GitHub organization) maintains it in gradium-ai/gradbot, which has 127 GitHub stars. The repository was last updated on September 19, 2026.
Source: gradium-ai/gradbot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.