Capabilities
Multimodal Output
Generating images and audio (TTS) from text prompts
Read this when
- Adding image generation or TTS to a feature
- Implementing the ImageProvider interface for a new provider
pi-go exposes image generation through the optional ImageProvider capability interface. The entry point catalog.GenerateImage (also a package-level helper in pi) resolves a "<provider>/<model>" spec and takes a Prompt, mirroring GenerateText; set dimensions and image count with WithImageSize / WithImageCount. TTS has the same shape via SpeechProvider and GenerateSpeech, though no built-in provider implements it yet.
Image Generation
| Provider | API | pi-go | Notes |
|---|---|---|---|
| Anthropic | ❌ (only via MCP integrations) | ❌ | |
| OpenAI Chat | ✅ separate Images API (dall-e-3, gpt-image-1) | ✅ | DALL·E only; default dall-e-3 |
| OpenAI Responses | ✅ inline image_generation server tool | ❌ | not exposed as in-stream tool |
| Google Gemini | ✅ separate Imagen API (imagen-3.0-generate-002, Imagen 4 series) | ⚠️ | Imagen 3.0 only |
| Claude CLI | ❌ | — |
Provider docs
Audio Output (TTS)
| Provider | API | pi-go | Notes |
|---|---|---|---|
| Anthropic | ❌ | ❌ | |
| OpenAI Chat | ✅ Audio API (gpt-4o-mini-tts, voices) | ❌ | |
| OpenAI Responses | ✅ inline TTS | ❌ | |
| Google Gemini | ✅ Gemini 3.1 Flash TTS, multi-speaker | ❌ | |
| Gemini Live | ✅ realtime audio out | ❌ | see realtime-api.md |
| Claude CLI | ❌ | — |
Provider docs
pi-go Gaps
- OpenAI Responses inline
image_generationnot wired — would let one agentic call return both text and an image alongside other tool use. - Imagen 4 / 5 not surfaced in the Google provider.
- Quality / style / response_format options on OpenAI Images are not wired — only
WithImageSizeandWithImageCountreach the provider. - No
AudioProviderinterface, no audio output content variant, no streaming audio frame consumer. - Anthropic image generation depends on MCP, which is also missing.