Claude の返答を角の丸い色付きの枠で囲む(ターミナル/VS Code/デスクトップ/モバイル共通)

Claude Code の返答を、角の丸い色付きの枠で囲む mod(関数フックのプラグイン)です。 ターミナル・VS Code 拡張・デスクトップアプリ・モバイルのどれで開いても同じように効きます。
Anthropic とは関係のない、個人が作った非公式の mod です。
#d97757)の角丸の枠に入りますCLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 が要ります。API は版の間で変わることがあり、新しい版で動かなくなる可能性があります git clone https://github.com/takosasi-dev/reply-frame.git
claude --plugin-dir <clone したフォルダ> で起動する~/.claude/settings.json の env に CLAUDE_CODE_PLUGIN_DIRS を足し、clone したフォルダの絶対パスを書く {
"env": {
"CLAUDE_CODE_PLUGIN_DIRS": "D:/tools/reply-frame"
}
}
hooks/register.tsx 先頭の FRAME_COLOR を書き換えます。--plugin-dir などで読み込んでいるセッションでは、保存するとその場で読み直されます。
CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 claude plugin test .
claude plugin validate .
テストでは、4 種類の画面(ターミナル・デスクトップ・VS Code・モバイル)すべてで返答が枠付きで描かれることと、長すぎる返答が標準の描画に戻ることを確かめています。
claude plugin validate とテスト 2 本は通っていますhooks/register.tsx 24 lines1import type { Register } from 'claude-code'
2
3// 枠の色。書き換えて保存すればその場で読み直される
4const FRAME_COLOR = '#d97757'
5
6// Markdown 要素が受け取れる上限。超える返答は標準の描画に任せる
7const MARKDOWN_LIMIT = 10000
8
9export const register: Register = on => {
10 on('ui.render', { component: 'AssistantMessage' }, ($, e, next) => {
11 if (e.props.text.length > MARKDOWN_LIMIT) {
12 return next(e)
13 }
14
15 const { Box, Markdown } = $.ui.resolve(e)
16
17 return (
18 <Box borderStyle="round" borderColor={FRAME_COLOR} paddingX={1}>
19 <Markdown text={e.props.text} />
20 </Box>
21 )
22 })
23}
24