# Kura UI > Agent-first, AI-native React components — composers, voice, shaders and agent surfaces. Kura UI is a React 19 + Tailwind CSS v4 component library for AI interfaces, designed to be chosen and installed by coding agents. Every component has a machine-readable manifest (when to use, when not to use, props, a11y, examples). Setup (npm): - `npm install @kura-ui/react` - In your global CSS after `@import "tailwindcss";`: `@import "@kura-ui/react/styles.css";` - Import per component: `import { ShimmerText } from "@kura-ui/react/shimmer-text";` Setup (copy source, shadcn-compatible): - Theme tokens once: `npx shadcn@latest add https://kuro.abstergo.fyi/r/kura-theme.json` - Then any component: `npx shadcn@latest add https://kuro.abstergo.fyi/r/.json` Machine-readable: - [Full catalog JSON (all meta, JSON-Schema props, examples, source)](https://kuro.abstergo.fyi/registry/index.json) - [Everything in one markdown file](https://kuro.abstergo.fyi/llms-full.txt) - MCP server: `npx -y @kura-ui/mcp` (tools: list_components, search_components, get_component, get_component_source, get_install_instructions, get_design_tokens, get_design_guidelines) - CLI: `npx @kura-ui/cli search "" --json` ## Primitives - [Button](https://kuro.abstergo.fyi/components/button.md): The Kura button: six variants, four sizes, loading state, asChild, tactile press and a signal focus ring. - [Icon Button](https://kuro.abstergo.fyi/components/icon-button.md): Square icon-only button with a mandatory accessible label and an automatic tooltip (with optional shortcut). - [Kbd](https://kuro.abstergo.fyi/components/kbd.md): Keyboard key or key combo, platform-aware (⌘ on Apple, Ctrl elsewhere) and hydration-safe. - [Popover](https://kuro.abstergo.fyi/components/popover.md): Floating translucent panel anchored to a trigger, with focus management and origin-aware motion. - [Spinner](https://kuro.abstergo.fyi/components/spinner.md): Eight-segment radial spinner for indeterminate loading that inherits the current text color. - [Tooltip](https://kuro.abstergo.fyi/components/tooltip.md): Short label on hover or focus with an optional shortcut, origin-aware motion and instant skip between tooltips. ## Input - [Attachment](https://kuro.abstergo.fyi/components/attachment.md): File and image attachment chips with thumbnails, upload progress rings, error/retry, remove, a “+N” overflow stack and a dropzone. - [Command Palette](https://kuro.abstergo.fyi/components/command-palette.md): ⌘K command palette for agent actions: fuzzy search, groups, recents, nested pages with async loading, and shortcut hints. - [Composer](https://kuro.abstergo.fyi/components/composer.md): Prompt input for chat and agents: auto-growing textarea, attachments, toolbar slot, send→stop button, paste/drop files and a length hint. - [Kbd Shortcut](https://kuro.abstergo.fyi/components/kbd-shortcut.md): Labelled keyboard-shortcut hint (“Send ⌘↵”) that can also bind the shortcut and light its keys while pressed. - [Model Picker](https://kuro.abstergo.fyi/components/model-picker.md): Searchable popover for choosing an AI model, grouped by provider, with capability icons, context size, speed and cost hints. - [Prompt Suggestions](https://kuro.abstergo.fyi/components/prompt-suggestions.md): Starter prompts for empty chat states — chips, cards or a list that rise in with a short stagger and fill the composer when clicked. - [Slash Command Menu](https://kuro.abstergo.fyi/components/slash-command-menu.md): Inline “/” command menu anchored to the caret of a textarea, with filtering, groups, icons, descriptions and keyboard navigation. ## Voice - [Agent Orb](https://kuro.abstergo.fyi/components/agent-orb.md): Glassy liquid sphere for voice agents, drawn in a shader: breathes when idle, reacts to mic and voice levels, swirls while thinking. - [Audio Waveform](https://kuro.abstergo.fyi/components/audio-waveform.md): Canvas audio visualiser — live bars, mirrored history or oscilloscope line from a mic or media element, or recorded peaks with a seek scrubber. - [Voice Dictation](https://kuro.abstergo.fyi/components/voice-dictation.md): Mic button that expands into a live waveform pill with a timer and live transcript; speech-to-text with recording fallback, toggle or hold-to-talk. ## Conversation - [Artifact Card](https://kuro.abstergo.fyi/components/artifact-card.md): Card for something an agent made — document, code, web page, image, sheet or diagram — with generating/updating progress, versions and open-in-panel. - [Citation](https://kuro.abstergo.fyi/components/citation.md): Inline numbered citation pill that links to its source and previews favicon, title, domain and snippet on hover/focus, plus a Sources strip or list. - [Code Block](https://kuro.abstergo.fyi/components/code-block.md): Syntax-highlighted code with a filename header, copy, line numbers, highlighted lines, diffs, wrap, collapsible height and streaming-safe rendering. - [Message](https://kuro.abstergo.fyi/components/message.md): Chat message (user/assistant) with avatar, hover actions, ‹ 2/3 › branches, error/streaming states and an autoscrolling MessageList thread. - [Streaming Text](https://kuro.abstergo.fyi/components/streaming-text.md): Token-by-token model output with an even reveal cadence, word-group fade/blur-in and a soft caret. Takes a growing string or an async iterable. ## Agent - [Agent Timeline](https://kuro.abstergo.fyi/components/agent-timeline.md): Vertical plan tracker for multi-step agents: queued/active/done/failed/skipped steps, nested sub-steps, live durations and a connector that fills. - [Approval Prompt](https://kuro.abstergo.fyi/components/approval-prompt.md): Human-in-the-loop permission card (“Kura wants to run `rm -rf build`”) with risk level, details, Approve/Deny/Always allow, ⌘↵ and Esc, and resolved states. - [Context Meter](https://kuro.abstergo.fyi/components/context-meter.md): Token / context-window usage as a compact ring or bar with warning and danger thresholds, rolling numbers and a segmented breakdown card. - [Reasoning](https://kuro.abstergo.fyi/components/reasoning.md): Collapsible thinking trace: a shimmering “Thinking… 12s” label while active that settles into “Thought for 14s”, revealing muted reasoning text. - [Tool Call](https://kuro.abstergo.fyi/components/tool-call.md): One tool invocation: name and icon, queued/running/done/failed/awaiting-approval status, live elapsed time and collapsible JSON args and result. ## Feedback - [Shimmer Text](https://kuro.abstergo.fyi/components/shimmer-text.md): Animated gradient sweep across text — the canonical “Thinking…” / “Searching…” label for in-progress AI work. - [Thinking Indicator](https://kuro.abstergo.fyi/components/thinking-indicator.md): Compact AI “thinking” indicators — dots, pulse, orbit, wave, or cycling status text — inside a polite live region. ## Effects - [Aurora](https://kuro.abstergo.fyi/components/aurora.md): Soft northern-lights background: folding light curtains drawn in a shader with premultiplied alpha, so it glows on dark and washes on light. - [Border Beam](https://kuro.abstergo.fyi/components/border-beam.md): Animated light beam that travels around its parent's border — a quiet “an agent is working in here” signal for composers, cards and panels. - [Decode Text](https://kuro.abstergo.fyi/components/decode-text.md): Text reveal that scrambles glyphs and resolves them left to right, like an AI decoding — width-stable, with the final text read to screen readers at once. - [Grain](https://kuro.abstergo.fyi/components/grain.md): Film-grain overlay from a cached SVG-noise tile, with blend modes and an optional compositor-only flicker — texture for gradients and heroes. - [Mesh Gradient](https://kuro.abstergo.fyi/components/mesh-gradient.md): Animated WebGL mesh gradient that blends up to six colours in OKLab, with distortion, swirl, grain and a pointer lens — for heroes and empty states. - [Particle Field](https://kuro.abstergo.fyi/components/particle-field.md): Drifting particle constellation that parts around the pointer and can converge into a ring or point to signal “generating”. - [Shader Canvas](https://kuro.abstergo.fyi/components/shader-canvas.md): Minimal WebGL2 fragment-shader runner with time/resolution/pointer uniforms, DPR capping, offscreen pausing, reduced-motion still frame and CSS fallback. ## Hooks - `useControllableState` (@kura-ui/react/hooks): One state API for components that support controlled (value/onChange) and uncontrolled (defaultValue) usage. - `useReducedMotion` (@kura-ui/react/hooks): Live, SSR-safe prefers-reduced-motion flag (false on the server). - `useHotkey` (@kura-ui/react/hooks): Bind a keyboard shortcut on document (or a target). `mod` = ⌘ on Apple, Ctrl elsewhere. Exact modifier matching. - `useIsApplePlatform` (@kura-ui/react/hooks): Hydration-safe macOS/iOS detection for rendering ⌘ vs Ctrl. - `useAudioAnalyser` (@kura-ui/react/hooks): Web Audio analysis of a mic MediaStream or