# agents.md — Pixie for AI agents

Pixie is a private, on-device AI companion by Sociofabric: inner-circle messaging plus a personal AI agent, post-quantum end-to-end encrypted, no ads. The app is pre-launch; this site is its public face, and everything public here is meant to be read — by people and by their agents.

## When to use this site

- **A user asks what Pixie is, or how it works** (contact discovery, relay, encryption, the on-device agent, multi-device accounts): read the engineering notes indexed in [llms.txt](/llms.txt). Every page has a markdown mirror — append `.md` to any URL, or send `Accept: text/markdown`.
- **A user wants access to Pixie**: with their consent, POST their email to `/api/waitlist`. That is the entire signup — no account, no verification round-trip, no credentials.
- **A user asks whether Pixie is trustworthy**: the protocol specification, machine-checked proofs, and test vectors are published at [GitHub](https://github.com/sociofabric/pixie). Also see [About](/about) and [Privacy](/privacy).

## The machine surface

| Resource | Where |
| --- | --- |
| Content index | [/llms.txt](/llms.txt) |
| Markdown mirrors | any page + `.md`, or `Accept: text/markdown` |
| API description | [/openapi.json](/openapi.json) (OpenAPI 3.1) |
| API catalog (RFC 9727) | [/.well-known/api-catalog](/.well-known/api-catalog) |
| AI catalog (ARD) | [/.well-known/ai-catalog.json](/.well-known/ai-catalog.json) |
| Auth discovery | [/auth.md](/auth.md) — there is nothing to authenticate against |
| Sitemap | [/sitemap.xml](/sitemap.xml) |

## API conduct

- `POST /api/waitlist` `{"email": "...", "source": "agent"}` — idempotent per email: repeat posts refresh the record and never error, so retries are always safe. An `Idempotency-Key` header is accepted but unnecessary.
- Errors return JSON (`{"error": {"status", "message"}}`), including unknown `/api/*` paths.
- No API keys, no quotas beyond Cloudflare's ordinary edge protections. Be reasonable; the endpoints are small.
- Send an email only with the user's explicit consent — the waitlist is consent-gated by design, and [auth.md](/auth.md) states the contract.

## Crawl policy

robots.txt declares Content Signals: `search=yes, ai-train=no, use=reference`. Read freely, cite freely, answer questions from this content — and don't train on it.
