<div align="center">
<img src=".github/assets/chimeric.png" alt="Chimeric Logo" width="200"/>
# Chimeric
[](https://pypi.org/project/chimeric/)
[](https://pypi.org/project/chimeric/)
[](https://opensource.org/licenses/MIT)
[](https://verdenroz.github.io/chimeric/)
[](https://github.com/Verdenroz/chimeric/actions/workflows/ci.yml)
[](https://codecov.io/gh/Verdenroz/chimeric)
**Unified Python interface for multiple LLM providers with automatic provider detection and seamless switching.**
</div>
## 🚀 Supported Providers
[](https://openai.com/)
[](https://anthropic.com/)
[](https://ai.google.dev/)
[](https://x.ai/)
[](https://groq.com/)
[](https://cohere.ai/)
[](https://cerebras.ai/)
## 📖 Documentation
For detailed usage examples, configuration options, and advanced features, visit our [documentation](https://verdenroz.github.io/chimeric/).
## 📦 Installation
```bash
# Base installation
pip install chimeric
# With specific providers
pip install "chimeric[openai,anthropic,google]"
# All providers
pip install "chimeric[all]"
```
Set your API keys as environment variables:
```bash
export OPENAI_API_KEY="your-key-here"
export ANTHROPIC_API_KEY="your-key-here"
```
## ⚡ Quickstart
### Basic Usage
```python
from chimeric import Chimeric
client = Chimeric() # Auto-detects API keys from environment
response = client.generate(
model="gpt-4o",
messages="Hello!"
)
print(response.content)
```
### Streaming Responses
```python
# Real-time streaming
stream = client.generate(
model="claude-3-5-sonnet-latest",
messages="Tell me a story about space exploration",
stream=True
)
for chunk in stream:
print(chunk.content, end="", flush=True)
```
### Function Calling with Tools
```python
@client.tool()
def get_weather(city: str) -> str:
"""Get current weather for a city."""
return f"Sunny, 72°F in {city}"
@client.tool()
def calculate_tip(bill_amount: float, tip_percentage: float = 18.0) -> dict:
"""Calculate tip and total amount for a restaurant bill."""
tip = bill_amount * (tip_percentage / 100)
total = bill_amount + tip
return {"tip": tip, "total": total, "tip_percentage": tip_percentage}
response = client.generate(
model="gpt-4o",
messages=[
{"role": "user", "content": "What's the weather in NYC?"},
{"role": "user", "content": "Also calculate a tip for a $50 dinner bill"}
]
)
print(response.content)
```
### Multi-Provider Switching
```python
# Seamlessly switch between providers
models = ["gpt-4o-mini", "claude-3-5-haiku-latest", "gemini-2.5-flash"]
for model in models:
response = client.generate(
model=model,
messages="Explain quantum computing in one sentence"
)
print(f"{model}: {response.content}")
```
## 🔧 Key Features
- **Multi-Provider Support**: Switch between 7 major AI providers seamlessly
- **Automatic Detection**: Auto-detects available API keys from environment
- **Unified Interface**: Consistent API across all providers
- **Streaming Support**: Real-time response streaming
- **Function Calling**: Tool integration with decorators
- **Async Support**: Full async/await compatibility
- **Native Fallback**: Access provider-specific features when needed
## 🐛 Issues & Feature Requests
- **Found a bug?** Use our [Bug Report](.github/ISSUE_TEMPLATE/bug_report.yml) template
- **Want a feature?** Use our [Feature Request](.github/ISSUE_TEMPLATE/feature_request.yml) template
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "chimeric",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": null,
"keywords": "ai, anthropic, gemini, llm, multi-provider, openai, unified-interface",
"author": null,
"author_email": "Harvey Tseng <harveytseng2@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/c4/2b/15675e7dc3ed017ac3ac06ecd2f1821d5367ffc2028ccd6de7ba62aa4ceb/chimeric-0.1.0.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n\n<img src=\".github/assets/chimeric.png\" alt=\"Chimeric Logo\" width=\"200\"/>\n\n# Chimeric\n\n[](https://pypi.org/project/chimeric/)\n[](https://pypi.org/project/chimeric/)\n[](https://opensource.org/licenses/MIT)\n[](https://verdenroz.github.io/chimeric/)\n[](https://github.com/Verdenroz/chimeric/actions/workflows/ci.yml)\n[](https://codecov.io/gh/Verdenroz/chimeric)\n\n**Unified Python interface for multiple LLM providers with automatic provider detection and seamless switching.**\n\n</div>\n\n## \ud83d\ude80 Supported Providers\n\n[](https://openai.com/)\n[](https://anthropic.com/)\n[](https://ai.google.dev/)\n[](https://x.ai/)\n[](https://groq.com/)\n[](https://cohere.ai/)\n[](https://cerebras.ai/)\n\n## \ud83d\udcd6 Documentation\n\nFor detailed usage examples, configuration options, and advanced features, visit our [documentation](https://verdenroz.github.io/chimeric/).\n\n## \ud83d\udce6 Installation\n\n```bash\n# Base installation\npip install chimeric\n\n# With specific providers\npip install \"chimeric[openai,anthropic,google]\"\n\n# All providers\npip install \"chimeric[all]\"\n```\n\nSet your API keys as environment variables:\n```bash\nexport OPENAI_API_KEY=\"your-key-here\"\nexport ANTHROPIC_API_KEY=\"your-key-here\"\n```\n\n## \u26a1 Quickstart\n\n### Basic Usage\n```python\nfrom chimeric import Chimeric\n\nclient = Chimeric() # Auto-detects API keys from environment\n\nresponse = client.generate(\n model=\"gpt-4o\",\n messages=\"Hello!\"\n)\nprint(response.content)\n```\n\n### Streaming Responses\n```python\n# Real-time streaming\nstream = client.generate(\n model=\"claude-3-5-sonnet-latest\",\n messages=\"Tell me a story about space exploration\",\n stream=True\n)\n\nfor chunk in stream:\n print(chunk.content, end=\"\", flush=True)\n```\n\n### Function Calling with Tools\n```python\n@client.tool()\ndef get_weather(city: str) -> str:\n \"\"\"Get current weather for a city.\"\"\"\n return f\"Sunny, 72\u00b0F in {city}\"\n\n@client.tool()\ndef calculate_tip(bill_amount: float, tip_percentage: float = 18.0) -> dict:\n \"\"\"Calculate tip and total amount for a restaurant bill.\"\"\"\n tip = bill_amount * (tip_percentage / 100)\n total = bill_amount + tip\n return {\"tip\": tip, \"total\": total, \"tip_percentage\": tip_percentage}\n\nresponse = client.generate(\n model=\"gpt-4o\",\n messages=[\n {\"role\": \"user\", \"content\": \"What's the weather in NYC?\"},\n {\"role\": \"user\", \"content\": \"Also calculate a tip for a $50 dinner bill\"}\n ]\n)\nprint(response.content)\n```\n\n### Multi-Provider Switching\n```python\n# Seamlessly switch between providers\nmodels = [\"gpt-4o-mini\", \"claude-3-5-haiku-latest\", \"gemini-2.5-flash\"]\n\nfor model in models:\n response = client.generate(\n model=model,\n messages=\"Explain quantum computing in one sentence\"\n )\n print(f\"{model}: {response.content}\")\n```\n\n\n## \ud83d\udd27 Key Features\n\n- **Multi-Provider Support**: Switch between 7 major AI providers seamlessly\n- **Automatic Detection**: Auto-detects available API keys from environment\n- **Unified Interface**: Consistent API across all providers\n- **Streaming Support**: Real-time response streaming\n- **Function Calling**: Tool integration with decorators\n- **Async Support**: Full async/await compatibility\n- **Native Fallback**: Access provider-specific features when needed\n\n## \ud83d\udc1b Issues & Feature Requests\n\n- **Found a bug?** Use our [Bug Report](.github/ISSUE_TEMPLATE/bug_report.yml) template\n- **Want a feature?** Use our [Feature Request](.github/ISSUE_TEMPLATE/feature_request.yml) template\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Unified interface for multiple LLM providers with automatic provider detection and seamless switching",
"version": "0.1.0",
"project_urls": {
"Changelog": "https://github.com/Verdenroz/chimeric/blob/main/CHANGELOG.md",
"Documentation": "https://verdenroz.github.io/chimeric/",
"Issues": "https://github.com/Verdenroz/chimeric/issues",
"Repository": "https://github.com/Verdenroz/chimeric"
},
"split_keywords": [
"ai",
" anthropic",
" gemini",
" llm",
" multi-provider",
" openai",
" unified-interface"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "5cac972bd84be432412e60a2ce0deba6fcc90a03ee5c1080ecc003a8bcb9a776",
"md5": "922b4914b2dcf86e8f1601e9fc1b858e",
"sha256": "c53c001e5847b1fe1e18b655f4dcd49b8f2db33d54a68bb32ac1cffb7d10b3d8"
},
"downloads": -1,
"filename": "chimeric-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "922b4914b2dcf86e8f1601e9fc1b858e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 62760,
"upload_time": "2025-08-12T00:36:31",
"upload_time_iso_8601": "2025-08-12T00:36:31.835565Z",
"url": "https://files.pythonhosted.org/packages/5c/ac/972bd84be432412e60a2ce0deba6fcc90a03ee5c1080ecc003a8bcb9a776/chimeric-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c42b15675e7dc3ed017ac3ac06ecd2f1821d5367ffc2028ccd6de7ba62aa4ceb",
"md5": "4314c0f3d5174b6a88dde937f79b7378",
"sha256": "1f67deffa2788a00221d264779a585827692b1ec9f329c92b654dea8b02c54ca"
},
"downloads": -1,
"filename": "chimeric-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "4314c0f3d5174b6a88dde937f79b7378",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 2245137,
"upload_time": "2025-08-12T00:36:33",
"upload_time_iso_8601": "2025-08-12T00:36:33.441916Z",
"url": "https://files.pythonhosted.org/packages/c4/2b/15675e7dc3ed017ac3ac06ecd2f1821d5367ffc2028ccd6de7ba62aa4ceb/chimeric-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-12 00:36:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Verdenroz",
"github_project": "chimeric",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "chimeric"
}