A band above the prompt. Replace with what your mod actually does.

<!-- auto-generated; do not edit by hand -->
/plugin marketplace add tomada1114/tomada-claude-plugins
/plugin install tomada-kit@tomada-claude-plugins
Run /plugin to browse interactively.
| Skill | Description |
|---|---|
| auditing-prompt-docs | Audit and fix prompt-bearing documents — SKILL.md, CLAUDE.md, AGENTS.md, agent and command definitions… |
| authoring-goal-prompts | Author a self-contained prompt for Claude Code's /goal command, run unattended in a separate session — a… |
| bootstrapping-from-templates | Cut a new GitHub repository from one of the user's template repositories and bring it to a clean first… |
| building-chat-uis | Field notes for building LLM chat interfaces on the Vercel AI SDK (ai + @ai-sdk/react), whose API is… |
| building-function-hook-mods | Build a Claude Mod — a Claude Code plugin whose behaviour lives in a TypeScript hooks module, registered as… |
| codex-cli-config | Reference for OpenAI Codex CLI configuration, permissions, sandboxing, and autonomy — sandbox_mode and… |
| configuring-project-permissions | Set up a repository's personal, uncommitted agent permissions so development runs without prompts: Claude… |
| creating-agent-skills | Create or improve Agent Skills (the shared SKILL.md format read by Claude Code and OpenAI Codex CLI —… |
| designing-architecture | Turn signed-off requirements and UX drafts into a new app's stable design documents before any issue is… |
| designing-wireframes | Create ASCII wireframes for every screen and window, user flow diagrams, and per-screen states (empty… |
| dual-platform-skills | Convert one existing skill (Claude Code origin or Codex origin) into a layout that works on both Claude Code… |
| find-skills | Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for… |
| kicking-off-apps | Take a rough app idea ("I want an app that…") to a new public GitHub repository cut from one of the user's… |
| orchestrating-models | Decide which model and effort runs a piece of work, and whether to delegate it at all. |
| planning-tickets | Break requirements and design documents into GitHub Issues an implementing agent can ship without asking… |
| refero-design | Primary/default skill for UI design, product design, web design, landing pages, dashboards, product screens… |
| refining-prompts | Polish a rough instruction (often dictated by voice) into a precise prompt that can be handed straight to… |
| refining-requirements | Turn a vague app idea or an incomplete spec into a signed-off, implementation-ready requirements document… |
| syncing-agent-tiers | Push the canonical sub-agent tier definitions (executor, architect, scout, worker) into every listed… |
| transplanting-harnesses | Translate a reference repository's development harness — policy docs (AGENTS.md / CLAUDE.md), agent skills… |
| ui-ux-designing | Produces one app-wide UX guidelines document (docs/design/ux-guidelines.md or a caller-named path) fixing… |
| Command | Description |
|---|---|
| smart-commit | Analyze the working tree, group related changes, and create commits at a sensible granularity |
| Agent | Description |
|---|---|
| architect | Opus 5.5 high の難所担当。 |
| executor | Opus 5.5 low の実行役。 |
| scout | Haiku 5.5 high の調べ物役。 |
| worker | Sonnet 5.5 at medium effort, the tier for briefed text work. |
Tomada (@muscle_coding)
Practitioner and educator of AI-driven development.
| Platform | URL |
|---|---|
| X (Twitter) | https://x.com/muscle_coding |
| Zenn | https://zenn.dev/tmasuyama1114 |
| Qiita | https://qiita.com/tomada |
| YouTube | https://www.youtube.com/@vibe-coding-studio |
| Profile | https://www.vibecodingstudio.dev/founder |
MIT
hooks/register.tsx 36 lines1/* @jsx h */
2/* @jsxFrag Fragment */
3
4// Never name a local variable `h` in a file that uses JSX. `h` and `Fragment`
5// are ambient globals the engine injects; every JSX tag compiles to a call of
6// `h`, so a local `h` silently breaks every tag in the file.
7
8import type { On } from 'claude-code'
9
10export function register(on: On) {
11 on('ui.render', { component: 'AbovePrompt' }, async ($, e, next) => {
12 // Other surfaces draw their own band, and a survey owns the band when one
13 // is up. `isWorking` is recomputed by the engine, so this single guard is
14 // the whole show-while-working / hide-when-done behaviour — there is no
15 // hide-on-complete code to write.
16 if (e.surface !== 'terminal' || e.props.hasSurvey || !e.props.isWorking) {
17 return next(e)
18 }
19
20 // Elements are never globals — they come from the surface's table.
21 // `$.ui.resolve` is synchronous despite living on `$.ui`.
22 const { Box, Text } = $.ui.resolve(e)
23
24 const rows = Math.min(3, e.props.maxRows)
25
26 return (
27 <Box flexDirection="column" height={rows}>
28 <Text color="magenta" bold>
29 {'✦ '}
30 </Text>
31 <Text color="cyan">hello from above the prompt</Text>
32 </Box>
33 )
34 })
35}
36