Hanzo
Hanzo Skills Reference

Hanzo Tools

Hanzo Tools is a unified registry of 88 tools across 20 categories for all AI agent operations across the Hanzo and Zoo ecosystems. Core implementation in Rust with Python (PyO3) and Node.js (NAPI-...

Overview

Hanzo Tools is a unified registry of 88 tools across 20 categories for all AI agent operations across the Hanzo and Zoo ecosystems. Core implementation in Rust with Python (PyO3) and Node.js (NAPI-RS) bindings. Also contains pre-built agent definitions and supporting scripts.

Why Hanzo Tools?

  • One registry: Single source of truth for all agent tools across Hanzo Node, Zoo Node, and Hanzo Agent
  • Type-safe: Rust core with JSON Schema validation for all tool parameters
  • Cross-language: Python and Node.js bindings from the same Rust codebase
  • Async execution: All tool execution is asynchronous
  • Categorized: 20 logical categories for discoverability

Tech Stack

  • Core: Rust
  • Python bindings: PyO3 / maturin
  • Node.js bindings: NAPI-RS
  • Parameter validation: JSON Schema
  • Scripts: TypeScript (Deno-compatible), Shell, Python
  • License: Apache-2.0

Repo

github.com/hanzoai/tools

When to use

  • Providing tool capabilities to AI agents (Hanzo Agent, Zoo Node, custom agents)
  • Looking up available tools by category or name
  • Adding new tools to the unified registry
  • Building Rust/Python/Node.js applications that need tool execution
  • Packaging and deploying agent definitions

Hard requirements

  1. Rust for building the core registry
  2. maturin for Python bindings
  3. Node.js for NAPI-RS bindings

Quick reference

ItemValue
Repogithub.com/hanzoai/tools
LanguageRust (core), TypeScript (scripts), Python (tests)
Total tools88
Total categories20
Rust cratehanzo-tools
Python modulehanzo_tools
npm package@hanzo/tools
CatalogCATALOG.json (43KB, machine-readable)
Manifesttools-manifest.json

Tool categories

CategoryCountTools
filesystem10read, write, directory_tree, tree, watch, diff, rules, content_replace, find, grep
shell15run_command, run, run_background, python_execute, processes, ps, pkill, kill, logs, open, npx, uvx, pkg, zsh, streaming_command
agent7agent, swarm, claude, critic, review, clarification, network
database7db, sql, graph, sql_query, sql_search, graph_add, graph_query
system6tool_enable, tool_disable, tool_list, stats, mode, config
search5unified_search, search, web_search, batch_search, symbols
project5project_analyze, dependency_tree, build_project, test_run, refactor_code
memory4memory, recall_memories, store_facts, summarize_to_memory
todo3todo, todo_read, todo_write
mcp3mcp, mcp_add, mcp_stats
editor3neovim_edit, neovim_command, neovim_session
llm3llm, consensus, llm_manage
jupyter3jupyter, notebook_read, notebook_edit
git3git, git_status, git_search
edit3edit, multi_edit, apply_patch
vector2vector_index, vector_search
ast2ast, ast_multi_edit
browser2screenshot, navigate
thinking1think
lsp1lsp

Build commands

# Build the Rust core
cd rust/
cargo build --release

# Run tests
cargo test

# Generate catalog
cargo run --example generate_catalog > ../CATALOG.json

# Python bindings
pip install maturin
maturin develop

# Node.js bindings
npm install
npm run build

Usage

Rust

use hanzo_tools::Registry;

let registry = Registry::new();
let tools = registry.list_tools();

// Execute a tool
let result = registry.execute("read", json!({
    "path": "/path/to/file.txt"
})).await?;

Python

from hanzo_tools import ToolRegistry

registry = ToolRegistry()
tools = registry.list_tools()

result = await registry.execute("read", {
    "path": "/path/to/file.txt"
})

Node.js

const { Registry } = require('@hanzo/tools');

const registry = new Registry();
const tools = registry.listTools();

Architecture

hanzo-tools (Rust)
  ToolRegistry (88 tools, 20 categories)
  JSON Schema validation
  Async execution
       |
       +-- Python bindings (PyO3) --> Hanzo Agent (Python)
       +-- Node.js bindings (NAPI-RS)
       +-- Direct Rust dependency --> Hanzo Node, Zoo Node

Key directories

rust/                       # Rust core implementation
  Makefile                  # Build automation
  build.py                  # Build script
  test_integration.py       # Integration tests
  README.md                 # Rust-specific docs
tools/                      # Tool definitions (large, 100+ entries)
agents/                     # Pre-built agent definitions
  audio-insight/
  bitcoin-chart-analyst/
  bitcoin-market-analyst/
  bitcoiner/
  code-directory-and-git-repository-analyzer/
  corporate-treasury-analyzer/
  e-librarian/
  enhanced-image-generator/
  finance_bro/
  image-analyzer/
  learning_tutor/
  linear_agent/
  markdown-content-writer/
  math_problem_solver/
  mind-map-creator/
  poster-creator/
  prompt_writer/
  youtube_expert/
  ... (35 total)
scripts/                    # TypeScript utility scripts
  download_agents.ts        # Agent download/sync
  download_tools.ts         # Tool download/sync
  build_tools.ts            # Tool build script
  launch.ts                 # Launch script
  generate_images.ts        # Image generation
  run_node.sh               # Node runner
  tests/                    # Script tests
crons/                      # Scheduled tasks
  fetch_usa_news.json       # News fetching cron config
CATALOG.json                # Machine-readable tool catalog (43KB)
AGENTS_CATALOG.json         # Machine-readable agent catalog (10KB)
tools-manifest.json         # Registry manifest with stats and integration info
package_agents.sh           # Agent packaging script
run_zoo_with_agents.sh      # Zoo integration runner
verify_agents.py            # Agent verification script

Adding a new tool

  1. Add tool definition to src/registry.rs in the appropriate category
  2. Implement execution logic in the category-specific execution method
  3. Run tests: cargo test
  4. Regenerate catalog: cargo run --example generate_catalog > ../CATALOG.json
  5. Update README.md

Integration points

ConsumerMethod
Hanzo Node (Rust)Direct Rust crate dependency
Zoo Node (Rust)Direct Rust crate dependency
Hanzo Agent (Python)Python bindings via PyO3
MCP ServerTool definitions exported as MCP-compatible schemas
  • hanzo/hanzo-agent.md - Multi-agent SDK (Python, primary consumer)
  • hanzo/hanzo-mcp.md - Model Context Protocol tools
  • hanzo/hanzo-node.md - Hanzo Node (Rust, direct dependency)

How is this guide?

Last updated on

On this page