open-index/open-npm huggingface dataset:
npm package: @hanzo/hanzo
Description: ![GitHub Banner](https://github.com/hanzoai/trace-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)
Author: Hanzo
Latest version: 0.0.3

![GitHub Banner](https://github.com/hanzoai/trace-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)

# Hanzo JS/TS

[![MIT License](https://img.shields.io/badge/License-MIT-red.svg?style=flat-square)](https://opensource.org/licenses/MIT) [![npm package](https://img.shields.io/npm/v/hanzo?style=flat-square)](https://www.npmjs.com/package/hanzo) [![GitHub Repo stars](https://img.shields.io/github/stars/hanzo/hanzo?style=flat-square&logo=GitHub&label=hanzo%2Fhanzo)](https://github.com/hanzoai/hanzo) [![Discord](https://img.shields.io/discord/1111061815649124414?style=flat-square&logo=Discord&logoColor=white&label=Discord&color=%23434EE4)](https://discord.gg/7NXusRtqYU) [![YC W23](https://img.shields.io/badge/Y%20Combinator-W23-orange?style=flat-square)](https://www.ycombinator.com/companies/hanzo)

This is the main JS/TS client for Hanzo.

## Documentation

- Docs: https://hanzo.ai/docs/sdk/typescript
- Reference: https://js.reference.hanzo.com/modules/hanzo.html

## Environments

**Supported**

- Node.js >=18
- Web
- Edge: Vercel, Cloudflare Workers, etc.

**Using Node.js <18?** Use [`hanzo-node`](https://www.npmjs.com/package/hanzo-node) instead as it does not use `fetch` and other Web APIs

## Installation

```bash
npm i hanzo
# or
yarn add hanzo
# or
pnpm i hanzo
```
npm package: @hanzo/hanzo-core
Description: ![GitHub Banner](https://github.com/hanzoai/trace-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)
Author: Hanzo
Latest version: 0.0.1

![GitHub Banner](https://github.com/hanzoai/trace-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)

# Hanzo Core

[![npm package](https://img.shields.io/npm/v/hanzo-core?style=flat-square)](https://www.npmjs.com/package/hanzo-core)

This is the core package for the Hanzo JS/TS client libraries. It is not meant to be used directly.

Reference: https://js.reference.hanzo.com/modules/hanzo_core.html

**Client Libraries**

| Package                                                                                    | NPM                                                                                                                                   | Environments          |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| [hanzo](https://github.com/hanzoai/trace-js/tree/main/hanzo)                     | [![npm package](https://img.shields.io/npm/v/hanzo?style=flat-square)](https://www.npmjs.com/package/hanzo)                     | Node >= 18, Web, Edge |
| [hanzo-node](https://github.com/hanzoai/trace-js/tree/main/hanzo-node)           | [![npm package](https://img.shields.io/npm/v/hanzo-node?style=flat-square)](https://www.npmjs.com/package/hanzo-node)           | Node < 18             |
| [hanzo-langchain](https://github.com/hanzoai/trace-js/tree/main/hanzo-langchain) | [![npm package](https://img.shields.io/npm/v/hanzo-langchain?style=flat-square)](https://www.npmjs.com/package/hanzo-langchain) | Node >= 20, Web, Edge |
npm package: @hanzo/hanzo-langchain
Description: ![GitHub Banner](https://github.com/hanzoai/trace-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)
Author: Hanzo
Latest version: 0.0.4

![GitHub Banner](https://github.com/hanzoai/trace-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)

# Hanzo JS/TS

[![MIT License](https://img.shields.io/badge/License-MIT-red.svg?style=flat-square)](https://opensource.org/licenses/MIT) [![npm package](https://img.shields.io/npm/v/hanzo-langchain?style=flat-square)](https://www.npmjs.com/package/hanzo) [![GitHub Repo stars](https://img.shields.io/github/stars/hanzo/hanzo?style=flat-square&logo=GitHub&label=hanzo%2Fhanzo)](https://github.com/hanzoai/hanzo) [![Discord](https://img.shields.io/discord/1111061815649124414?style=flat-square&logo=Discord&logoColor=white&label=Discord&color=%23434EE4)](https://discord.gg/7NXusRtqYU) [![YC W23](https://img.shields.io/badge/Y%20Combinator-W23-orange?style=flat-square)](https://www.ycombinator.com/companies/hanzo)

This is the JS/TS client for the Hanzo Langchain integration.

## Documentation

- Docs: https://hanzo.ai/docs/integrations/langchain
- Reference: https://js.reference.hanzo.com/modules/hanzo_langchain.html

## Environments

**Supported**

- Node.js >=20
- Web
- Edge: Vercel, Cloudflare Workers, etc.

## Installation

```bash
npm i hanzo-langchain
# or
yarn add hanzo-langchain
# or
pnpm i hanzo-langchain
```
npm package: @hanzo/hanzo-node
Description: ![GitHub Banner](https://github.com/hanzoai/trace-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)
Author: Hanzo
Latest version: 0.0.2

![GitHub Banner](https://github.com/hanzoai/trace-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)

# hanzo-node

[![MIT License](https://img.shields.io/badge/License-MIT-red.svg?style=flat-square)](https://opensource.org/licenses/MIT) [![npm package](https://img.shields.io/npm/v/hanzo-node?style=flat-square)](https://www.npmjs.com/package/hanzo-node) [![GitHub Repo stars](https://img.shields.io/github/stars/hanzo/hanzo?style=flat-square&logo=GitHub&label=hanzo%2Fhanzo)](https://github.com/hanzoai/hanzo) [![Discord](https://img.shields.io/discord/1111061815649124414?style=flat-square&logo=Discord&logoColor=white&label=Discord&color=%23434EE4)](https://discord.gg/7NXusRtqYU) [![YC W23](https://img.shields.io/badge/Y%20Combinator-W23-orange?style=flat-square)](https://www.ycombinator.com/companies/hanzo)

This is the Node.js client for Hanzo.

**Using Node.js >=18?** Consider using [`hanzo`](https://www.npmjs.com/package/hanzo) instead as it uses `fetch` and other Web APIs.

## Documentation

- Docs: https://hanzo.ai/docs/sdk/typescript
- Reference: https://js.reference.hanzo.com/modules/hanzo_node.html

## Installation

```bash
npm i hanzo-node
# or
yarn add hanzo-node
# or
pnpm i hanzo-node
```
npm package: @hanzo/hanzo-vercel
Description: ![GitHub Banner](https://github.com/hanzoai/trace-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)
Author: Hanzo
Latest version: 0.0.2

![GitHub Banner](https://github.com/hanzoai/trace-js/assets/2834609/d1613347-445f-4e91-9e84-428fda9c3659)

# (Beta) Hanzo Vercel AI SDK Integration JS/TS

[![MIT License](https://img.shields.io/badge/License-MIT-red.svg?style=flat-square)](https://opensource.org/licenses/MIT) [![npm package](https://img.shields.io/npm/v/hanzo-langchain?style=flat-square)](https://www.npmjs.com/package/hanzo) [![GitHub Repo stars](https://img.shields.io/github/stars/hanzo/hanzo?style=flat-square&logo=GitHub&label=hanzo%2Fhanzo)](https://github.com/hanzoai/hanzo) [![Discord](https://img.shields.io/discord/1111061815649124414?style=flat-square&logo=Discord&logoColor=white&label=Discord&color=%23434EE4)](https://discord.gg/7NXusRtqYU) [![YC W23](https://img.shields.io/badge/Y%20Combinator-W23-orange?style=flat-square)](https://www.ycombinator.com/companies/hanzo)

This is the JS/TS client for the Hanzo Vercel AI SDK integration. This integration is currently in beta and functionality and interfaces may change.

## Documentation

- Docs: https://hanzo.ai/docs/integrations/vercel
- Reference: https://js.reference.hanzo.com/modules/hanzo_vercel.html

## Environments

**Supported**

- Node.js >=20
- Edge: Vercel, Cloudflare Workers, etc.

## Installation

```bash
npm i hanzo-vercel
# or
yarn add hanzo-vercel
# or
pnpm i hanzo-vercel
```
npm package: @hanzo/insights-ai
Description: PostHog Node.js AI integrations
Author: PostHog
Latest version: 7.9.4

# Hanzo Insights AI

TypeScript SDK for LLM observability with Hanzo Insights.

[SEE FULL DOCS](https://posthog.com/docs/ai-engineering/observability)

## Installation

```bash
npm install @hanzo/insights-ai
```

## Direct Provider Usage

```typescript
import { OpenAI } from '@hanzo/insights-ai'
import { PostHog } from '@hanzo/insights-node'

const phClient = new PostHog('<YOUR_PROJECT_API_KEY>', { host: 'https://us.i.posthog.com' })

const client = new OpenAI({
  apiKey: '<YOUR_OPENAI_API_KEY>',
  posthog: phClient,
})

const completion = await client.chat.completions.create({
  model: 'gpt-3.5-turbo',
  messages: [{ role: 'user', content: 'Tell me a fun fact about hedgehogs' }],
  posthogDistinctId: 'user_123', // optional
  posthogTraceId: 'trace_123', // optional
  posthogProperties: { conversation_id: 'abc123', paid: true }, //optional
  posthogGroups: { company: 'company_id_in_your_db' }, // optional
  posthogPrivacyMode: false, // optional
})

console.log(completion.choices[0].message.content)

// YOU HAVE TO HAVE THIS OR THE CLIENT MAY NOT SEND EVENTS
await phClient.shutdown()
```

## OTEL + AI SDK (`experimental_telemetry`)

Use this when working with Vercel AI SDK telemetry. `@posthog/ai` exposes an OTEL `SpanProcessor` that maps spans to PostHog AI events and sends them through `posthog-node`.

```typescript
import { NodeSDK } from '@opentelemetry/sdk-node'
import { PostHog } from '@hanzo/insights-node'
import { generateText } from 'ai'
import { openai } from '@ai-sdk/openai'
import { PostHogSpanProcessor } from '@hanzo/insights-ai/otel'

const phClient = new PostHog('<YOUR_PROJECT_API_KEY>', { host: 'https://us.i.posthog.com' })

const sdk = new NodeSDK({
  spanProcessors: [
    new PostHogSpanProcessor(phClient),
  ],
})

sdk.start()

await generateText({
  model: openai('gpt-5.1'),
  prompt: 'Write a short haiku about debugging',
  experimental_telemetry: {
    isEnabled: true,
    functionId: 'my-awesome-function',
    metadata: {
      conversation_id: 'abc123',
      plan: 'pro',
    },
  },
})

await phClient.shutdown()
```

### Custom Mappers

The OTEL processor supports adapter mappers for different span formats:

- `aiSdkSpanMapper` is the default mapper.
- You can pass custom `mappers` in `PostHogSpanProcessor` options to support additional span schemas.

### Per-call Metadata (Recommended)

For dynamic properties, pass values in `experimental_telemetry.metadata` on each AI SDK call.
These are captured from `ai.telemetry.metadata.*` and forwarded as PostHog event properties.
Use processor options (`posthogProperties`) only for global defaults.

## Notes

- The OTEL route currently maps supported spans into PostHog AI events (manual capture path).
- Existing wrapper-based tracing (for example `withTracing`) still works and is unchanged.

LLM Observability [docs](https://posthog.com/docs/ai-engineering/observability)

Please see the main [PostHog docs](https://www.posthog.com/docs).

## Questions?

### [Check out our community page.](https://posthog.com/posts)
npm package: @hanzo/insights-convex
Description: Send analytics events to PostHog from your Convex backend.
Author: PostHog Inc.
Latest version: 0.1.5

<p align="center">
  <img alt="@hanzo/insights-convex" src="https://raw.githubusercontent.com/PostHog/posthog/master/frontend/public/hedgehog/heart-hog.png" width="200">
</p>

<h1 align="center">@hanzo/insights-convex</h1>

<p align="center">
  Hanzo Insights analytics and feature flags for your Convex backend.
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/@hanzo/insights-convex"><img src="https://badge.fury.io/js/@hanzo%2Finsights-convex.svg" alt="npm version"></a>
</p>

> [!WARNING]
> This package is in alpha and under active development. APIs may change between releases.

## What is this?

The official Hanzo Insights component for [Convex](https://convex.dev). Capture events, identify users, manage groups, and evaluate feature flags — all from your mutations and actions.

## Quick Start

Install the package:

```sh
pnpm add @hanzo/insights-convex
```

Register the component in your `convex/convex.config.ts`:

```ts
// convex/convex.config.ts
import { defineApp } from "convex/server";
import posthog from "@hanzo/insights-convex/convex.config.js";

const app = defineApp();
app.use(posthog);

export default app;
```

Set your Hanzo Insights API key and host:

```sh
npx convex env set POSTHOG_API_KEY phc_your_project_api_key
npx convex env set POSTHOG_HOST https://us.i.posthog.com
```

Create a `convex/posthog.ts` file to initialize the client:

```ts
// convex/posthog.ts
import { PostHog } from "@hanzo/insights-convex";
import { components } from "./_generated/api";

export const posthog = new PostHog(components.posthog);
```

You can also pass the API key and host explicitly:

```ts
export const posthog = new PostHog(components.posthog, {
  apiKey: "phc_...",
  host: "https://eu.i.posthog.com",
});
```

## Capturing Events

Import `posthog` from your setup file and call methods directly:

```ts
// convex/myFunctions.ts
import { posthog } from "./posthog";
import { mutation } from "./_generated/server";
import { v } from "convex/values";

export const createUser = mutation({
  args: { email: v.string() },
  handler: async (ctx, args) => {
    const userId = await ctx.db.insert("users", { email: args.email });

    await posthog.capture(ctx, {
      distinctId: userId,
      event: "user_created",
      properties: { email: args.email },
    });

    return userId;
  },
});
```

## Feature Flags

Feature flag methods evaluate flags by calling the Insights API and returning the result. They require an **action** context (they use `ctx.runAction` internally).

See the [example app](../../examples/example-convex/) for a working demo.

## License

MIT
npm package: @hanzo/insights-icons
Description: [![NPM](https://img.shields.io/npm/v/@posthog/icons.svg)](https://www.npmjs.com/package/@posthog/icons)
Author: PostHog
Latest version: 0.36.6

# @posthog/icons

[![NPM](https://img.shields.io/npm/v/@posthog/icons.svg)](https://www.npmjs.com/package/@posthog/icons)

→ [**Browse + search the icon library**](https://posthog-icons.vercel.app/)

Not sure an icon is right for your needs? Talk to Cory!

> Note: Don't share the link above as these icons are licensed from iconists.co/central

## Request another icons

1. [Browse the icon library](https://posthog-icons.vercel.app) to find what you need. Preface any icon name with `Icon`, ex: `<IconHeart />`.
1. React out to Cory if there is something you would like but can't find

## Icon details

- We use Central Icons Library and have an Enterprise license. (Since it's licenseed, we can't make the library public.)
- Icon specs: `1.5` stroke, `1.0` radius
- Icons are optimized with [SVGOMG](https://jakearchibald.github.io/svgomg/), then added to `Icons.tsx`, organized alphabetically

---

## Install

```bash
npm install --save @posthog/icons

# or

yarn add @posthog/icons
```

## Usage

```jsx
import { IconLogomark } from '@posthog/icons'

const Example = () => {
    return <IconLogomark className="size-4" />
}
```

## Development

`yarn dev`

## Publishing to NPM

1. Mark your PR with the appropriate label (e.g. `bump minor`)
2. When merged, it will trigger the bump, followed by publishing to npm
npm package: @hanzo/insights-nextjs
Description: NextJS configuration helper for Posthog 🦔
Author: PostHog
Latest version: 1.8.19

# PostHog Next.js Config

This package handles sourcemap configuration and upload for the PostHog Error Tracking product.

Please see the main [PostHog Error Tracking docs](https://posthog.com/docs/error-tracking).

## Usage

```typescript
// next.config.ts
import { withPostHogConfig } from '@posthog/nextjs-config'

const nextConfig = {
  // Your Next.js configuration here
}

export default withPostHogConfig(nextConfig, {
  personalApiKey: process.env.POSTHOG_PERSONAL_API_KEY!, // Personal API key used for sourcemap uploads, see https://app.posthog.com/settings/user-api-keys
  projectId: process.env.POSTHOG_PROJECT_ID!, // Project ID, see https://app.posthog.com/settings/project#variables
  host: process.env.NEXT_PUBLIC_POSTHOG_HOST!, // (optional) Host URL, defaults to https://us.posthog.com
  sourcemaps: {
    // (optional)
    enabled: true, // (optional) Enable sourcemaps generation and upload, default to true on production builds
    releaseName: 'my-application', // (optional) Release name, defaults to repository name
    releaseVersion: '1.0.0', // (optional) Release version, defaults to current git commit
    deleteAfterUpload: true, // (optional) Delete sourcemaps after upload, defaults to true
  },
})
```

## Questions?

### [Check out our community page.](https://posthog.com/posts)
npm package: @hanzo/insights-react-native
Description: Please see the main [PostHog docs](https://www.posthog.com/docs).
Latest version: 4.37.1

# PostHog React Native

Please see the main [PostHog docs](https://www.posthog.com/docs).

Specifically, the [React Native docs](https://posthog.com/docs/libraries/react-native) details.

## Questions??

### [Check out our community page.](https://posthog.com/posts)
npm package: @hanzo/insights-types
Description: Type definitions for the Hanzo Insights JavaScript SDK.
Latest version: 1.358.1

# @hanzo/types

Type definitions for the Insights JavaScript SDK.

## When to Use This Package

### ✅ You Need This Package If:

You're loading Insights via a **`<script>` tag** and want TypeScript types for `window.insights`.

```html
<!-- You load Insights like this -->
<script>
    !function(t,e){...}(document,window.insights||[]);
    insights.init('your-api-key', { api_host: 'https://us.i.insights.hanzo.ai' })
</script>
```

### ❌ You Don't Need This Package If:

You're installing any Insights library via npm/yarn/pnpm. The types are **already included**:

- `@hanzo/insights` - Browser SDK (includes all types)
- `@hanzo/insights-node` - Node.js SDK
- `@hanzo/insights-react-native` - React Native SDK
- `@hanzo/react` - React hooks and components

```typescript
// Types are already available when you install @hanzo/insights
import insights from '@hanzo/insights'

insights.init('your-api-key')
insights.capture('my_event') // ✅ Fully typed
```

## Installation

```bash
npm install @hanzo/types
# or
yarn add @hanzo/types
# or
pnpm add @hanzo/types
```

## Usage

### Typing `window.insights` (Script Tag Usage)

Create a type declaration file to type `window.insights`:

```typescript
// insights.d.ts
import type { Insights } from '@hanzo/types'

declare global {
    interface Window {
        insights?: Insights
    }
}

export {}
```

Now you can use `window.insights` with full type safety:

```typescript
// Your code
window.insights?.capture('button_clicked', { button_id: 'signup' })
window.insights?.identify('user-123', { email: 'user@example.com' })

const flagValue = window.insights?.getFeatureFlag('my-flag')
if (flagValue === 'variant-a') {
    // ...
}
```

### Typing Configuration Objects

```typescript
import type { InsightsConfig, Properties } from '@hanzo/types'

// Type your configuration
const config: Partial<InsightsConfig> = {
    api_host: 'https://us.i.insights.hanzo.ai',
    autocapture: true,
    capture_pageview: 'history_change',
}

// Type event properties
const eventProps: Properties = {
    button_id: 'signup',
    page: '/pricing',
}
```

## Version Synchronization

This package's version is synchronized with `@hanzo/insights`. They are always released together with matching version numbers.

## License

MIT
npm package: @hanzo/multiselect
Description: A component to select multiple items from a list of options using the [Material-UI Autocomplete component](https://material-ui.com/components/autocomplete/).
Author: Hanzo Inc
Latest version: 0.4.4

# MultiSelect [![npm latest release](https://badgen.net/npm/v/@hanzo/multiselect)](https://www.npmjs.com/@hanzo/multiselect) [![Minified size](https://badgen.net/bundlephobia/min/@hanzo/multiselect)](https://bundlephobia.com/result?p=@hanzo/multiselect)

A component to select multiple items from a list of options using the
[Material-UI Autocomplete component](https://material-ui.com/components/autocomplete/).

[![Storybook badge](https://raw.githubusercontent.com/storybookjs/brand/master/badge/badge-storybook.svg)](https://hanzoai.github.io/multiselect)

[**Full documentation with props**](https://hanzoai.github.io/multiselect?path=/docs/multiselect--multiple)

## Quick start

To use, you must provide at least the `value`, `onChange`, and `options` props.
You should also provide a `label` and `labelPlural` prop. By default, the
component is in multi-select mode and values are strings.

```tsx
<MultiSelect
  value={value} // From useState
  onChange={setValue} // From useState
  options={['The Shawshank Redemption', 'The Godfather', ...]}
  label="Movie"
  labelPlural="Movies"
/>
```

### `options` prop

The simplest value for the `options` prop is an array of strings.

If you need more control over the value returned by MultiSelect, pass an array
of `Option` objects, which must follow this type:

```ts
type Option<T = string> = {
  value: T;
  label: string;
  disabled?: boolean;
};
```

### `value` and `onChange` prop types depend on the `multiple` prop

`value` must be an array of `T` in multi-select mode.

In single-select mode, it must be either `T` itself or `null`.

The first parameter of `onChange` follows the same type as `value`.
npm package: @hanzo/persona
Description: Framework for loading, validating, and working with personality profiles
Author: Hanzo AI
Latest version: 1.0.1

# Persona

Framework for loading, validating, and working with personality profiles.

Provides loaders (Rust, TypeScript, Python), JSON schemas, and CLI tools
for the [Hanzo Personas](https://github.com/hanzoai/personas) dataset.

## Install

```bash
# Python
pip install hanzo-persona

# Node.js
npm install @hanzo/persona

# Rust
cargo add hanzo-persona
```

## Usage

```python
from persona import load, get

# Load all personas
personas = load()

# Get a specific persona
feynman = get("feynman")
print(feynman.traits.openness)  # 0.95
```

```typescript
import { PersonaLoader } from '@hanzo/persona'

const loader = new PersonaLoader()
const feynman = loader.get('feynman')
console.log(feynman.traits.openness) // 0.95
```

```rust
use hanzo_persona::PersonaLoader;

let loader = PersonaLoader::default();
let feynman = loader.get("feynman").unwrap();
println!("{}", feynman.traits.openness); // 0.95
```

## Schemas

- `schemas/personality.schema.json` — JSON Schema for profile validation
- `schemas/persona_schema.yaml` — YAML schema for PERSONA.md frontmatter

## Tools

- `scripts/validate.js` — validate profiles against schema
- `scripts/split-personalities.js` — split bulk data into individual files
- `tools/unix_tools.yaml` — tool preference definitions

## Data

Persona data (707 JSON profiles + 14 PERSONA.md files) lives in
[hanzoai/personas](https://github.com/hanzoai/personas).

## License

MIT
npm package: @hanzo/personas
Description: 712 personality profiles with Big Five traits, NEO PI-R facets, and PERSONA.md definitions
Author: Hanzo AI
Latest version: 1.0.1

# Hanzo Personas

712 personality profiles for AI agents, grounded in personality psychology.

## Install

```bash
npm install @hanzo/personas
```

## Usage

```javascript
import { list, get, getProfile, getPersonaMd } from '@hanzo/personas'

// List all 712 persona slugs
const slugs = list()

// Load a persona (profile.json + PERSONA.md)
const feynman = get('feynman')
console.log(feynman.profile.ocean)  // { openness: 95, ... }
console.log(feynman.persona)         // "---\nname: Feynman\n..."

// JSON profile only
const linus = getProfile('linus')

// PERSONA.md only
const md = getPersonaMd('north-star')
```

## Structure

Each persona lives in `personas/<slug>/`:

```
personas/
  ada/
    profile.json    # compact JSON (OCEAN 0-100, tools, philosophy)
    PERSONA.md      # rich prose (Big Five 0.0-1.0, 30 NEO PI-R facets, quirks)
  feynman/
    profile.json
    PERSONA.md
  linus/
    profile.json    # JSON-only personas (no PERSONA.md yet)
```

**712 total** — 14 have deep PERSONA.md files, all have JSON profiles.

### profile.json

```json
{
  "id": "feynman",
  "name": "Richard Feynman",
  "category": "pioneer",
  "ocean": { "openness": 95, "conscientiousness": 72, "extraversion": 80, "agreeableness": 50, "neuroticism": 30 },
  "philosophy": "If you can't explain it simply, you don't understand it",
  "tools": { "essential": ["read", "write", "think"], "domains": ["physics", "pedagogy"] }
}
```

### PERSONA.md

Rich persona with 30 NEO PI-R trait facets, HEXACO honesty-humility,
productive role mapping, cognitive style, working patterns, values, and
documented quirks sourced from primary materials.

See [personas/feynman/PERSONA.md](personas/feynman/PERSONA.md) for an example.

## Categories

| Category | Count | Examples |
|----------|-------|---------|
| Pioneers | 12 | Ada Lovelace, Grace Hopper, Alan Turing |
| Language creators | 20 | Guido van Rossum, Yukihiro Matsumoto |
| Systems | 15 | Linus Torvalds, Ken Thompson |
| AI/ML | 15 | Geoffrey Hinton, Yann LeCun |
| Web | 15 | Tim Berners-Lee, Brendan Eich |
| Security | 10 | Bruce Schneier, Phil Zimmermann |
| Thinkers | 300+ | Feynman, Tesla, Dijkstra, Jobs |
| Archetypes | 5 | North Star, Engineer, Analyst, Mentor, Creative |
| Real people | 1 | Zeekay |

## Framework

For loaders (Rust, TypeScript, Python), schemas, and validation tools see
[@hanzo/persona](https://github.com/hanzoai/persona).

## Research basis

- **Big Five** (Costa & McCrae, 1992) — OCEAN traits
- **NEO PI-R** (Costa & McCrae, 1992) — 30 facet subscales
- **HEXACO** (Ashton & Lee, 2007) — Honesty-Humility factor
- **Belbin team roles** (1981) — productive role mapping

## License

MIT