zeno-framework
A modular Python framework for building AI assistants. Bring an LLM, plug in channels (CLI, email, iMessage), wire memory adapters (SQLite, Chroma, Qdrant), and ship.
zeno-framework is a meta-package — it ships no code of its own and pulls in
the right combination of zeno-* packages via extras.
Install
# minimal core — ships the Claude provider by default
uv add zeno-framework
# terminal chat with memory
uv add 'zeno-framework[memory,cli]'
# OpenAI-compatible provider on top of the default Claude provider
uv add 'zeno-framework[openai]'
# the full kitchen sink
uv add 'zeno-framework[all]'
Python 3.12+ required.
By default, pip install zeno-framework installs zeno-provider-claude
so ClaudeSDKProvider works out of the box. To use OpenAI-compatible
endpoints (OpenAI, OpenRouter, LiteLLM, Azure v1, Ollama, vLLM), add
the openai extra. The claude extra is also declared for explicit
installs but is redundant with the default.
Hello world
import asyncio
from zeno.agent import Agent
from zeno.app import ZenoApp
from zeno.channels.cli.channel import CliChannel
from zeno.providers.claude_sdk import ClaudeSDKProvider
async def main() -> None:
app = ZenoApp(
agent=Agent(
name="root",
instructions="You are a helpful assistant.",
),
channels=[CliChannel()],
provider=ClaudeSDKProvider(),
)
await app.run()
asyncio.run(main())
export ANTHROPIC_API_KEY=sk-ant-...
uv run python hello.py
That's a working terminal-chat assistant. Add memory, more channels, or swap the provider as you grow.
Extras
| Extra | Pulls in | What you get |
|---|---|---|
memory |
zeno-memory |
SQLite session, conversation, and user-memory stores. |
chroma |
zeno-memory + zeno-chroma |
ChromaDB-backed KnowledgeStore for RAG. |
qdrant |
zeno-memory + zeno-qdrant |
Qdrant-backed KnowledgeStore for RAG. |
cli |
zeno-channel-cli |
Terminal channel (stdin/stdout with streaming). |
email |
zeno-channel-email |
Email channel (Resend inbound + outbound). |
sendblue |
zeno-channel-sendblue |
iMessage channel via Sendblue webhooks. |
claude |
zeno-provider-claude |
Claude Agent SDK provider (default; redundant extra for explicit installs). |
openai |
zeno-provider-openai |
OpenAI-compatible provider (OpenAI, OpenRouter, LiteLLM, Azure v1, Ollama, vLLM). |
scheduler |
zeno-scheduler |
Proactive triggers: one-shot, heartbeat, cron. |
browser |
zeno-tools-browser |
Playwright-backed browser tools (browse, click, …). |
things |
zeno-tools-things |
Things 3 / Things Cloud todo tools (things_list, things_add, things_complete). |
secrets-1password |
zeno-secrets-1password |
1Password CLI-backed SecretsStore adapter. |
all |
every extra above (except browser, which carries Playwright) |
Everything bundled. |
zeno-core
is always installed — it provides the Agent, ZenoApp, Ctx, @tool,
provider/channel protocols, and the turn worker.
What's in the framework
- Agents and sub-agents — a root
Agentorchestrates and delegates to specialistSubAgentinstances. Each sub-agent declares its owntools,built_in_tools, andmax_turns; the Claude provider translates them to native dispatch via the SDK'sTasktool. See the "Composing specialists" section in the root README. - Tools —
@tooldecorator with auto-injection ofCtx, secrets, and memory binders. - Channels — pluggable transports (
CliChannel,EmailChannel,SendblueChannel); contributed via thezeno.channelsentry-point group. - Providers —
ClaudeSDKProvider(default) andOpenAIProvider; contributed via thezeno.providersentry-point group. - Memory — three-layer model (session, conversation, user memory) with SQLite defaults and pluggable vector knowledge stores.
- Scheduler — proactive triggers for cron/heartbeat workflows.
- Secrets —
SecretsStoreprotocol with env-var default and optional 1Password adapter.
See the example chat app for a complete reference implementation in ≤150 lines.
Links
- Source code & issues: https://github.com/nkootstra/zeno
- Changelog: https://github.com/nkootstra/zeno/blob/main/CHANGELOG.md
- Security policy: https://github.com/nkootstra/zeno/blob/main/SECURITY.md
- Contributing: https://github.com/nkootstra/zeno/blob/main/CONTRIBUTING.md
MIT licensed.
Metadata
Release files for zeno-framework 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zeno_framework-1.1.0.tar.gz | 4.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zeno_framework-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.9 kB
Release files / zeno_framework-1.1.0.tar.gz
| Download URL | zeno_framework-1.1.0.tar.gz |
|---|---|
| Size | 4.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
27971344532e1832c4b4a723264a90fb7e7054cd7f459a7167238978f47f311b
|
|
BLAKE2b-256 checksum How to use checksums |
b463cf3d8f66b4aa7375ad7e3f6ed8f0f2b5187f6619b46ea8ce0adce1c7a2db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 1, 2026.
Transparency logRelease files / zeno_framework-1.1.0-py3-none-any.whl
| Download URL | zeno_framework-1.1.0-py3-none-any.whl |
|---|---|
| Size | 4.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dd936fc792f03f5a9e1c231794bb5b35b5fad09a51322bb134ee2d0cbe2ba591
|
|
BLAKE2b-256 checksum How to use checksums |
2b68c43b2163246d1b27c33d93613903f2a8a5097a101becf31659fb843eb7e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 1, 2026.
Transparency log