Hanzo Desktop is a cross-platform desktop application for creating and managing AI agents without code.
Category: Hanzo Ecosystem Related Skills: hanzo/hanzo-node.md, hanzo/hanzo-mcp.md, hanzo/hanzo-ui.md
Hanzo Desktop is a cross-platform desktop application for creating and managing AI agents without code. Built with Tauri (Rust backend + React frontend) and managed as an NX monorepo, it provides a visual interface for multi-agent orchestration, MCP tool integration, and hybrid local/cloud AI inference.
The application embeds the Hanzo Node binary (from github.com/hanzoai/node) as a sidecar process, which provides the actual AI agent runtime, P2P networking, and inference capabilities.
Fork lineage: Originally based on dcSpark/shinkai-local-ai-agents (some shinkai-* lib names remain in the codebase).
Repo: github.com/hanzoai/desktop. Package: @hanzo/source v1.1.34. Desktop app: hanzo-desktop v1.1.28. Apache License.
| Item | Value | |------|-------| | Repo | github.com/hanzoai/desktop | | Package name | @hanzo/source v1.1.34 | | Desktop app | hanzo-desktop | | Framework | Tauri (Rust + React) | | Build system | NX + Vite | | Frontend | React 19, TypeScript, Tailwind CSS 4 | | State | Zustand (UI) + React Query (server) | | Testing | Vitest + React Testing Library | | Platforms | Windows 10+, macOS 10.15+, Linux (Ubuntu 20.04+) | | Node.js | >= 20 | | License | Apache-2.0 |
desktop/
├── package.json # @hanzo/source v1.1.34 (workspace root)
├── nx.json # NX workspace config
├── tsconfig.base.json
├── eslint.config.mjs
├── mise.toml # Runtime version manager
├── apps/
│ └── hanzo-desktop/ # Main Tauri desktop application
│ └── src-tauri/ # Rust backend + Tauri config
├── libs/
│ ├── hanzo-message-ts/ # Message protocols for Hanzo Node communication
│ ├── hanzo-node-state/ # React Query state management for node data
│ ├── hanzo-ui/ # Reusable React component library
│ ├── hanzo-artifacts/ # Styled UI primitives (Radix + Tailwind)
│ ├── hanzo-i18n/ # i18next internationalization (8 languages)
│ └── shinkai-node-state/ # Legacy state lib (upstream naming)
├── ci-scripts/ # Build, binary download, Ollama repo generation
├── scripts/ # Development utilities
├── tools/ # NX plugins and dev tools
├── patches/ # npm patch-package overrides
├── docs/ # Documentation
└── assets/ # App icons and images
| Layer | Technology | |-------|-----------| | Desktop shell | Tauri 2.x (Rust + WebView) | | Frontend | React 19, TypeScript, Vite | | Styling | Tailwind CSS 4, Radix UI, Shadcn/ui patterns | | State management | Zustand (UI state), React Query (server state) | | Build orchestration | NX 22.3 | | AI runtime | Hanzo Node (embedded Rust sidecar) | | Local inference | Ollama (embedded sidecar) | | Testing | Vitest, React Testing Library, Playwright | | i18n | i18next with AI-generated translations | | Forms | React Hook Form + Zod | | Charts | Recharts | | Markdown | Streamdown |
git clone https://github.com/hanzoai/desktop.git
cd desktop
nvm use
npm ci
The app embeds Hanzo Node and Ollama as sidecar binaries:
# macOS Apple Silicon
ARCH="aarch64-apple-darwin" \
HANZO_NODE_VERSION="v1.1.20" \
OLLAMA_VERSION="v0.12.3" \
npx ts-node ./ci-scripts/download-side-binaries.ts
# Linux
ARCH="x86_64-unknown-linux-gnu" \
HANZO_NODE_VERSION="v1.1.20" \
OLLAMA_VERSION="v0.12.3" \
npx ts-node ./ci-scripts/download-side-binaries.ts
# Windows
$ENV:ARCH="x86_64-pc-windows-msvc"
$ENV:HANZO_NODE_VERSION="v1.1.20"
$ENV:OLLAMA_VERSION="v0.12.3"
npx ts-node ./ci-scripts/download-side-binaries.ts
npx nx serve:tauri hanzo-desktop
npx nx build hanzo-desktop
# With increased memory for large builds
NODE_OPTIONS="--max_old_space_size=8192" npx nx build hanzo-desktop
npx nx test [project-name]
npx nx run-many --target=test
npx nx lint [project-name]
| Library | Purpose | |---------|---------| | hanzo-message-ts | TypeScript message protocols for communicating with Hanzo Node | | hanzo-node-state | React Query hooks for node data (models, agents, jobs) | | hanzo-ui | Reusable React components and design system | | hanzo-artifacts | Styled UI primitives built on Radix and Tailwind CSS | | hanzo-i18n | Internationalization utilities with AI-generated translations |
The desktop app uses these Tauri 2.x plugins (from package.json):
@tauri-apps/plugin-dialog - Native file/folder dialogs@tauri-apps/plugin-fs - File system access@tauri-apps/plugin-http - HTTP client@tauri-apps/plugin-log - Logging@tauri-apps/plugin-notification - System notifications@tauri-apps/plugin-opener - Open URLs/files@tauri-apps/plugin-os - OS information@tauri-apps/plugin-process - Process management@tauri-apps/plugin-shell - Shell command execution@tauri-apps/plugin-updater - Auto-updatehanzo/hanzo-node.md - The Rust AI node that powers the desktop app backendhanzo/hanzo-mcp.md - MCP protocol integrationhanzo/hanzo-ui.md - Component library (separate from the desktop-internal hanzo-ui lib)hanzo/python-sdk.md - Python SDK for programmatic accessLast Updated: 2026-03-13 Category: Hanzo Ecosystem Related: desktop, tauri, react, agents, ai, cross-platform Prerequisites: Node.js 20+, Rust toolchain, NX basics