Hanzo
Services

Hanzo Bot

Skill-based AI assistant platform with 743+ skills, 35+ channel integrations, persona management, and a plugin SDK for extending capabilities.

Hanzo Bot

Hanzo Bot is a multi-channel AI assistant platform. It ships as a single gateway binary that connects to any messaging channel, routes conversations to specialized AI agents, and exposes 743+ installable skills and 594+ automation integrations out of the box.

Domain: hanzo.bot Console: app.hanzo.bot Skills Browser: skills.hanzo.bot Gateway API: api.hanzo.ai/v1/bot/* Package: @hanzo/bot on npm CLI Binary: hanzo-bot


Features

  • 743+ Skills -- Community-contributed skill packages covering code generation, data analysis, web scraping, DevOps, design, writing, research, and more.
  • 10 Team Presets -- Pre-configured AI personas (Vi, Dev, Des, Opera, Su, Mark, Fin, Art, Three, Fil) auto-provisioned per workspace.
  • 35+ Channel Adapters -- Telegram, Discord, Slack, iMessage, WhatsApp, Signal, Matrix, IRC, MS Teams, Nostr, Line, Google Chat, Feishu, Mattermost, Nextcloud Talk, Twitch, Zalo, and more.
  • 594+ Automation Integrations -- ActivePieces-based flow connectors for third-party services.
  • Plugin SDK -- @hanzo/bot-* scoped packages for extending bot capabilities with custom channels, tools, and skills.
  • Multi-Model Support -- Route conversations to any LLM provider via the Hanzo LLM Gateway (Claude, GPT, Qwen3, Gemini, Llama, and 100+ others).
  • MCP Tool Integration -- Connect Model Context Protocol tools directly to bot agents for rich tool use.
  • mDNS Service Discovery -- Local network discovery via bot-gw Bonjour/mDNS service type.
  • DID and Wallet Identity -- Each agent gets a W3C DID (did:hanzo:<id>) and an on-chain Safe wallet.
  • Embeddable Chat Widget -- Drop-in embed.js script for adding bot chat to any website.
  • Tiered Runtime -- From free shared gateway to dedicated EC2 Mac instances, scaling on demand.

Architecture

hanzo-bot (CLI)
+-- Gateway (WebSocket :18789, OpenAI-compatible HTTP)
|   +-- Auth (token / password / API key / Tailscale / local)
|   +-- 80+ RPC methods, event streaming
+-- Agent Runtime (10 team presets, DID + wallet, memory)
+-- Channel Adapters (35+ platforms, ChannelPlugin interface)
+-- Skills Engine (743+ packages)
+-- Extensions (35 built-in: messaging, memory, flow, voice)
+-- Config (~/.bot/bot.json)

Quick Start

Install

npm install -g @hanzo/bot

Run the Gateway

# Start with default config
hanzo-bot

# Start with explicit config
hanzo-bot --config ~/.bot/bot.json

# Gateway-only mode (skip channel adapters)
BOT_SKIP_CHANNELS=1 hanzo-bot

Connect via API

# List available skills
curl -H "Authorization: Bearer $BOT_API_KEY" \
  https://api.hanzo.ai/v1/bot/skills

# Send a message to an agent
curl -X POST -H "Authorization: Bearer $BOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message": "Hello", "agentId": "vi"}' \
  https://api.hanzo.ai/v1/bot/chat

WebSocket Connection

const ws = new WebSocket('ws://localhost:18789');
ws.onopen = () => {
  ws.send(JSON.stringify({ method: 'auth', params: { token: BOT_TOKEN } }));
  ws.send(JSON.stringify({ method: 'chat.send', params: { message: 'Hello!', agentId: 'vi' } }));
};
ws.onmessage = (e) => console.log(JSON.parse(e.data));

Skills

Skills are modular capability packages that extend what a bot can do. Each skill is a self-contained unit with instructions, tools, and optional dependencies.

Manage skills via gateway methods: skills.status, skills.bins, skills.install, skills.update.

Skill Categories

The 743+ skills span categories including:

  • Development -- Code generation, debugging, git workflows, CI/CD
  • Data -- Analysis, visualization, ETL pipelines, SQL queries
  • DevOps -- Infrastructure management, monitoring, deployment
  • Design -- UI mockups, asset generation, design system management
  • Writing -- Content creation, editing, translation, summarization
  • Research -- Web search, paper analysis, fact-checking
  • Productivity -- Calendar, email, task management, note-taking

Browse all skills at skills.hanzo.bot.


Personas (Team Presets)

Every workspace gets 10 AI team members auto-provisioned. Each persona has a unique identity, system prompt (soul), default model, and optional skill bindings.

IDNameRoleDescription
viViVisionary LeaderStrategic planning, product vision, team coordination
devDevSoftware EngineerCode, architecture, debugging, testing
desDesDesignerUI/UX design, design systems, user research
operaOperaOperations EngineerDevOps, infrastructure, CI/CD, monitoring
suSuSupportCustomer support, documentation, onboarding
markMarkMarketingContent strategy, campaigns, growth analytics
finFinFinancialBudgets, forecasting, pricing, unit economics
artArtArtistVisual art, branding, illustrations, icons
threeThree3D Artist3D modeling, spatial computing, interactive 3D
filFilFilm DirectorVideo production, animation, motion design

Identity System

Each persona receives:

  • W3C DID: did:hanzo:<agent-id> (e.g., did:hanzo:dev)
  • Safe Wallet: On-chain smart-contract wallet on Hanzo Network (chain 36963)
  • Soul Prompt: Detailed system instructions defining behavior and principles
  • Skills: Default skill bindings (e.g., Dev gets coding-agent and github)

Gateway Methods

MethodDescription
team.presets.listList all team presets
team.presets.getGet a specific preset by ID
team.provisionProvision a single agent from a preset
team.provision.allProvision all 10 team agents
agent.did.getGet agent DID
agent.did.createCreate agent DID
agent.wallet.getGet agent wallet
agent.wallet.createCreate agent wallet
agent.identity.fullGet full identity (profile + DID + wallet)

Plugin SDK

The Plugin SDK (@hanzo/bot/plugin-sdk) provides typed interfaces for building custom channel adapters, tools, and extensions.

Installation

npm install @hanzo/bot

Channel Plugin Interface

import type { ChannelPlugin } from '@hanzo/bot/plugin-sdk';

const myChannel: ChannelPlugin = {
  meta: { id: 'my-channel', name: 'My Channel', version: '1.0.0' },
  setup:     { /* ChannelSetupAdapter */     },
  auth:      { /* ChannelAuthAdapter */      },
  messaging: { /* ChannelMessagingAdapter */ },
  gateway:   { /* ChannelGatewayAdapter */   },
  streaming: { /* ChannelStreamingAdapter */ },
  gatewayMethods: ['my-channel.send', 'my-channel.status'],
};

Key SDK Types

TypePurpose
ChannelPluginTop-level plugin definition
ChannelMessagingAdapterSend and receive messages
ChannelAuthAdapterAuthentication flow
ChannelGatewayAdapterCustom gateway RPC methods
ChannelStreamingAdapterStreaming response support
ChannelThreadingAdapterThread/reply management
ChannelAgentToolAgent tool factory for channel-specific tools

Exports: @hanzo/bot/plugin-sdk (types), @hanzo/bot/plugin-sdk/account-id (utilities).


Automations and Integrations

594+ automation integrations powered by an ActivePieces-based flow engine connect the bot to third-party services: CRM (Salesforce, HubSpot), Development (GitHub, GitLab, Jira, Linear), Cloud (AWS, GCP, DO), Analytics (Mixpanel, Segment), Storage (S3, Google Drive), Social (Twitter/X, LinkedIn), and Databases (PostgreSQL, MongoDB, Redis, Supabase).

Built-in Extensions

35 built-in extensions ship with deep platform integrations:

Messaging: Discord, Slack, Telegram, WhatsApp, Signal, Matrix, iMessage (BlueBubbles), MS Teams, IRC, Nostr, Feishu/Lark, Google Chat, Mattermost, LINE, Twitch, Zalo, Nextcloud Talk, Tlon

Infrastructure: memory-core, memory-lancedb (vector recall), flow (workflow engine), talk-voice, device-pair, phone-control, diagnostics-otel, copilot-proxy


Configuration

Config Directory

~/.bot/
  bot.json          # Main configuration file

Environment Variables

VariableDescription
BOT_GATEWAY_TOKENToken for gateway authentication
BOT_GATEWAY_PASSWORDPassword for gateway authentication
BOT_API_KEYSComma-separated API keys
BOT_SKIP_CHANNELSSet to 1 for gateway-only mode
BOT_CLI_PATHOverride CLI binary path
ANTHROPIC_API_KEYAnthropic API key for Claude models
OPENAI_API_KEYOpenAI API key for GPT models

Auth Modes

All modes use timing-safe comparison: Token (BOT_GATEWAY_TOKEN), Password (BOT_GATEWAY_PASSWORD), API Key (BOT_API_KEYS, comma-separated), Tailscale (whois verification), Local Bypass (loopback skip).

Ports

PortService
18789Gateway API (WebSocket)
18790WebSocket bridge
8080Combined UI (chat + VNC desktop)

Embeddable Widget

<script src="https://hanzo.bot/embed.js"
  data-agent="vi" data-title="Hanzo Bot"
  data-token="your-api-key" data-url="wss://gateway.hanzo.bot"
  data-theme="dark" data-position="right">
</script>

Runtime Tiers

TierNameCostCompute
0Shared GatewayFreeMulti-tenant, chat-only
1Terminal Agent$5/moDedicated pod, terminal access
2Linux Desktop$25/moXvfb + noVNC + headless browser
3EC2 Linux$50/moDedicated instance, optional GPU
4EC2 Mac$99/momac2.metal, Xcode, Simulator
LocalDesktopFreeUser's own machine, registers with cloud

Tier switching is dynamic via bot.tier.upgrade(botId, tier). Idle detection auto-downgrades after a configurable timeout. State persists across switches via persistent volumes.


Gateway RPC Methods

The gateway exposes 80+ RPC methods over WebSocket. Key method groups:

GroupMethodsPurpose
Chatchat.send, chat.history, chat.abortConversation management
Agentsagents.list, agents.create, agents.update, agents.deleteAgent CRUD
Skillsskills.status, skills.install, skills.update, skills.binsSkill management
Teamteam.presets.list, team.provision, team.provision.allPersona provisioning
Identityagent.did.*, agent.wallet.*, agent.identity.fullDID and wallet
Sessionssessions.list, sessions.patch, sessions.resetSession lifecycle
Configconfig.get, config.set, config.apply, config.patchRuntime configuration
Croncron.list, cron.add, cron.run, cron.removeScheduled tasks
Nodesnode.list, node.invoke, node.pair.*, device.pair.*Node and device pairing
Systemhealth, status, models.list, logs.tailMonitoring

Gateway events: agent, chat, presence, tick, cron, node.pair.requested, exec.approval.requested.


How is this guide?

Last updated on

On this page