# Array UI (array-ui) > One design system for personal sites, developer SaaS, and HTML explainer docs. Zero custom CSS, machined telemetry, and an agent-first component architecture. Complete shadcn CLI distribution, React components, and native Astro primitives hosted at https://ui.arpitbhayani.me. Array UI is built for engineers and autonomous AI coding assistants (Cursor, Claude Code, Windsurf, Codex, Antigravity) who need machine-readable specifications, copy-paste prompts, and instant component installations. Agent skills: `npx skills add https://ui.arpitbhayani.me` installs `array-ui` and `array-ui-review` into Claude Code, Cursor, Windsurf, Codex, and other agents. ## Autonomous Integration Guide for AI Agents When asked to build, modify, or enhance interfaces using Array UI: ### 1. Integration Mode Decision Matrix - **If the project uses Next.js / Vite / React with Tailwind**: Use **Mode A (shadcn CLI Registry)**. No package installation required. 1. Ensure `components.json` has the `@aui` registry: ```json { "$schema": "https://ui.shadcn.com/schema.json", "style": "default", "registries": { "@aui": "https://ui.arpitbhayani.me/r/{name}.json" } } ``` 2. Install design tokens & base font layer: `npx shadcn@latest add @aui/aui -y` 3. Autonomously install needed components: `npx shadcn@latest add @aui/page-shell @aui/navbar @aui/footer @aui/button @aui/card @aui/terminal @aui/ping-status @aui/tooltip -y` 4. Import directly: `import { PageShell } from "@/components/ui/page-shell";` - **If the project uses Astro or direct npm package**: Use **Mode B (Direct Package Dependency)**. 1. Install package: `npm install array-ui` (or `pnpm add array-ui` / `bun add array-ui`) 2. Setup styles in root layout: `import "array-ui/styles.css";` 3. Import components: - React / Next.js: `import { PageShell, Button, Terminal, DiffBlock, PingStatus, Card } from "array-ui/nextjs";` - Astro: `import Terminal from "array-ui/astro/Terminal.astro";` ### 2. Strict Invariants (0% Custom CSS & Aesthetic Rules) - **Zero Custom CSS Invariant**: NEVER write custom `.css` files and NEVER write `