Files
zeekay 0910c3cc68 agents: a start page for AI agents, and the site describes itself to them
/agents is where an agent lands: get a key (device flow or HTTP sign-up),
the free tier as /v1/billing/plans states it, a first call, the MCP server
for Claude Code, Codex, Cursor and Zed, Kai and its harness, a campaign
draft, and how an owner pays and bounds spend. The Agents SDK page moves
to /agents/sdk.

The prompt an agent pastes is lib/agents.ts, drawn on /agents and written
into llms.txt, which now keeps every hand-written section. robots.txt names
the AI crawlers; JSON-LD carries the positioning, 2014, the founders as
/about names them, and drops a SearchAction /search never answered;
/.well-known/api-catalog points at the OpenAPI document. /about gains a
track-record band, each line beside its source.

Claude-Session: https://claude.ai/code/session_017vrVus6PPBgP5YRzKV1iqW
2026-10-26 11:45:15 -07:00

39 lines
2.0 KiB
TypeScript

import type { Metadata } from 'next'
import { ogImages, getOgImageUrl, getTwitterImages } from '@/lib/constants/og'
import { goImport } from '@/lib/go-modules'
// NO PRICES HERE. This description outlived two repricings still advertising
// Pro $20, Plus $100 and Max $200 — a ladder with a tier we retired — because
// metadata is the one copy nobody re-reads and it cannot read the catalog: it
// is static export, resolved at build with no place to await a fetch. The cards
// state the numbers, live. This states the shape, which does not move.
// This path is a product page AND the import path of a Go module. The tag is
// invisible to a reader and is the whole of what the go tool reads; it joins
// this page's metadata rather than replacing it. Defined once in lib/go-modules.
const IMAGE_URL = getOgImageUrl('/pricing')
export const metadata: Metadata = {
other: goImport('pricing'),
title: 'Pricing — start free, every model on one bill — Hanzo AI',
description: 'Start free with no card. Pro, Max and Team cover every model, Kai and Hanzo Dev on one bill, with a budget on every key. Pay by card, Apple Pay or Google Pay, or fund usage in USDC.',
openGraph: {
title: 'Pricing — start free, every model on one bill — Hanzo AI',
description: 'Start free with no card. Pro, Max and Team cover every model, Kai and Hanzo Dev on one bill, with a budget on every key. Pay by card, Apple Pay or Google Pay, or fund usage in USDC.',
url: 'https://hanzo.ai/pricing',
siteName: 'Hanzo AI',
type: 'website',
images: ogImages('Hanzo AI Pricing', IMAGE_URL),
},
twitter: {
card: 'summary_large_image',
title: 'Pricing — start free, every model on one bill — Hanzo AI',
description: 'Start free with no card. Pro, Max and Team cover every model, Kai and Hanzo Dev on one bill, with a budget on every key. Pay by card, Apple Pay or Google Pay, or fund usage in USDC.',
images: getTwitterImages(IMAGE_URL),
},
}
export default function Layout({ children }: { children: React.ReactNode }) {
return <>{children}</>
}