Meta-package for the Zeno AI assistant framework.
Project description
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, …). |
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 — composable
Agentinstances with theTasktool for delegation. - 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.
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_framework-1.0.0.tar.gz.
File metadata
- Download URL: zeno_framework-1.0.0.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc72096f937d8db04d8428388abea1c39a44d7c961c85146a5e1814d7dbbc9cf
|
|
| MD5 |
54da620adbb1249c26deaf0202e58b86
|
|
| BLAKE2b-256 |
533ef25d30496814fc6e155331e90633f9e3575962c0c12dac5978453491cd2e
|
Provenance
The following attestation bundles were made for zeno_framework-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_framework-1.0.0.tar.gz -
Subject digest:
dc72096f937d8db04d8428388abea1c39a44d7c961c85146a5e1814d7dbbc9cf - Sigstore transparency entry: 1387426699
- 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_framework-1.0.0-py3-none-any.whl.
File metadata
- Download URL: zeno_framework-1.0.0-py3-none-any.whl
- Upload date:
- Size: 4.1 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 |
ea291e4f74b342297490475bb1ac4dc8a996e5fb72d028f5b6b7464b8600a87f
|
|
| MD5 |
ffe2ec798e8e26b949aa5bc935a473fe
|
|
| BLAKE2b-256 |
57780c41189d7bf903742e4b5b7c60d8fccac1b5bf65f74568915593f75df313
|
Provenance
The following attestation bundles were made for zeno_framework-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_framework-1.0.0-py3-none-any.whl -
Subject digest:
ea291e4f74b342297490475bb1ac4dc8a996e5fb72d028f5b6b7464b8600a87f - Sigstore transparency entry: 1387426877
- 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: