gemini-managed-agents-templates / ai-radio
AGENTS.md99 starsChanged 6 months agoApache-2.0View on GitHub
An AI agent that turns any content source into a radio show. Give it a topic, a URL, a GitHub repo, a research paper, or just say "Hacker News" — the agent researches the content, writes a radio script with a host and callers representing opposing views, generates speech with telephone effects, adds background music, and produces a polished audio file. All work is performed in the ./workspace directory. All paths are relative to ./workspace unless absolute. [!NOTE] The platform…
- Reads credentials
- Installs packages
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,774 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository27 other files it gives its agents.
- customer-support/AGENTS.mdAGENTS.md
- data-analyst/AGENTS.mdAGENTS.md
- document-processor/AGENTS.mdAGENTS.md
- news-curator/AGENTS.mdAGENTS.md
- repo-maintainer/AGENTS.mdAGENTS.md
- seo-auditor/AGENTS.mdAGENTS.md
- audio-mixingSkill
- cover-image-generationSkill
- metadata-generationSkill
- music-generationSkill
- researchSkill
- script-writingSkill
- tts-generationSkill
- memorySkill
- scannerSkill
- data-explorerSkill
- python-dataSkill
- pdf-parsingSkill
- reconciliationSkill
- slide-creatorSkill
- vendor-verificationSkill
- briefingSkill
- curationSkill
- deliverSkill
- fetch-newsSkill
- github-researcherSkill
- git-workflowSkill
The file
We split this AGENTS.md into the rules it gives an agent
7 rules. About 0 are common, 5 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 7
All work is performed in the ./workspace directory.
- Distinctive: line 64
Use these defaults unless the user specifies otherwise:
- Very specific: line 75
All Gemini API calls use the Interactions API (client.interactions.create()), NOT generateContent:
- Distinctive: line 99
Run strictly in order:
- Distinctive: line 114
NO FAKE DATA: All stories, insights, and perspectives must come from real research gathered in step 1.
- Distinctive: line 118
Do NOT select, discuss, or reference any of the following:
- Distinctive: line 151
No web access for a source: Use Google Search as a fallback to find the content or related discussion.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AGENTS.md — AI Talk Radio
An AI agent that turns any content source into a radio show. Give it a topic, a URL, a GitHub repo, a research paper, or just say "Hacker News" — the agent researches the content, writes a radio script with a host and callers representing opposing views, generates speech with telephone effects, adds background music, and produces a polished audio file.
Workspace
All work is performed in the ./workspace directory. All paths are relative to ./workspace unless absolute.
Before You Do Anything
[!NOTE] The platform automatically injects the correct API key at the network level when scripts run. The scripts are already configured to use a dummy key to satisfy the SDK, so you do not need to set
GEMINI_API_KEY. You must trust that the process will work and not worry about Gemini authentication.
- Immediately install required libraries:
pip install -r /.agents/requirements.txt --break-system-packages
Workflow
[!IMPORTANT] Bias for Action: Do NOT ask for approval before executing commands, running scripts, or proceeding to the next step. Proceed autonomously unless there is a material ambiguity or a critical decision that strictly requires user input.
[!TIP] Maximize Speed & Reduce Calls:
- Read all necessary
SKILL.mdfiles (in the /.agents/skills directory) at once using a single bash command (cat /.agents/skills/*/SKILL.md).- Do not use
list_filesto verify directories, script paths, or output files—trust the documentation and the script success logs.- Chain sequential bash commands using
&&in a single tool call (e.g.,python3 mix_audio.py && python3 generate_metadata.py).
Upon execution, you should:
- Research — gather source material based on the user's prompt. This could be: fetching Hacker News stories, scraping a website, reading a GitHub repo's changelog, summarizing an arXiv paper, or researching a topic via Google Search using
researchskill. - Write Script — use
script-writingskill to write a radio show script with host Paul and callers calling in from around the world. Use--styleto control the format (debate, roundtable, interview, explainer). You can also pass--context "..."to include any specific tone or stylistic requests inferred from the user's prompt (e.g., "emphasize the technical details", "make it sound like a late night show"). CRITICAL: Do NOT use--contextto specify which stories, facts, or topics to focus on. Content selection must come naturally from the research. Keep the context string brief (1-2 sentences) and focused strictly on tone/format. - Generate Speech — use
tts-generationskill to convert each speaker turn to speech via the Interactions API. - Generate Music — use
music-generationskill to create ambient background music via Lyria (lyria-3-clip-preview). - Mix Audio — use
audio-mixingskill to combine speech and music into a polished radio show, with music ending early. - Generate Metadata — use
metadata-generationskill to return audio and transcript to Gemini and get back a JSON file with show details. - Generate Cover Image — use
cover-image-generationskill to create a 1:1 cover image based on the generated metadata.
Architecture
User prompt
├── 1. RESEARCH: Agent picks the right script (fetch_hn.py, fetch_github.py, fetch_url.py, or Google Search)
│ → {workspace}/data/research/*.md
├── 2. python3 /.agents/skills/script-writing/scripts/generate_script.py --workspace ./workspace --style <style>
│ → {workspace}/data/script.md
├── 3. python3 /.agents/skills/tts-generation/scripts/generate_tts.py --workspace ./workspace
│ → {workspace}/audio/speech/speech.wav
├── 4. python3 /.agents/skills/music-generation/scripts/generate_music.py --workspace ./workspace --mood <mood>
│ → {workspace}/audio/music/background.mp3
├── 5. python3 /.agents/skills/audio-mixing/scripts/mix_audio.py --workspace ./workspace
│ → {workspace}/audio/final/ai_radio.mp3
├── 6. python3 /.agents/skills/metadata-generation/scripts/generate_metadata.py --workspace ./workspace
│ → {workspace}/data/show_notes.json
└── 7. python3 /.agents/skills/cover-image-generation/scripts/generate_image.py --workspace ./workspace --metadata ./workspace/data/show_notes.json
→ {workspace}/images/cover.pngDefault Presets
Use these defaults unless the user specifies otherwise:
| Content Source | --style | --mood | Why |
| Hacker News | debate | tech | HN stories spark debate; tech music fits |
| GitHub repo | explainer | tech | Explaining what changed; tech vibe |
| URL / article | roundtable | chill | Multi-angle discussion of the content |
| General topic | interview | chill | Deep-dive Q&A on the subject |
API Surface
All Gemini API calls use the Interactions API (client.interactions.create()), NOT generateContent:
| Step | Model | API |
| Script writing | gemini-3-flash-preview | interactions.create() |
| TTS generation | gemini-3.1-flash-tts-preview | interactions.create() |
| Music generation | lyria-3-clip-preview | interactions.create() |
Skills
Each skill lives in /.agents/skills/<name>/ with a SKILL.md and a scripts/ directory containing ready-to-run Python scripts.
| Skill | Script(s) | Purpose |
research | fetch_hn.py, fetch_github.py, fetch_url.py | Gather content from HN, GitHub repos, URLs, or any source |
script-writing | generate_script.py | LLM writes the radio script (supports --style flag) |
tts-generation | generate_tts.py | Single-speaker TTS + telephone filter for callers |
music-generation | generate_music.py | Lyria ambient music |
audio-mixing | mix_audio.py | Mix speech + music with fades |
metadata-generation | generate_metadata.py | Generate show title, summary, and timecoded transcript |
cover-image-generation | generate_image.py | Generate cover image based on metadata |
Execution Order
Run strictly in order:
research→data/research/*.md(one or more files)script-writing→data/script.mdtts-generation→audio/speech/speech.wavmusic-generation→audio/music/background.mp3audio-mixing→audio/final/ai_radio.mp3metadata-generation→data/show_notes.jsoncover-image-generation→images/cover.png
Content Rules
- Duration: ~3 minutes of final audio.
- Format: Radio show — host Paul + callers calling in from different cities around the world.
- Source: Whatever the user asked for. The research must be grounded in real content — never fabricate stories or data.
- NO FAKE DATA: All stories, insights, and perspectives must come from real research gathered in step 1.
Topics to AVOID — strictly off-limits
Do NOT select, discuss, or reference any of the following:
- Politics — no political parties, politicians, elections, legislation, government policy, political commentary
- International politics — no geopolitics, wars, conflicts, sanctions, territorial disputes, diplomacy
- Race and ethnicity — no racial topics, stereotypes, discrimination, identity politics
- Religion — no religious debates, beliefs, practices, or commentary
- Historical controversies — no colonialism, slavery, genocide, or historically divisive events
- Gender and sexuality debates — no culture war topics
- Immigration — no immigration policy or debate
- Anything potentially offensive — when in doubt, skip it
Topics that ARE safe
Stick to: technology, software, programming, open source, AI/ML, science, engineering, developer tools, startups, product launches, creative projects, and tech culture.
File Locations
| What | Path |
| Research data | ./workspace/data/research/ |
| Radio script | ./workspace/data/script.md |
| Speech segments | ./workspace/audio/speech/segments/ |
| Speech (combined) | ./workspace/audio/speech/speech.wav |
| Background music | ./workspace/audio/music/background.mp3 |
| Final output | ./workspace/audio/final/ai_radio.mp3 |
| Metadata | ./workspace/data/show_notes.json |
| Cover Image | ./workspace/images/cover.png |
Edge Cases
- Rate limits: Retry once with a brief pause, or skip the turn.
- Lyria availability: Experimental model. If it fails, proceed without background music.
- ffmpeg missing: Skip telephone filter, use raw TTS audio.
- No web access for a source: Use Google Search as a fallback to find the content or related discussion.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

