{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "brainless", "homepage": "https://brainless.swerdlow.dev", "items": [ { "name": "claude-header", "type": "registry:ui", "title": "Claude Header", "description": "Claude Code's welcome box \u2014 logo, tips, and model/cwd lines \u2014 with the title as a semantic fieldset legend.", "files": [ { "path": "registry/brainless/claude/claude-header.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-header.tsx" } ] }, { "name": "claude-message", "type": "registry:ui", "title": "Claude Message", "description": "A conversation turn \u2014 Claude Code's \u276f chip for the user, plain text for the assistant.", "files": [ { "path": "registry/brainless/claude/claude-message.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-message.tsx" } ] }, { "name": "claude-thinking", "type": "registry:ui", "title": "Claude Thinking", "description": "The working line \u2014 pulsing sparkle, rotating verb, elapsed/interrupt hint \u2014 as an aria-live status region.", "files": [ { "path": "registry/brainless/claude/claude-thinking.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-thinking.tsx" } ] }, { "name": "claude-tool-call", "type": "registry:ui", "title": "Claude Tool Call", "description": "The \u23fa / \u23bf tool line as a real, keyboard-operable <details> disclosure.", "files": [ { "path": "registry/brainless/claude/claude-tool-call.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-tool-call.tsx" } ] }, { "name": "claude-todo-list", "type": "registry:ui", "title": "Claude Todo List", "description": "The Update Todos block as a real list, with state labels and a struck-through done style.", "files": [ { "path": "registry/brainless/claude/claude-todo-list.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-todo-list.tsx" } ] }, { "name": "claude-diff", "type": "registry:ui", "title": "Claude Diff", "description": "An inline edit hunk with tinted +/- rows, line numbers, and off-screen added/removed labels.", "files": [ { "path": "registry/brainless/claude/claude-diff.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-diff.tsx" } ] }, { "name": "claude-permission", "type": "registry:ui", "title": "Claude Permission", "description": "The 'Do you want to proceed?' approval prompt as an arrow-key radiogroup.", "files": [ { "path": "registry/brainless/claude/claude-permission.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-permission.tsx" } ] }, { "name": "claude-prompt", "type": "registry:ui", "title": "Claude Prompt", "description": "The input composer \u2014 dual CSS rules around a real text input, effort chips (low \u25cb / medium \u25d0 / high \u25cf / xhigh \u25c9 / max \u25c8 / ultracode \u2726), and shift+tab modes (auto / manual / accept-edits / plan).", "files": [ { "path": "registry/brainless/claude/claude-prompt.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-prompt.tsx" } ] }, { "name": "claude-slash-menu", "type": "registry:ui", "title": "Claude Slash Menu", "description": "Slash-command palette above the real ClaudePrompt composer \u2014 type after / to filter, arrow keys to move.", "registryDependencies": [ "https://brainless.swerdlow.dev/r/claude-prompt.json" ], "files": [ { "path": "registry/brainless/claude/claude-slash-menu.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-slash-menu.tsx" } ] }, { "name": "codex-header", "type": "registry:ui", "title": "Codex Header", "description": "Codex CLI's monochrome launch card with its model / directory rows.", "files": [ { "path": "registry/brainless/codex/codex-header.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-header.tsx" } ] }, { "name": "codex-message", "type": "registry:ui", "title": "Codex Message", "description": "A Codex conversation turn \u2014 bold \u203a user marker or plain assistant text.", "files": [ { "path": "registry/brainless/codex/codex-message.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-message.tsx" } ] }, { "name": "codex-exec", "type": "registry:ui", "title": "Codex Exec", "description": "A Codex action/exec line with a status dot and expandable output, as a real <details> disclosure.", "files": [ { "path": "registry/brainless/codex/codex-exec.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-exec.tsx" } ] }, { "name": "codex-working", "type": "registry:ui", "title": "Codex Working", "description": "Codex's Working line \u2014 a \u2022 bullet, grayscale shimmer on Working, and live elapsed/interrupt hint, as an aria-live status region.", "files": [ { "path": "registry/brainless/codex/codex-working.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-working.tsx" } ] }, { "name": "codex-prompt", "type": "registry:ui", "title": "Codex Prompt", "description": "Codex's \u203a text input with warm model / green cwd status line and Plan mode tag (#bb9af7).", "files": [ { "path": "registry/brainless/codex/codex-prompt.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-prompt.tsx" } ] }, { "name": "codex-diff", "type": "registry:ui", "title": "Codex Diff", "description": "Codex's full-screen /diff pager \u2014 spaced DIFF title bar, unified git hunks, ~ fillers, and quit footer.", "files": [ { "path": "registry/brainless/codex/codex-diff.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-diff.tsx" } ] }, { "name": "codex-permissions", "type": "registry:ui", "title": "Codex Permissions", "description": "The /permissions chooser \u2014 numbered Default / Auto-review / Full Access options as a real radiogroup.", "files": [ { "path": "registry/brainless/codex/codex-permissions.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-permissions.tsx" } ] }, { "name": "codex-slash-menu", "type": "registry:ui", "title": "Codex Slash Menu", "description": "Slash-command palette under the real CodexPrompt composer \u2014 type after / to filter, arrow keys to move.", "registryDependencies": [ "https://brainless.swerdlow.dev/r/codex-prompt.json" ], "files": [ { "path": "registry/brainless/codex/codex-slash-menu.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-slash-menu.tsx" } ] }, { "name": "grok-header", "type": "registry:ui", "title": "Grok Header", "description": "Grok CLI's launch card \u2014 the braille mark drawn as a crisp dot-matrix SVG with its resting grayscale-shimmer sweep (reduced-motion aware), build banner, and a start menu of real buttons.", "files": [ { "path": "registry/brainless/grok/grok-header.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-header.tsx" } ] }, { "name": "grok-status", "type": "registry:ui", "title": "Grok Status", "description": "Top status bar \u2014 branch glyph, cwd, context usage (16K / 500K), and optional turn progress (2/3 \u2713).", "files": [ { "path": "registry/brainless/grok/grok-status.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-status.tsx" } ] }, { "name": "grok-message", "type": "registry:ui", "title": "Grok Message", "description": "A Grok conversation turn \u2014 the \u276f user marker or plain assistant text, with optional wall-clock timestamp.", "files": [ { "path": "registry/brainless/grok/grok-message.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-message.tsx" } ] }, { "name": "grok-event", "type": "registry:ui", "title": "Grok Event", "description": "A \u25c6 diamond event line \u2014 Thought, user_prompt_submit, stop \u2014 with optional [hooks: N/M] badge.", "files": [ { "path": "registry/brainless/grok/grok-event.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-event.tsx" } ] }, { "name": "grok-thought", "type": "registry:ui", "title": "Grok Thought", "description": "Completed or streaming thought \u2014 \u25c6 Thought for 0.2s, or a bordered Thinking\u2026 body.", "files": [ { "path": "registry/brainless/grok/grok-thought.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-thought.tsx" } ] }, { "name": "grok-thinking", "type": "registry:ui", "title": "Grok Thinking", "description": "Grok's idle working line \u2014 a braille spinner and rotating verb in amber, as an aria-live status region.", "files": [ { "path": "registry/brainless/grok/grok-thinking.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-thinking.tsx" } ] }, { "name": "grok-working", "type": "registry:ui", "title": "Grok Working", "description": "In-turn status line \u2014 Waiting for response\u2026 with elapsed, \u21e3token count, and [stop].", "files": [ { "path": "registry/brainless/grok/grok-working.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-working.tsx" } ] }, { "name": "grok-tool", "type": "registry:ui", "title": "Grok Tool", "description": "A Grok action \u2014 compact verb+path, or a \u2503 \u25c6 card with [hooks: N].", "files": [ { "path": "registry/brainless/grok/grok-tool.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-tool.tsx" } ] }, { "name": "grok-write", "type": "registry:ui", "title": "Grok Write", "description": "Grok's inline write/edit chrome \u2014 line-numbered before/after inside a \u2503 gutter, with optional hook \u2713/\u2717 lines.", "files": [ { "path": "registry/brainless/grok/grok-write.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-write.tsx" } ] }, { "name": "grok-permission", "type": "registry:ui", "title": "Grok Permission", "description": "Grok's left-border approval card with (\u25cf)/(\u25cb) radios and a 1/3:select hint bar.", "files": [ { "path": "registry/brainless/grok/grok-permission.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-permission.tsx" } ] }, { "name": "grok-plan", "type": "registry:ui", "title": "Grok Plan", "description": "Grok's plan.md approval card \u2014 framed viewer, a/s/c/q actions, Waiting on plan approval, and plan-approval composer.", "registryDependencies": [ "https://brainless.swerdlow.dev/r/grok-prompt.json" ], "files": [ { "path": "registry/brainless/grok/grok-plan.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-plan.tsx" } ] }, { "name": "grok-project-picker", "type": "registry:ui", "title": "Grok Project Picker", "description": "Run Grok Build in a project directory? \u2014 left-border chooser with recent dirs and a free-text option.", "files": [ { "path": "registry/brainless/grok/grok-project-picker.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-project-picker.tsx" } ] }, { "name": "grok-shortcuts", "type": "registry:ui", "title": "Grok Shortcuts", "description": "Keyboard Shortcuts modal (Ctrl+x) \u2014 nested \u25c6/\u203a categories with key bindings.", "files": [ { "path": "registry/brainless/grok/grok-shortcuts.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-shortcuts.tsx" } ] }, { "name": "grok-settings", "type": "registry:ui", "title": "Grok Settings", "description": "Settings modal (F2) \u2014 Appearance / Mouse sections with \u25b8 rows, on/off values, and nested \u203a pickers.", "files": [ { "path": "registry/brainless/grok/grok-settings.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-settings.tsx" } ] }, { "name": "grok-turn-end", "type": "registry:ui", "title": "Grok Turn End", "description": "Post-turn footer \u2014 Turn completed in 8.0s.", "files": [ { "path": "registry/brainless/grok/grok-turn-end.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-turn-end.tsx" } ] }, { "name": "grok-slash-menu", "type": "registry:ui", "title": "Grok Slash Menu", "description": "Slash-command overlay above the real GrokPrompt composer \u2014 \u276f active row, type after / to filter.", "registryDependencies": [ "https://brainless.swerdlow.dev/r/grok-prompt.json" ], "files": [ { "path": "registry/brainless/grok/grok-slash-menu.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-slash-menu.tsx" } ] }, { "name": "grok-prompt", "type": "registry:ui", "title": "Grok Prompt", "description": "Grok's rounded CSS-border composer with a real text input and model \u00b7 mode legend (normal / plan / auto / always-approve / plan approval).", "files": [ { "path": "registry/brainless/grok/grok-prompt.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-prompt.tsx" } ] }, { "name": "claude-session", "type": "registry:block", "title": "Claude Session", "description": "A complete Claude Code screen: header, a full turn (plan, tool calls, diff, approval, working line) and the input composer.", "registryDependencies": [ "https://brainless.swerdlow.dev/r/claude-header.json", "https://brainless.swerdlow.dev/r/claude-message.json", "https://brainless.swerdlow.dev/r/claude-todo-list.json", "https://brainless.swerdlow.dev/r/claude-tool-call.json", "https://brainless.swerdlow.dev/r/claude-diff.json", "https://brainless.swerdlow.dev/r/claude-permission.json", "https://brainless.swerdlow.dev/r/claude-thinking.json", "https://brainless.swerdlow.dev/r/claude-prompt.json" ], "files": [ { "path": "registry/brainless/blocks/claude-session.tsx", "type": "registry:block", "target": "components/brainless/blocks/claude-session.tsx" } ] }, { "name": "codex-session", "type": "registry:block", "title": "Codex Session", "description": "A complete Codex CLI screen: header, a full turn (messages, exec lines, working) and the \u203a composer.", "registryDependencies": [ "https://brainless.swerdlow.dev/r/codex-header.json", "https://brainless.swerdlow.dev/r/codex-message.json", "https://brainless.swerdlow.dev/r/codex-exec.json", "https://brainless.swerdlow.dev/r/codex-working.json", "https://brainless.swerdlow.dev/r/codex-prompt.json" ], "files": [ { "path": "registry/brainless/blocks/codex-session.tsx", "type": "registry:block", "target": "components/brainless/blocks/codex-session.tsx" }Lines 1–500 of 589. Load more
{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "brainless", "homepage": "https://brainless.swerdlow.dev", "items": [ { "name": "claude-header", "type": "registry:ui", "title": "Claude Header", "description": "Claude Code's welcome box \u2014 logo, tips, and model/cwd lines \u2014 with the title as a semantic fieldset legend.", "files": [ { "path": "registry/brainless/claude/claude-header.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-header.tsx" } ] }, { "name": "claude-message", "type": "registry:ui", "title": "Claude Message", "description": "A conversation turn \u2014 Claude Code's \u276f chip for the user, plain text for the assistant.", "files": [ { "path": "registry/brainless/claude/claude-message.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-message.tsx" } ] }, { "name": "claude-thinking", "type": "registry:ui", "title": "Claude Thinking", "description": "The working line \u2014 pulsing sparkle, rotating verb, elapsed/interrupt hint \u2014 as an aria-live status region.", "files": [ { "path": "registry/brainless/claude/claude-thinking.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-thinking.tsx" } ] }, { "name": "claude-tool-call", "type": "registry:ui", "title": "Claude Tool Call", "description": "The \u23fa / \u23bf tool line as a real, keyboard-operable <details> disclosure.", "files": [ { "path": "registry/brainless/claude/claude-tool-call.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-tool-call.tsx" } ] }, { "name": "claude-todo-list", "type": "registry:ui", "title": "Claude Todo List", "description": "The Update Todos block as a real list, with state labels and a struck-through done style.", "files": [ { "path": "registry/brainless/claude/claude-todo-list.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-todo-list.tsx" } ] }, { "name": "claude-diff", "type": "registry:ui", "title": "Claude Diff", "description": "An inline edit hunk with tinted +/- rows, line numbers, and off-screen added/removed labels.", "files": [ { "path": "registry/brainless/claude/claude-diff.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-diff.tsx" } ] }, { "name": "claude-permission", "type": "registry:ui", "title": "Claude Permission", "description": "The 'Do you want to proceed?' approval prompt as an arrow-key radiogroup.", "files": [ { "path": "registry/brainless/claude/claude-permission.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-permission.tsx" } ] }, { "name": "claude-prompt", "type": "registry:ui", "title": "Claude Prompt", "description": "The input composer \u2014 dual CSS rules around a real text input, effort chips (low \u25cb / medium \u25d0 / high \u25cf / xhigh \u25c9 / max \u25c8 / ultracode \u2726), and shift+tab modes (auto / manual / accept-edits / plan).", "files": [ { "path": "registry/brainless/claude/claude-prompt.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-prompt.tsx" } ] }, { "name": "claude-slash-menu", "type": "registry:ui", "title": "Claude Slash Menu", "description": "Slash-command palette above the real ClaudePrompt composer \u2014 type after / to filter, arrow keys to move.", "registryDependencies": [ "https://brainless.swerdlow.dev/r/claude-prompt.json" ], "files": [ { "path": "registry/brainless/claude/claude-slash-menu.tsx", "type": "registry:ui", "target": "components/brainless/claude/claude-slash-menu.tsx" } ] }, { "name": "codex-header", "type": "registry:ui", "title": "Codex Header", "description": "Codex CLI's monochrome launch card with its model / directory rows.", "files": [ { "path": "registry/brainless/codex/codex-header.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-header.tsx" } ] }, { "name": "codex-message", "type": "registry:ui", "title": "Codex Message", "description": "A Codex conversation turn \u2014 bold \u203a user marker or plain assistant text.", "files": [ { "path": "registry/brainless/codex/codex-message.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-message.tsx" } ] }, { "name": "codex-exec", "type": "registry:ui", "title": "Codex Exec", "description": "A Codex action/exec line with a status dot and expandable output, as a real <details> disclosure.", "files": [ { "path": "registry/brainless/codex/codex-exec.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-exec.tsx" } ] }, { "name": "codex-working", "type": "registry:ui", "title": "Codex Working", "description": "Codex's Working line \u2014 a \u2022 bullet, grayscale shimmer on Working, and live elapsed/interrupt hint, as an aria-live status region.", "files": [ { "path": "registry/brainless/codex/codex-working.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-working.tsx" } ] }, { "name": "codex-prompt", "type": "registry:ui", "title": "Codex Prompt", "description": "Codex's \u203a text input with warm model / green cwd status line and Plan mode tag (#bb9af7).", "files": [ { "path": "registry/brainless/codex/codex-prompt.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-prompt.tsx" } ] }, { "name": "codex-diff", "type": "registry:ui", "title": "Codex Diff", "description": "Codex's full-screen /diff pager \u2014 spaced DIFF title bar, unified git hunks, ~ fillers, and quit footer.", "files": [ { "path": "registry/brainless/codex/codex-diff.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-diff.tsx" } ] }, { "name": "codex-permissions", "type": "registry:ui", "title": "Codex Permissions", "description": "The /permissions chooser \u2014 numbered Default / Auto-review / Full Access options as a real radiogroup.", "files": [ { "path": "registry/brainless/codex/codex-permissions.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-permissions.tsx" } ] }, { "name": "codex-slash-menu", "type": "registry:ui", "title": "Codex Slash Menu", "description": "Slash-command palette under the real CodexPrompt composer \u2014 type after / to filter, arrow keys to move.", "registryDependencies": [ "https://brainless.swerdlow.dev/r/codex-prompt.json" ], "files": [ { "path": "registry/brainless/codex/codex-slash-menu.tsx", "type": "registry:ui", "target": "components/brainless/codex/codex-slash-menu.tsx" } ] }, { "name": "grok-header", "type": "registry:ui", "title": "Grok Header", "description": "Grok CLI's launch card \u2014 the braille mark drawn as a crisp dot-matrix SVG with its resting grayscale-shimmer sweep (reduced-motion aware), build banner, and a start menu of real buttons.", "files": [ { "path": "registry/brainless/grok/grok-header.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-header.tsx" } ] }, { "name": "grok-status", "type": "registry:ui", "title": "Grok Status", "description": "Top status bar \u2014 branch glyph, cwd, context usage (16K / 500K), and optional turn progress (2/3 \u2713).", "files": [ { "path": "registry/brainless/grok/grok-status.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-status.tsx" } ] }, { "name": "grok-message", "type": "registry:ui", "title": "Grok Message", "description": "A Grok conversation turn \u2014 the \u276f user marker or plain assistant text, with optional wall-clock timestamp.", "files": [ { "path": "registry/brainless/grok/grok-message.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-message.tsx" } ] }, { "name": "grok-event", "type": "registry:ui", "title": "Grok Event", "description": "A \u25c6 diamond event line \u2014 Thought, user_prompt_submit, stop \u2014 with optional [hooks: N/M] badge.", "files": [ { "path": "registry/brainless/grok/grok-event.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-event.tsx" } ] }, { "name": "grok-thought", "type": "registry:ui", "title": "Grok Thought", "description": "Completed or streaming thought \u2014 \u25c6 Thought for 0.2s, or a bordered Thinking\u2026 body.", "files": [ { "path": "registry/brainless/grok/grok-thought.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-thought.tsx" } ] }, { "name": "grok-thinking", "type": "registry:ui", "title": "Grok Thinking", "description": "Grok's idle working line \u2014 a braille spinner and rotating verb in amber, as an aria-live status region.", "files": [ { "path": "registry/brainless/grok/grok-thinking.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-thinking.tsx" } ] }, { "name": "grok-working", "type": "registry:ui", "title": "Grok Working", "description": "In-turn status line \u2014 Waiting for response\u2026 with elapsed, \u21e3token count, and [stop].", "files": [ { "path": "registry/brainless/grok/grok-working.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-working.tsx" } ] }, { "name": "grok-tool", "type": "registry:ui", "title": "Grok Tool", "description": "A Grok action \u2014 compact verb+path, or a \u2503 \u25c6 card with [hooks: N].", "files": [ { "path": "registry/brainless/grok/grok-tool.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-tool.tsx" } ] }, { "name": "grok-write", "type": "registry:ui", "title": "Grok Write", "description": "Grok's inline write/edit chrome \u2014 line-numbered before/after inside a \u2503 gutter, with optional hook \u2713/\u2717 lines.", "files": [ { "path": "registry/brainless/grok/grok-write.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-write.tsx" } ] }, { "name": "grok-permission", "type": "registry:ui", "title": "Grok Permission", "description": "Grok's left-border approval card with (\u25cf)/(\u25cb) radios and a 1/3:select hint bar.", "files": [ { "path": "registry/brainless/grok/grok-permission.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-permission.tsx" } ] }, { "name": "grok-plan", "type": "registry:ui", "title": "Grok Plan", "description": "Grok's plan.md approval card \u2014 framed viewer, a/s/c/q actions, Waiting on plan approval, and plan-approval composer.", "registryDependencies": [ "https://brainless.swerdlow.dev/r/grok-prompt.json" ], "files": [ { "path": "registry/brainless/grok/grok-plan.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-plan.tsx" } ] }, { "name": "grok-project-picker", "type": "registry:ui", "title": "Grok Project Picker", "description": "Run Grok Build in a project directory? \u2014 left-border chooser with recent dirs and a free-text option.", "files": [ { "path": "registry/brainless/grok/grok-project-picker.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-project-picker.tsx" } ] }, { "name": "grok-shortcuts", "type": "registry:ui", "title": "Grok Shortcuts", "description": "Keyboard Shortcuts modal (Ctrl+x) \u2014 nested \u25c6/\u203a categories with key bindings.", "files": [ { "path": "registry/brainless/grok/grok-shortcuts.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-shortcuts.tsx" } ] }, { "name": "grok-settings", "type": "registry:ui", "title": "Grok Settings", "description": "Settings modal (F2) \u2014 Appearance / Mouse sections with \u25b8 rows, on/off values, and nested \u203a pickers.", "files": [ { "path": "registry/brainless/grok/grok-settings.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-settings.tsx" } ] }, { "name": "grok-turn-end", "type": "registry:ui", "title": "Grok Turn End", "description": "Post-turn footer \u2014 Turn completed in 8.0s.", "files": [ { "path": "registry/brainless/grok/grok-turn-end.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-turn-end.tsx" } ] }, { "name": "grok-slash-menu", "type": "registry:ui", "title": "Grok Slash Menu", "description": "Slash-command overlay above the real GrokPrompt composer \u2014 \u276f active row, type after / to filter.", "registryDependencies": [ "https://brainless.swerdlow.dev/r/grok-prompt.json" ], "files": [ { "path": "registry/brainless/grok/grok-slash-menu.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-slash-menu.tsx" } ] }, { "name": "grok-prompt", "type": "registry:ui", "title": "Grok Prompt", "description": "Grok's rounded CSS-border composer with a real text input and model \u00b7 mode legend (normal / plan / auto / always-approve / plan approval).", "files": [ { "path": "registry/brainless/grok/grok-prompt.tsx", "type": "registry:ui", "target": "components/brainless/grok/grok-prompt.tsx" } ] }, { "name": "claude-session", "type": "registry:block", "title": "Claude Session", "description": "A complete Claude Code screen: header, a full turn (plan, tool calls, diff, approval, working line) and the input composer.", "registryDependencies": [ "https://brainless.swerdlow.dev/r/claude-header.json", "https://brainless.swerdlow.dev/r/claude-message.json", "https://brainless.swerdlow.dev/r/claude-todo-list.json", "https://brainless.swerdlow.dev/r/claude-tool-call.json", "https://brainless.swerdlow.dev/r/claude-diff.json", "https://brainless.swerdlow.dev/r/claude-permission.json", "https://brainless.swerdlow.dev/r/claude-thinking.json", "https://brainless.swerdlow.dev/r/claude-prompt.json" ], "files": [ { "path": "registry/brainless/blocks/claude-session.tsx", "type": "registry:block", "target": "components/brainless/blocks/claude-session.tsx" } ] }, { "name": "codex-session", "type": "registry:block", "title": "Codex Session", "description": "A complete Codex CLI screen: header, a full turn (messages, exec lines, working) and the \u203a composer.", "registryDependencies": [ "https://brainless.swerdlow.dev/r/codex-header.json", "https://brainless.swerdlow.dev/r/codex-message.json", "https://brainless.swerdlow.dev/r/codex-exec.json", "https://brainless.swerdlow.dev/r/codex-working.json", "https://brainless.swerdlow.dev/r/codex-prompt.json" ], "files": [ { "path": "registry/brainless/blocks/codex-session.tsx", "type": "registry:block", "target": "components/brainless/blocks/codex-session.tsx" }