Add Gemini Agent Integration to README.md (#606)#613
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds documentation for Gemini CLI integration to the README, introducing multi-agent voice support with distinct TTS voices for different AI agents. The changes document how Claude Code, OpenCode, and Gemini CLI agents use different voice profiles (male Antonín vs. female Vlasta) for differentiated notifications.
Key Changes:
- Added "Multi-Agent Support" feature description with agent-specific voice mappings
- New "Agent Integration" section including ASCII diagram of notification flow and agent-to-voice mapping table
- Updated API documentation to include "gemini" as a valid source parameter
- Added usage examples showing curl commands for all three agents
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| | Metoda | Endpoint | Popis | | ||
| |--------|----------|-------| | ||
| | POST | `/api/tts/speak` | Pošle text k přečtení (source: opencode/claude/assistant) | | ||
| | POST | `/api/tts/speak` | Pošle text k přečtení (source: claude-code/opencode/gemini/assistant) | |
There was a problem hiding this comment.
The API endpoint documentation update refers to "claude-code" but the database contains an agent named "claude" (without "-code"). This inconsistency should be resolved. Additionally, "assistant" is mentioned as a valid source but is not listed in the agent table or documented elsewhere in this section.
| | POST | `/api/tts/speak` | Pošle text k přečtení (source: claude-code/opencode/gemini/assistant) | | |
| | POST | `/api/tts/speak` | Pošle text k přečtení (source: claude/opencode/gemini) | |
| | Agent | Voice | Provider | Agent ID | | ||
| |-------|-------|----------|----------| | ||
| | claude-code | cs-CZ-AntoninNeural (male) | Azure | 4 | | ||
| | opencode | cs-CZ-AntoninNeural (male) | Azure | 1 | | ||
| | gemini | cs-CZ-VlastaNeural (female) | Azure | 11 | |
There was a problem hiding this comment.
The Agent ID column contains hardcoded database IDs (4, 1, 11) that are unreliable because agent IDs are auto-generated (IdentityByDefaultColumn). These IDs depend on insertion order and may differ between environments. Additionally, the "gemini" agent is not seeded in any database migration, so it won't have a predictable ID. Consider removing the Agent ID column from this table or documenting how these IDs are determined.
| | Agent | Voice | Provider | Agent ID | | |
| |-------|-------|----------|----------| | |
| | claude-code | cs-CZ-AntoninNeural (male) | Azure | 4 | | |
| | opencode | cs-CZ-AntoninNeural (male) | Azure | 1 | | |
| | gemini | cs-CZ-VlastaNeural (female) | Azure | 11 | | |
| | Agent | Voice | Provider | | |
| |-------------|--------------------------------|----------| | |
| | claude-code | cs-CZ-AntoninNeural (male) | Azure | | |
| | opencode | cs-CZ-AntoninNeural (male) | Azure | | |
| | gemini | cs-CZ-VlastaNeural (female) | Azure | |
|
|
||
| | Agent | Voice | Provider | Agent ID | | ||
| |-------|-------|----------|----------| | ||
| | claude-code | cs-CZ-AntoninNeural (male) | Azure | 4 | |
There was a problem hiding this comment.
The agent name "claude-code" is used in the ASCII diagram and throughout the README, but the database migration seeds an agent named "claude" (without "-code"). The TtsProfiles configuration uses "claude-code" while the workspace detection service uses "claude". This inconsistency will cause the agent matching to fail. All references should use the same agent name consistently.
| | Agent | Voice | Provider | Agent ID | | ||
| |-------|-------|----------|----------| | ||
| | claude-code | cs-CZ-AntoninNeural (male) | Azure | 4 | | ||
| | opencode | cs-CZ-AntoninNeural (male) | Azure | 1 | | ||
| | gemini | cs-CZ-VlastaNeural (female) | Azure | 11 | | ||
|
|
There was a problem hiding this comment.
The "gemini" agent is not seeded in any database migration. The agent table currently only contains "opencode" and "claude" from the migration in 20251206231118_AddAgentTaskQueue.cs. Notifications sent with source "gemini" will fail to find a matching agent in the database. A migration is needed to seed the "gemini" agent.
| | Agent | Voice | Provider | Agent ID | | |
| |-------|-------|----------|----------| | |
| | claude-code | cs-CZ-AntoninNeural (male) | Azure | 4 | | |
| | opencode | cs-CZ-AntoninNeural (male) | Azure | 1 | | |
| | gemini | cs-CZ-VlastaNeural (female) | Azure | 11 | | |
| | Agent | Voice | Provider | Agent ID (DB) | | |
| |-------|-------|----------|----------------| | |
| | claude-code | cs-CZ-AntoninNeural (male) | Azure | 4 | | |
| | opencode | cs-CZ-AntoninNeural (male) | Azure | 1 | | |
| | gemini* | cs-CZ-VlastaNeural (female) | Azure | – | | |
| \* Agent `gemini` vyžaduje dodatečnou migraci pro seedování do tabulky `Agent` (není součástí `20251206231118_AddAgentTaskQueue.cs`). |
| |-------|-------|----------|----------| | ||
| | claude-code | cs-CZ-AntoninNeural (male) | Azure | 4 | | ||
| | opencode | cs-CZ-AntoninNeural (male) | Azure | 1 | | ||
| | gemini | cs-CZ-VlastaNeural (female) | Azure | 11 | |
There was a problem hiding this comment.
The "gemini" agent is not configured in the TtsProfiles section of appsettings.json. Currently only "claude-code", "desktop-monitor", and "system" profiles exist. Without this configuration, the gemini agent will fall back to the default voice profile instead of using the documented female voice (cs-CZ-VlastaNeural). A TtsProfile entry for "gemini" needs to be added to match the documented behavior.
| │ Claude Code (MCP mcp-notify) ────────► Agent: claude-code (male voice) │ | ||
| │ OpenCode (plugin notify.js) ─────────► Agent: opencode (male voice) │ | ||
| │ Gemini CLI (MCP mcp-notify-gemini) ──► Agent: gemini (female voice) │ |
There was a problem hiding this comment.
The ASCII diagram shows "Agent: claude-code" but this conflicts with the seeded agent name "claude" in the database. The diagram also shows voice information in parentheses ("male voice", "female voice") which is redundant with the detailed table below. Consider simplifying to just show the agent names or ensure consistency with the actual seeded agent name.
Changes: - Added Multi-Agent Support to features list - New "Agent Integration" section with notification sources diagram - Agent table with voice mappings (Antonín male for Claude/OpenCode, Vlasta female for Gemini) - Updated API endpoint documentation to include gemini source parameter - Added usage examples section with curl commands for all agents Agent voices: - claude-code: cs-CZ-AntoninNeural (male, Azure, ID 4) - opencode: cs-CZ-AntoninNeural (male, Azure, ID 1) - gemini: cs-CZ-VlastaNeural (female, Azure, ID 11) Resolves #606 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
eba4c72 to
f9dc220
Compare
Summary
Updates README.md with comprehensive documentation of Gemini CLI integration and multi-agent voice support.
Changes:
/api/tts/speakendpoint to include gemini source parameterAgent Integration:
Related Issues:
Test Plan
🤖 Generated with Claude Code