Republic 0.6.0 Republic 0.6.0 released as a Python library that provides one interface for chat, streaming, tool calls, and structured output across AI providers, requiring Python 3.11 or later and installed via `python -m pip install republic`. Models are addressed as `provider:model` (for example `openai:gpt-6-sol`, `anthropic:MODEL_ID`, `google:MODEL_ID`, or `deepseek:MODEL_ID`), with each provider's key read from a `REPUBLIC__API_KEY` environment variable. The library stops at providers, leaving agent loops, tool execution, and gateways in the developer's own code, and offers an optional `Extension` interface for observing call outcomes and retries. One Python interface for chat, streaming, tool calls, and structured output across AI providers. Republic stops at providers; agent loops, tool execution, and gateways stay in your code. Republic requires Python 3.11 or later. python -m pip install republic export REPUBLIC OPENAI API KEY="your-api-key" python import asyncio import republic from republic.events import TextDelta async def main : model = republic.get model "openai:gpt-6-sol" response = await model.chat "Explain a tool call in one sentence." print response.text async with model.stream "Explain how an agent uses a tool result." as stream: async for event in stream: if isinstance event, TextDelta : print event.chunk, end="", flush=True asyncio.run main A model is named provider:model . Switch services by changing the name, such as anthropic:MODEL ID , google:MODEL ID , or deepseek:MODEL ID ; each reads its key from REPUBLIC