---
# HoloAI – A modular, provider-agnostic AI framework for multi-model orchestration, agent workflows, and vision."
# NOTICE: PLEASE DO NOT INSTALL VERSION 0.1.0 - 0.1.7, 0.2.4 - 0.2.6, and 0.2.9 - 0.3.1 THEY ARE NOT STABLE AND WILL BREAK YOUR PROJECT.
---
## Overview
HoloAI is a production-grade, multi-provider orchestrator for LLM and vision models.
Supports OpenAI, Google Gemini, Groq, Grok, and Anthropic, with automatic provider inference.
Built for:
* Agents & bots
* Workflow automation
* Voice assistants
* Any application needing multi-model, multi-provider intelligence
HoloAI unifies OpenAI, Google Gemini, Groq, Grok, and Anthropic: handling agents, conversation, vision, all from a single interface.
---
## Fixes
* Fixed response issue when using Anthropics reasoning.
---
## New Features
* **Flexible Skills & Actions**
You can now provide both skills and actions to the model in two ways:
- **Bundled:** `capabilities=[skills, actions]`
- **Separate:** `skills=skills, actions=actions`
> If only actions is provided (without skills), this will result in an error.
Skills and actions will be executed if the model chooses to call them.
* Tool/Function calling
* Agent support
* Manual Provider setup (Overrides automatic provider inference using the .env file and model name)
* Can now pass in files as well as images to the model limited only by the models max context window. (pdf, docx, txt) NOTE: images in pdf and docx files are not supported yet. and will be ignored.
* Image generation support (xAI, OpenAI, Google)
---
## Up Coming Features
* Support for more file and image types
---
## Key Features
* **Universal Provider Support:**
Instantly switch between OpenAI, Google Gemini, Groq, Grok, and Anthropic—no vendor lock-in.
* **Multimodal Ready:**
Handles text, vision, generation, out of the box.
* **Automatic Provider Inference:**
Just specify your model; HoloAI selects the right backend.
* **Minimal, Clean API:**
One interface for all major models—rapid integration.
---
## Why HoloAI?
Most LLM wrappers lock you into a single vendor or force you to juggle multiple APIs and formats.
**HoloAI** delivers:
* **One Framework, any provider.**
* **No boilerplate, no rewrites.**
* **Plug-and-play for agents, scripts, automations, or apps.**
---
## Environment
Set API keys as environment variables:
* `OPENAI_API_KEY`
* `ANTHROPIC_API_KEY`
* `GEMINI_API_KEY`
* `GROQ_API_KEY`
Only providers with keys set will be loaded.
---
## Provider Setup (`setProvider` Usage)
You can configure your providers directly in code—no `.env` required (unless you want it).
`setProvider` is flexible and supports all of the following patterns:
### 1. **Single Provider (String)**
```python
client = HoloAI()
client.setProvider('OPENAI_API_KEY=sk-xxxx')
````
*Registers only OpenAI as a provider.*
---
### 2. **Multiple Providers (Tuple of Strings)**
```python
client = HoloAI()
client.setProvider((
'OPENAI_API_KEY=sk-xxxx',
'ANTHROPIC_API_KEY=claude-xxxx'
))
```
*Registers OpenAI and Anthropic as providers.*
---
### 3. **Multiple Providers (List of Strings)**
```python
client = HoloAI()
client.setProvider([
'OPENAI_API_KEY=sk-xxxx',
'ANTHROPIC_API_KEY=claude-xxxx',
'GEMINI_API_KEY=g-xxxx',
'GROQ_API_KEY=gsk-xxxx'
])
```
*Registers all four providers (OpenAI, Anthropic, Google, Groq).*
---
4. No Arguments: Use Environment Variables or .env
If you want to load API keys automatically from environment variables or a .env file,
you do not need to call setProvider() at all—just instantiate HoloAI:
```python
client = HoloAI()
```
Any providers with API keys available in your environment will be registered automatically.
---
> **Tip:**
> You can mix and match—use direct code for development, `.env`/env for production, or both.
> Only providers with keys will be registered and available.
---
## Code Examples
You can find code examples on my [GitHub repository](https://github.com/TristanMcBrideSr/TechBook).
---
## License
This project is licensed under the [Apache License, Version 2.0](LICENSE).
Copyright 2025 Tristan McBride Sr.
---
## Authors
- Tristan McBride Sr.
- Sybil
Raw data
{
"_id": null,
"home_page": null,
"name": "HoloAI",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "\"Tristan McBride Sr.\" <142635792+TristanMcBrideSr@users.noreply.github.com>",
"keywords": "AI, AI Client, Agents, Skills, Tools, Learning, Productivity, Automation",
"author": "Tristan McBride Sr.",
"author_email": "\"Tristan McBride Sr.\" <142635792+TristanMcBrideSr@users.noreply.github.com>",
"download_url": "https://files.pythonhosted.org/packages/7e/9a/a65a693fb04897588fd1649ef14a0848f4182f15da7806f30915c8b8bb0f/holoai-0.5.2.tar.gz",
"platform": null,
"description": "\ufeff\r\n---\r\n\r\n# HoloAI \u2013 A modular, provider-agnostic AI framework for multi-model orchestration, agent workflows, and vision.\"\r\n\r\n\r\n# NOTICE: PLEASE DO NOT INSTALL VERSION 0.1.0 - 0.1.7, 0.2.4 - 0.2.6, and 0.2.9 - 0.3.1 THEY ARE NOT STABLE AND WILL BREAK YOUR PROJECT.\r\n\r\n---\r\n\r\n## Overview\r\n\r\nHoloAI is a production-grade, multi-provider orchestrator for LLM and vision models. \r\nSupports OpenAI, Google Gemini, Groq, Grok, and Anthropic, with automatic provider inference.\r\nBuilt for:\r\n\r\n* Agents & bots\r\n* Workflow automation\r\n* Voice assistants\r\n* Any application needing multi-model, multi-provider intelligence\r\n\r\nHoloAI unifies OpenAI, Google Gemini, Groq, Grok, and Anthropic: handling agents, conversation, vision, all from a single interface.\r\n\r\n---\r\n\r\n## Fixes\r\n\r\n* Fixed response issue when using Anthropics reasoning.\r\n\r\n---\r\n\r\n## New Features\r\n\r\n* **Flexible Skills & Actions** \r\n You can now provide both skills and actions to the model in two ways:\r\n - **Bundled:** `capabilities=[skills, actions]`\r\n - **Separate:** `skills=skills, actions=actions`\r\n > If only actions is provided (without skills), this will result in an error. \r\n Skills and actions will be executed if the model chooses to call them.\r\n* Tool/Function calling\r\n* Agent support\r\n* Manual Provider setup (Overrides automatic provider inference using the .env file and model name)\r\n* Can now pass in files as well as images to the model limited only by the models max context window. (pdf, docx, txt) NOTE: images in pdf and docx files are not supported yet. and will be ignored.\r\n* Image generation support (xAI, OpenAI, Google)\r\n\r\n---\r\n\r\n## Up Coming Features\r\n\r\n* Support for more file and image types\r\n\r\n---\r\n\r\n## Key Features\r\n\r\n* **Universal Provider Support:**\r\n Instantly switch between OpenAI, Google Gemini, Groq, Grok, and Anthropic\u2014no vendor lock-in.\r\n* **Multimodal Ready:**\r\n Handles text, vision, generation, out of the box.\r\n* **Automatic Provider Inference:**\r\n Just specify your model; HoloAI selects the right backend.\r\n* **Minimal, Clean API:**\r\n One interface for all major models\u2014rapid integration.\r\n\r\n---\r\n\r\n## Why HoloAI?\r\n\r\nMost LLM wrappers lock you into a single vendor or force you to juggle multiple APIs and formats.\r\n**HoloAI** delivers:\r\n\r\n* **One Framework, any provider.**\r\n* **No boilerplate, no rewrites.**\r\n* **Plug-and-play for agents, scripts, automations, or apps.**\r\n\r\n---\r\n\r\n## Environment\r\n\r\nSet API keys as environment variables:\r\n\r\n* `OPENAI_API_KEY`\r\n* `ANTHROPIC_API_KEY`\r\n* `GEMINI_API_KEY`\r\n* `GROQ_API_KEY`\r\n\r\nOnly providers with keys set will be loaded.\r\n\r\n---\r\n\r\n## Provider Setup (`setProvider` Usage)\r\n\r\nYou can configure your providers directly in code\u2014no `.env` required (unless you want it). \r\n`setProvider` is flexible and supports all of the following patterns:\r\n\r\n### 1. **Single Provider (String)**\r\n\r\n```python\r\nclient = HoloAI()\r\nclient.setProvider('OPENAI_API_KEY=sk-xxxx')\r\n````\r\n\r\n*Registers only OpenAI as a provider.*\r\n\r\n---\r\n\r\n### 2. **Multiple Providers (Tuple of Strings)**\r\n\r\n```python\r\nclient = HoloAI()\r\nclient.setProvider((\r\n 'OPENAI_API_KEY=sk-xxxx',\r\n 'ANTHROPIC_API_KEY=claude-xxxx'\r\n))\r\n```\r\n\r\n*Registers OpenAI and Anthropic as providers.*\r\n\r\n---\r\n\r\n### 3. **Multiple Providers (List of Strings)**\r\n\r\n```python\r\nclient = HoloAI()\r\nclient.setProvider([\r\n 'OPENAI_API_KEY=sk-xxxx',\r\n 'ANTHROPIC_API_KEY=claude-xxxx',\r\n 'GEMINI_API_KEY=g-xxxx',\r\n 'GROQ_API_KEY=gsk-xxxx'\r\n])\r\n```\r\n\r\n*Registers all four providers (OpenAI, Anthropic, Google, Groq).*\r\n\r\n---\r\n\r\n4. No Arguments: Use Environment Variables or .env\r\nIf you want to load API keys automatically from environment variables or a .env file,\r\nyou do not need to call setProvider() at all\u2014just instantiate HoloAI:\r\n\r\n```python\r\nclient = HoloAI()\r\n```\r\n\r\nAny providers with API keys available in your environment will be registered automatically.\r\n\r\n---\r\n\r\n> **Tip:**\r\n> You can mix and match\u2014use direct code for development, `.env`/env for production, or both.\r\n> Only providers with keys will be registered and available.\r\n\r\n---\r\n\r\n## Code Examples\r\n\r\nYou can find code examples on my [GitHub repository](https://github.com/TristanMcBrideSr/TechBook).\r\n\r\n---\r\n\r\n## License\r\n\r\nThis project is licensed under the [Apache License, Version 2.0](LICENSE).\r\nCopyright 2025 Tristan McBride Sr.\r\n\r\n---\r\n\r\n## Authors\r\n- Tristan McBride Sr.\r\n- Sybil\r\n",
"bugtrack_url": null,
"license": null,
"summary": "Modular, provider-agnostic AI framework for multi-model orchestration, agent workflows, and vision.",
"version": "0.5.2",
"project_urls": {
"Homepage": "https://github.com/TristanMcBrideSr"
},
"split_keywords": [
"ai",
" ai client",
" agents",
" skills",
" tools",
" learning",
" productivity",
" automation"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b08e5dc5f9449abbe198de456575fe4f587dcb727e1d07d3fa5b5919f714095f",
"md5": "157690744492cdc0572fd1133ed84f20",
"sha256": "e85ca6d1607b49485e1221ee1c21682c2c78387a30245c4c184ac721929a8377"
},
"downloads": -1,
"filename": "holoai-0.5.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "157690744492cdc0572fd1133ed84f20",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 34522,
"upload_time": "2025-08-30T02:49:49",
"upload_time_iso_8601": "2025-08-30T02:49:49.776742Z",
"url": "https://files.pythonhosted.org/packages/b0/8e/5dc5f9449abbe198de456575fe4f587dcb727e1d07d3fa5b5919f714095f/holoai-0.5.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7e9aa65a693fb04897588fd1649ef14a0848f4182f15da7806f30915c8b8bb0f",
"md5": "9379c93eed6c2a8d1d7e327a1c234938",
"sha256": "1010c9c88afd4d9408b3d6ad8a02d218ce25037d71926410ec73acbe6b05e565"
},
"downloads": -1,
"filename": "holoai-0.5.2.tar.gz",
"has_sig": false,
"md5_digest": "9379c93eed6c2a8d1d7e327a1c234938",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 28152,
"upload_time": "2025-08-30T02:49:51",
"upload_time_iso_8601": "2025-08-30T02:49:51.132807Z",
"url": "https://files.pythonhosted.org/packages/7e/9a/a65a693fb04897588fd1649ef14a0848f4182f15da7806f30915c8b8bb0f/holoai-0.5.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-30 02:49:51",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "holoai"
}