Keiro client — call the EB1 multi-model ensemble API.
Project description
Keiro
EB1 multi-model ensemble inference. Run multiple frontier models in parallel and synthesize the best response.
Quick start
pip install keiro
keiro setup
from keiro import models
print(models("eb1-preview", "What is machine learning?"))
Or from the command line:
keiro "What is machine learning?"
How it works
EB1 sends your prompt to multiple frontier models (Claude, GPT, Gemini) in parallel, then a judge synthesizes the strongest elements into a single response. The result is more accurate and more complete than any individual model.
Models
| Model | Description |
|---|---|
eb1-preview (default) |
Adaptive GNN-routed ensemble |
eb1-delta-preview |
Adaptive ensemble with orchestration |
eb1 |
Standard 5-model ensemble |
eb1-pro |
Extended 6-model ensemble |
eb1-frontier |
Highest quality, max reasoning |
eb1-codex |
Optimized for code and SWE tasks |
eb1-fast |
Low latency, lighter models |
eb1-fast-preview |
Adaptive routing, low latency |
eb1-frontier-preview |
Adaptive routing, max quality |
claude-opus-4-6 |
Direct passthrough (no ensemble) |
gpt-5.2 |
Direct passthrough |
from keiro import models
# Default adaptive ensemble
answer = models("eb1-preview", "Solve this step by step: what is 23 * 47?")
# Max quality
answer = models("eb1-frontier", "Prove that sqrt(2) is irrational.")
# Low latency
answer = models("eb1-fast", "Summarize this in one sentence.")
# Direct passthrough to a single model
answer = models("claude-opus-4-6", "Write a haiku")
Prompt-first API
from keiro import models
# Structured response with usage metadata
reply = models.response("eb1-preview", "Explain quantum computing.")
print(reply.text)
print(reply.usage)
# Reusable model binding with fixed parameters
creative = models.instance("eb1-preview", temperature=0.8)
print(creative("Write a limerick about debugging."))
# Streaming
for chunk in models.stream("eb1-preview", "Draft a launch email."):
print(chunk, end="")
Full client
from keiro import Client
client = Client()
# Chat completions API
response = client.chat(
messages=[{"role": "user", "content": "Explain quantum computing."}],
model="eb1-preview",
)
print(response["choices"][0]["message"]["content"])
# Rate limit visibility
print(client.rate_limits)
# RateLimitInfo(limit_requests=1000, remaining_requests=999, ...)
client.close()
CLI
keiro "What is ML?" # one-shot response
keiro # interactive REPL
keiro -m eb1-fast "Quick answer" # specific model
echo context | keiro "Summarize" # pipe context as input
keiro setup # configure credentials
keiro models # list available models
Configuration
Interactive setup (recommended):
keiro setup
This validates your API key against the gateway and saves credentials to
~/.keiro/credentials.
Environment variables:
export KEIRO_API_KEY="your-api-key"
Explicit arguments:
from keiro import Client
client = Client(api_key="your-key")
Precedence: explicit arguments > environment variables > credentials file.
Requirements
- Python 3.11+
- No GPU required (inference runs on hosted infrastructure)
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 keiro-0.9.2.tar.gz.
File metadata
- Download URL: keiro-0.9.2.tar.gz
- Upload date:
- Size: 56.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afa9e1c9242b5d33dd1ad95f12b5be42c6da0cc2ecf1d03db565debc82ac970b
|
|
| MD5 |
0837a419036b470f4c03315a25ee4f91
|
|
| BLAKE2b-256 |
62685bb9f1126cee311d47e823e1f3a4622245dea6bd8bc80bfa85ce724a2bc3
|
File details
Details for the file keiro-0.9.2-py3-none-any.whl.
File metadata
- Download URL: keiro-0.9.2-py3-none-any.whl
- Upload date:
- Size: 61.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
230a8cffa3483a171eb7fb8b2a4551a5ddbd88b510ebaf913964c8f480381641
|
|
| MD5 |
b9b16efc8d3d9f80af2c5331ebe7afb3
|
|
| BLAKE2b-256 |
4dc54222a0f430cb8c77af3f2037b5f4b93026841012d7ec0089b7864d7641ab
|