Files
zeekayandHanzo Dev bcffc56ee3 pypi: one canonical hanzo, and superseded packages that say where the real one is
Three published packages declared a console script named `hanzo`, competing with
the native CLI and with each other. Measured on a clean venv at hanzo==0.4.3:
`hanzo --help` printed hanzo-cli's program, not the one pkg/hanzo/README.md
documents. Renamed to `hanzo-py` and `hanzo-cli` — script named after its
distribution. Nothing is yanked; both packages still install and run.

- pkg/hanzo 0.4.4 — summary and README now say the CLI is a native binary
  (curl -fsSL https://hanzo.sh | sh). Dropped the invented command tour
  (`hanzo chat --model gpt-4`, `hanzo node start`, `hanzo router start` on
  localhost:4000): none of those verbs exist in the program this package
  installs. Kept the three library entry points, each import-checked.
- pkg/hanzo-cli 0.2.4 — `hanzo login` replaced with the native `hanzo auth login`
  plus its own `hanzo-cli login`. Verified `hanzo iam users list` and
  `hanzo kms secrets list` against the shipped v1.9.18 binary.
- pkg/hanzo-node 0.1.1 — states the two meanings of the name: the `hanzo-node`
  COMMAND is a symlink to the Hanzo CLI; this package fetches a different binary
  from hanzoai/node, which is private, so the download 404s for the public.
  Documentation URL moved off docs.hanzo.ai/node (404) to hanzo.sh.
- root README (published as `hanzoai`) — `pip install hanzo` no longer advertised
  as the CLI; model ids zen-coder -> zen5-coder (zen-coder is not in the catalog);
  "2452 operations, 1798 schemas" dropped for the spec URL, since the live
  surface is 1058 paths / 1465 operations / 1139 schemas.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-01 13:35:20 -07:00

119 lines
3.0 KiB
TOML

[project]
name = "hanzo"
version = "0.4.4"
description = "Python orchestration tools for Hanzo AI. The `hanzo` command itself is now a native binary — https://hanzo.sh"
authors = [
{name = "Hanzo AI", email = "[email protected]"},
]
dependencies = [
"click>=8.1.0",
"rich>=13.0.0",
"httpx>=0.23.0",
"pydantic>=2.0.0",
"pyyaml>=6.0",
"hanzo-cli>=0.2.0",
"hanzo-kms>=1.1.0",
]
readme = "README.md"
requires-python = ">=3.12"
keywords = ["ai", "cli", "hanzo", "agents", "llm", "mcp", "local-ai", "private-ai"]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
]
# The console script is `hanzo-py`, NOT `hanzo`. `hanzo` is the native Hanzo
# CLI (curl -fsSL https://hanzo.sh | sh). Two programs on PATH under one name
# is how `hanzo login` came to mean different things to different people.
[project.scripts]
hanzo-py = "hanzo.cli:main"
[project.optional-dependencies]
all = [
"hanzoai>=1.0.0",
"hanzo-mcp>=0.7.0",
"hanzo-agents>=0.1.0",
"hanzo-network>=0.1.3",
"hanzo-memory>=1.0.0",
# "hanzo-router>=1.74.3", # TODO: Publish hanzo-router to PyPI
"hanzo-aci>=0.2.8",
"prompt-toolkit>=3.0.0",
"openai>=1.0.0",
"anthropic>=0.25.0",
"qrcode>=7.4.2",
]
ai = [
"hanzoai>=1.0.0",
"openai>=1.0.0",
"anthropic>=0.25.0",
]
router = [
# "hanzo-router>=1.74.3", # TODO: Publish hanzo-router to PyPI
]
mcp = [
"hanzo-mcp>=0.7.0",
]
agents = [
"hanzo-agents>=0.1.0",
"hanzo-network>=0.1.3",
]
dev = [
"hanzo-aci>=0.2.8",
]
interactive = [
"prompt-toolkit>=3.0.0",
"qrcode>=7.4.2",
]
# Infrastructure extras - simple names
vector = ["qdrant-client>=1.7.0"]
kv = ["redis>=5.0.0"]
documentdb = ["motor>=3.3.0", "pymongo>=4.6.0"]
storage = ["aiobotocore>=2.9.0", "botocore>=1.34.0"]
search = ["meilisearch-python-sdk>=3.0.0"]
pubsub = ["nats-py>=2.6.0"]
tasks = ["temporalio>=1.4.0"]
queues = ["redis>=5.0.0"]
cron = ["redis>=5.0.0", "croniter>=2.0.0"]
functions = ["httpx>=0.23.0"]
# All infrastructure
infra = [
"qdrant-client>=1.7.0",
"redis>=5.0.0",
"motor>=3.3.0",
"pymongo>=4.6.0",
"aiobotocore>=2.9.0",
"botocore>=1.34.0",
"meilisearch-python-sdk>=3.0.0",
"nats-py>=2.6.0",
"temporalio>=1.4.0",
"croniter>=2.0.0",
"httpx>=0.23.0",
]
[project.urls]
Homepage = "https://hanzo.ai"
Repository = "https://github.com/hanzoai/python-sdk"
Documentation = "https://docs.hanzo.ai/cli"
"Bug Tracker" = "https://github.com/hanzoai/python-sdk/issues"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build]
include = [
"src/hanzo",
]
[tool.hatch.build.targets.wheel]
packages = ["src/hanzo"]