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]>
This commit is contained in:
2026-08-01 13:35:20 -07:00
co-authored by Hanzo Dev
parent 811de70215
commit bcffc56ee3
8 changed files with 140 additions and 244 deletions
+25 -37
View File
@@ -1,56 +1,44 @@
# hanzo-node
Cross-platform installer for the Hanzo AI node (Rust binary).
A Python installer that downloads a `hanzo-node` binary from `hanzoai/node`
release assets.
## Installation
## Read this first
Two different things are called `hanzo-node`, and this package is not the one
most people want.
**The `hanzo-node` command** is a second name for the Hanzo CLI — a symlink to
the same binary, which the Hanzo Cloud control binary resolves first when it
delegates a verb it does not serve itself. You get it from the CLI installer, and
because it is a symlink it can never drift out of step with `hanzo`:
```bash
# Install via uv
uv tool install hanzo-node
# Or via pip
pip install hanzo-node
curl -fsSL https://hanzo.sh | sh
hanzo-node --version # same build as `hanzo --version`
```
**This package** installs a separate Rust agent-node binary from the
`hanzoai/node` repository. That repository is private, so its release assets
return 404 to an unauthenticated download and `hanzo-node install` cannot
complete unless you already have access. Nothing here is being removed, but if
you landed on it looking for the `hanzo-node` command, use the installer above.
## Usage
```bash
# Install the node binary
hanzo-node install
pip install hanzo-node # or: uv tool install hanzo-node
# Check status
hanzo-node install # fetch the binary for your platform
hanzo-node status
# Upgrade to latest
hanzo-node upgrade
# Run the node (passes args to binary)
hanzo-node run --help
# Uninstall
hanzo-node run --help # pass through to the binary
hanzo-node uninstall
```
## How It Works
This Python package is a thin wrapper that:
1. Detects your platform (macOS/Linux/Windows, x64/arm64)
2. Downloads the appropriate Rust binary from GitHub releases
3. Installs it to `~/.local/bin` (or `%LOCALAPPDATA%\hanzo\bin` on Windows)
4. Provides a CLI to manage the installation
The actual `hanzo-node` is written in Rust for performance. This package just handles cross-platform distribution.
## Supported Platforms
- macOS (Apple Silicon / Intel)
- Linux (x64 / arm64)
- Windows (x64)
## Environment Variables
- `HANZO_INSTALL_DIR` - Override the installation directory (default: `~/.local/bin`)
It detects your platform (macOS/Linux/Windows, x64/arm64), downloads the matching
asset, and installs it to `~/.local/bin` — or `%LOCALAPPDATA%\hanzo\bin` on
Windows. `HANZO_INSTALL_DIR` overrides the destination.
## License
+3 -3
View File
@@ -1,7 +1,7 @@
[project]
name = "hanzo-node"
version = "0.1.0"
description = "Hanzo Node - Cross-platform installer for the Hanzo AI node (Rust binary)"
version = "0.1.1"
description = "Legacy installer for a private hanzo-node build. `hanzo-node` now ships with the Hanzo CLI — https://hanzo.sh"
authors = [
{name = "Hanzo AI", email = "[email protected]"},
]
@@ -33,7 +33,7 @@ hanzo-node = "hanzo_node.cli:main"
[project.urls]
Homepage = "https://hanzo.ai"
Repository = "https://github.com/hanzoai/python-sdk"
Documentation = "https://docs.hanzo.ai/node"
Documentation = "https://hanzo.sh"
[build-system]
requires = ["hatchling"]