Hanzo
Hanzo Skills Reference

Hanzo Store

Hanzo Store is a flatfile-based marketplace for discovering and installing AI agent tools and MCP servers. Built with Next.js 15 and static site generation, it serves as the app store for Hanzo Des...

Overview

Hanzo Store is a flatfile-based marketplace for discovering and installing AI agent tools and MCP servers. Built with Next.js 15 and static site generation, it serves as the app store for Hanzo Desktop. Each app is a JSON file in data/apps/, and new submissions happen via Pull Requests. Includes Web3 wallet integration via RainbowKit/wagmi for token-gated features.

What it actually is

  • Static Next.js 15 site with client-side filtering
  • Flatfile database: one JSON per app in data/agents/ and data/tools/
  • Git-based submission workflow (fork, add JSON, PR)
  • Build script generates public/store.json from flatfiles
  • Web3 integration: RainbowKit, wagmi v2, viem v2, WalletConnect
  • Playwright E2E tests
  • Uses @hanzo/ui and @hanzo/logo component libraries
  • Deployed at store.hanzo.ai

What it is NOT

  • Not a backend service or API -- it is a static site
  • Not handling payments or token transfers -- Web3 is for wallet identity only
  • Not a package registry -- apps link to external repos/install commands

When to use

  • Adding a new AI agent or MCP server to the Hanzo ecosystem marketplace
  • Browsing available tools for Hanzo Desktop
  • Building a custom store frontend that consumes store.json

Quick reference

ItemValue
Repogithub.com/hanzoai/store
Packagehanzo-store (private)
Version0.1.0
Branchmain
StackNext.js 15, React 19, TypeScript, Tailwind CSS
Web3wagmi v2, viem v2, RainbowKit
Dev Port3200
Livestore.hanzo.ai
LicenseMIT
TestsPlaywright E2E

Quickstart

git clone https://github.com/hanzoai/store.git
cd store
npm install

# Configure
cp .env.example .env
# Set NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID

# Generate store data from flatfiles
npm run generate-store

# Development
npm run dev    # http://localhost:3200

# Production build (static export to out/)
npm run build

Architecture

store.hanzo.ai
      |
  Next.js SSG
      |
  store.json (generated)
      |
  data/agents/*.json + data/tools/*.json

Hanzo Desktop fetches https://store.hanzo.ai/store.json for the catalog.

Directory structure

hanzoai/store/
  package.json           # hanzo-store v0.1.0
  next.config.js         # Static export, ignores TS/ESLint errors
  app/
    layout.tsx           # Root layout
    page.tsx             # Main store page
    apps/[id]/
      page.tsx           # Server component (app detail)
      page-client.tsx    # Client component (app detail)
    providers.tsx        # QueryClient + Web3 providers
  data/
    agents/              # AI agents (one JSON per agent)
    tools/               # Automation tools (one JSON per tool)
  scripts/
    generate-store.js    # Reads data/ and writes public/store.json
  lib/
    wagmi.ts             # Web3 config (WalletConnect, chain definitions)
  types/
    index.ts             # App/store TypeScript types
    hanzo-ui.d.ts        # @hanzo/ui type shim
  components/            # React UI components
  public/
    store.json           # Generated catalog (gitignored)
  e2e/
    store.spec.ts        # Playwright E2E tests
  playwright.config.ts

Adding an app

Create a JSON file in data/agents/ or data/tools/:

{
  "id": "my-server",
  "name": "My Server",
  "description": "What it does",
  "version": "1.0.0",
  "author": "Your Name",
  "category": "Development Tools",
  "tags": ["mcp", "tools"],
  "installCommand": "npx -y @you/my-server",
  "mcpConfig": {
    "command": "npx",
    "args": ["-y", "@you/my-server"]
  },
  "createdAt": "2026-01-01T00:00:00Z",
  "updatedAt": "2026-01-01T00:00:00Z"
}

Categories: Development Tools, Productivity, Data & Analytics, Communication, File Management, AI & Machine Learning, Security, Utilities, Entertainment, Other.

Environment variables

VariablePurpose
NEXT_PUBLIC_WALLETCONNECT_PROJECT_IDWalletConnect project ID (required for Web3)

Known issues (from LLM.md)

  • next.config.js ignores TS and ESLint errors during build
  • Console.error calls in production code (page.tsx, page-client.tsx)
  • No React Error Boundaries on main pages
  • WalletConnect project ID falls back to hardcoded 'demo'
  • @hanzo/ui has no exported types (shimmed in types/hanzo-ui.d.ts)
  • hanzo/hanzo-desktop.md -- Desktop app that consumes the store
  • hanzo/hanzo-mcp.md -- MCP servers listed in the store
  • hanzo/hanzo-extension.md -- Browser/IDE extensions

How is this guide?

Last updated on

On this page