OpenAI-compatible Chat Completions provider for Zeno (OpenAI, OpenRouter, LiteLLM, Azure v1, Ollama, vLLM).
Project description
zeno-provider-openai
OpenAI-compatible Chat Completions provider for Zeno. One adapter covers every vendor that speaks the OpenAI REST shape: OpenAI, OpenRouter, LiteLLM, Azure v1, Ollama, vLLM, and anything that clones the wire protocol.
Install
uv add 'zeno-framework[openai]'
Usage
from zeno.agent import Agent
from zeno.app import ZenoApp
from zeno.channels.cli.channel import CliChannel
from zeno.providers.openai import OpenAIProvider
app = ZenoApp(
agent=Agent(name="root", instructions="..."),
channels=[CliChannel()],
provider=OpenAIProvider(
api_key="sk-...",
base_url="https://api.openai.com/v1",
model="gpt-5.1",
),
)
Swap providers without changing your Agent:
# OpenRouter
OpenAIProvider(
api_key="...",
base_url="https://openrouter.ai/api/v1",
model="anthropic/claude-4.7-sonnet",
extra_headers={"HTTP-Referer": "https://yourapp", "X-Title": "yourapp"},
)
# LiteLLM
OpenAIProvider(api_key="...", base_url="http://litellm:4000/v1", model="anthropic/claude-4.7-sonnet")
# Azure v1 (/openai/v1/ surface)
OpenAIProvider(api_key="...", base_url="https://YOUR.openai.azure.com/openai/v1", model="gpt-5.1")
# Ollama — non-streaming when tools are present (known upstream bug)
OpenAIProvider(api_key="ollama", base_url="http://localhost:11434/v1", model="llama4",
disable_stream_with_tools=True)
Compatibility matrix
| Target | Streaming | Tools (native) | Tools-with-streaming | Notes |
|---|---|---|---|---|
| OpenAI | Yes | Yes | Yes | Reference |
| OpenRouter | Yes | Yes | Yes | Optional HTTP-Referer / X-Title headers |
| LiteLLM | Yes | Yes | Yes | Handles model translation server-side |
| Azure v1 | Yes | Yes | Yes | Use the v1 surface (/openai/v1/...) |
| Ollama | Yes | Yes | No (upstream) | Pass disable_stream_with_tools=True |
| vLLM | Yes | Yes | Yes | Aggregator defaults missing type to "function" |
What this provider does not support
built_in_tools(Claude Agent SDK native tools — no OpenAI equivalent)sub_agents(Claude Agent SDK dispatch contract)permission_mode(Claude-specific)
Configure those on ClaudeSDKProvider. Zeno's ZenoApp.start() catches mismatches.
Part of the Zeno framework.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zeno_provider_openai-1.0.0.tar.gz.
File metadata
- Download URL: zeno_provider_openai-1.0.0.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec0206c32d6e51cb0cafc8da1918479375b1b916d2c6cc5cb37cf3db2f56976e
|
|
| MD5 |
7d55bb0644021177b5fa965a5ab3f6ab
|
|
| BLAKE2b-256 |
b436004cc5253dc19bb38e5bbfab7a10c40bc1171308c39fbc1415e293d49470
|
Provenance
The following attestation bundles were made for zeno_provider_openai-1.0.0.tar.gz:
Publisher:
publish.yml on nkootstra/zeno
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zeno_provider_openai-1.0.0.tar.gz -
Subject digest:
ec0206c32d6e51cb0cafc8da1918479375b1b916d2c6cc5cb37cf3db2f56976e - Sigstore transparency entry: 1387426654
- Sigstore integration time:
-
Permalink:
nkootstra/zeno@e510a1a566d08e9bacfdbc6082bc7e9428c47c6e -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/nkootstra
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e510a1a566d08e9bacfdbc6082bc7e9428c47c6e -
Trigger Event:
push
-
Statement type:
File details
Details for the file zeno_provider_openai-1.0.0-py3-none-any.whl.
File metadata
- Download URL: zeno_provider_openai-1.0.0-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
104b971419c4014db7aef582933a18a74c6b1be86e17d61a153bc9a50f0fde8d
|
|
| MD5 |
445280b73b9631a5d4c8d2d559f5a1fe
|
|
| BLAKE2b-256 |
bdd34337b0699db071449965a7b1892050be60989ffc267fb465c3ebc0e7d50d
|
Provenance
The following attestation bundles were made for zeno_provider_openai-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on nkootstra/zeno
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zeno_provider_openai-1.0.0-py3-none-any.whl -
Subject digest:
104b971419c4014db7aef582933a18a74c6b1be86e17d61a153bc9a50f0fde8d - Sigstore transparency entry: 1387426839
- Sigstore integration time:
-
Permalink:
nkootstra/zeno@e510a1a566d08e9bacfdbc6082bc7e9428c47c6e -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/nkootstra
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e510a1a566d08e9bacfdbc6082bc7e9428c47c6e -
Trigger Event:
push
-
Statement type: