소스 정보
- 저장소
- gugug168/cute-claude-hooks
- 최근 소스 활동
- 2026년 8월 15일 07:07
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 211
- 포크
- 27
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/gugug168/cute-claude-hooks --skill cute-claude-hooks명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | cute-claude-hooks (可爱提示钩子) |
| description | 为 Claude Code 提供完整的中文体验!包含工具提示、界面汉化、完整的自定义指南、实战经验和进阶开发教程, 让用户能够根据自己的需求修改和完善. |
在自定义钩子脚本时,以下短语/格式千万不能随意修改,否则可能导致 Claude Code 无法正常启动或运行:
| 类型 | 不能修改的内容 | 原因 |
|---|---|---|
| JSON 结构 | {"systemMessage":"..."} 格式 | Claude Code 依赖此格式解析 hook 输出 |
| 特殊标记 | <{{GUID}}> 格式的标记 | 系统内部通信标识符 |
| 工具名称 | Bash, Read, Write 等工具名 | 与 Claude Code 内部工具对应 |
| 钩子字段 | PreToolUse, PostToolUse 等事件名 | 钩子系统核心字段 |
| 环境变量名 | CLAUDE_CODE_* 相关变量 | 系统运行时依赖 |
如果修改后 Claude Code 无法正常启动或出错:
# 方法1: 重新安装 Claude Code
npm install -g @anthropic-ai/claude-code
# 方法2: 清除缓存后重装
npm cache clean --force
npm install -g @anthropic-ai/claude-code
# 方法3: 恢复钩子默认配置
# 删除自定义钩子,使用原始配置
rm -rf ~/.claude/hooks/
cute-claude-hooks 是一个为 Claude Code 设计的中文增强工具包,包含两大核心功能:
每次 Claude Code 执行操作时,都会在界面上显示一条中文提示,告诉你它刚才做了什么:
🌸 📖 读取文件: package.json — 查看这个文件里写了什么 🌸
🌸 🖥️ 执行命令: git status — 查看代码仓库状态(有哪些文件被修改了) 🌸
🌸 ✏️ 编辑文件: index.js — 修改这个文件的部分内容 🌸
支持的工具类型:
| 工具 | 图标 | 说明 |
|---|---|---|
Read | 📖 | 读取文件 |
Write | 📝 | 写入文件 |
Edit / MultiEdit | ✏️ | 编辑文件 |
Bash | 🖥️ | 执行终端命令 |
Glob | 🔍 | 搜索文件 |
Grep | 🔎 | 搜索内容 |
Agent | 🤖 | AI子任务 |
| MCP 工具 | 🔌 | 第三方扩展 |
命令解释覆盖范围:
多命令支持: 当 Bash 工具执行多条命令(用 &&, ||, ; 连接)时,会逐条解释每一条命令。
将 Claude Code 的英文界面翻译为中文,包括:
/config)# 全局安装
npm install -g cute-claude-hooks
# 运行安装脚本
cute-claude-hooks-install
安装向导会提供四个选项:
npx cute-claude-hooks-install
无需全局安装,直接运行安装脚本。
详见 README.md 中的「Windows 手动安装」章节。
界面汉化通过 关键词全局替换 实现:
cli.js 为 cli.bak.jskeyword.js 中的翻译对照表(151条)cli.js 中执行全文替换| 区域 | 示例原文 | 示例译文 |
|---|---|---|
| 配置面板 | Theme | 主题 |
| 斜杠命令 | /help - Get help | /help - 获取帮助 |
| 快捷键提示 | Esc to cancel | Esc 取消 |
| 欢迎界面 | Welcome back! | 欢迎回来! |
| 状态信息 | Auto-compact | 自动压缩 |
所有翻译词条在 localize/keyword.js 中,格式为:
module.exports = {
'English text': '中文翻译',
// ...
}
编辑 ~/.claude/hooks/tool-tips-post.sh 中的 get_tip() 函数:
get_tip() {
case "$1" in
"Read")
echo "📖 正在读取文件 — 看看里面写了什么"
;;
"Write")
echo "📝 正在写入文件 — 创建或更新文件内容"
;;
# ... 添加你自己的提示
esac
}
编辑 explain_cmd() 函数中的 case 语句:
git)
local sub=$(echo "$rest" | awk '{print $1}')
case "$sub" in
status) echo "查看仓库状态" ;;
log) echo "查看提交历史" ;;
# 添加你自己的命令解释
esac
;;
在主逻辑中修改 🌸 标记:
# 默认
escaped_tip=$(json_escape "🌸 ${tip} 🌸")
# 改为你想要的标记
escaped_tip=$(json_escape ">>> ${tip} <<<")
在 get_tip() 函数中添加新的 case 分支:
# 添加对 NoteBookEdit 的支持
"NotebookEdit")
echo "📓 编辑 Notebook — 修改 Jupyter 笔记本单元格"
;;
编辑 ~/.claude/settings.json 中的 matcher 字段:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Bash|Read|Write|Edit|Glob|Grep|mcp__*",
"hooks": [...]
}
]
}
}
匹配规则说明:
| 规则 | 匹配内容 |
|---|---|
Bash | 精确匹配 Bash 工具 |
Bash|Read | 匹配 Bash 或 Read(用 | 分隔) |
mcp__* | 匹配所有 MCP 工具(通配符) |
* | 匹配所有工具 |
根据文件类型显示不同提示:
"Read")
if [ -n "$file_path" ]; then
ext="${file_path##*.}"
case "$ext" in
py) echo "📖 读取 Python 文件: $(short_path "$file_path")" ;;
js) echo "📖 读取 JavaScript 文件: $(short_path "$file_path")" ;;
*) echo "📖 读取文件: $(short_path "$file_path")" ;;
esac
fi
;;
在 get_tip() 的 MCP 分支中添加新的服务器:
case "$srv" in
"context7") echo "📚 查询文档: $tool" ;;
"exa") echo "🌐 网络搜索: $tool" ;;
"basic-memory") echo "🧠 记忆操作: $tool" ;;
# 添加你自己的 MCP 服务器
"my-server") echo "🔧 我的工具: $tool" ;;
*) echo "🔌 $srv: $tool" ;;
esac
在 explain_cmd() 函数中添加新的命令组:
# 示例:添加 Kubernetes 命令
kubectl)
local sub=$(echo "$rest" | awk '{print $1}')
case "$sub" in
get) echo "查看 Kubernetes 资源" ;;
apply) echo "应用 Kubernetes 配置" ;;
delete) echo "删除 Kubernetes 资源" ;;
logs) echo "查看容器日志" ;;
describe) echo "查看资源详细信息" ;;
*) echo "Kubernetes 集群操作" ;;
esac
;;
编辑 localize/keyword.js:
module.exports = {
// 现有词条...
// 添加新词条
'New English Text': '新的中文翻译',
};
然后重新运行汉化:
node ~/.claude/localize/localize.js
除了 PostToolUse(执行后提示),还可以添加 PreToolUse(执行前提示):
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/pre-warning.sh"
}
]
}
]
}
}
手动模拟 Claude Code 的调用:
# 测试 Read 工具提示
echo '{"tool_name":"Read","file_path":"test.py"}' | bash ~/.claude/hooks/tool-tips-post.sh
# 测试 Bash 工具提示
echo '{"tool_name":"Bash","command":"git status"}' | bash ~/.claude/hooks/tool-tips-post.sh
# 测试 Glob 工具提示
echo '{"tool_name":"Glob","pattern":"**/*.js"}' | bash ~/.claude/hooks/tool-tips-post.sh
# 测试多命令提示
echo '{"tool_name":"Bash","command":"git status && npm install && npm run build"}' | bash ~/.claude/hooks/tool-tips-post.sh
预期输出格式:
{"systemMessage":"🌸 🖥️ 共3条命令:\n 1. git status — 查看代码仓库状态(有哪些文件被修改了)\n 2. npm install — 安装项目依赖包\n 3. npm run build — 构建/编译项目 🌸"}
Claude Code 的 hook 执行日志在终端中可见。如果提示没有出现:
/)chmod +x)# 验证 JSON 格式
node -e "JSON.parse(require('fs').readFileSync(require('path').join(require('os').homedir(),'.claude','settings.json'),'utf8'));console.log('OK')"
问题: Windows 上 hook 脚本路径包含反斜杠或中文用户名。
解决: settings.json 中的路径使用正斜杠:
"command": "C:/Users/你的用户名/.claude/hooks/tool-tips-post.sh"
Claude Code 会自动通过 Git Bash 执行 .sh 脚本。
问题: 在 Windows 上编辑 .sh 文件后,换行符变成 CRLF,导致 bash 报错。
解决: 确保使用 LF 换行符。在 VS Code 中,点击右下角的 CRLF,切换为 LF。
或在安装脚本中自动处理:
# 将 CRLF 转为 LF
sed -i 's/\r$//' tool-tips-post.sh
关键发现: PostToolUse hook 的输出必须是以下格式才能在 UI 中显示:
{"systemMessage":"你要显示的文本"}
systemMessage原则: 解释应该让完全不懂编程的人也能理解:
执行命令: git status执行命令: git status — 查看代码仓库状态(有哪些文件被修改了)每个解释都包含两部分:
当 Bash 执行的命令包含多条语句时(用 &&, ||, ; 连接),脚本会:
修改 settings.json 的 matcher:
"matcher": "Bash"
修改 get_tip() 中的输出:
"Bash")
timestamp=$(date '+%H:%M:%S')
echo "🖥️ [${timestamp}] 执行命令: $real_cmd — $(explain_cmd "$real_cmd")"
;;
修改 get_tip() 中的 Read/Write/Edit 分支,去掉文件名:
"Read")
echo "📖 读取文件 — 查看文件内容"
;;
"Bash")
# macOS 声音提醒
afplay /System/Library/Sounds/Ping.aiff &
echo "🖥️ 执行命令: $real_cmd"
;;
在主逻辑中添加日志记录:
# 在输出 systemMessage 之前记录日志
log_file="$HOME/.claude/hooks/operation.log"
echo "$(date '+%Y-%m-%d %H:%M:%S') | $tool_name | $file_path" >> "$log_file"
Windows 用户必读! 90% 的 Hooks 失效问题都源于环境配置不当。请按以下五个阶段逐一排查。
将以下内容直接粘贴给 Claude Code,让它帮你排查:
"你现在是一个 Windows 专家级运维工程师。请针对以下五个维度,深度扫描我的系统路径、配置和环境变量,找出可能导致 Claude Code Hooks 失效、命令不识别或路径冲突的问题,并给出修复建议。"
| 检查项 | 命令 | 正确状态 |
|---|---|---|
| 终端版本 | $PSVersionTable.PSVersion | PowerShell 7+ (推荐) |
| 执行策略 | Get-ExecutionPolicy | RemoteSigned 或 Unrestricted |
| 管理员权限 | ([Security.Principal.WindowsPrincipal]::new([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole('Administrators') | 按需判断 |
常见问题:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser| 检查项 | 命令 | 正确状态 |
|---|---|---|
| Node 版本 | node --version | v14.0.0+ |
| Node 路径 | where node | 路径无中文、无空格 |
| npm 全局前缀 | npm config get prefix | 非用户文档目录 |
| npm 全局包路径 | npm root -g | 路径无中文 |
常见问题:
C:\Program Files\nodejs) → 通常没问题,但某些工具可能报错C:\Users\小明\...) → 会导致 npm 全局包安装失败,建议修改 npm prefix:
npm config set prefix "C:\npm-global"
# 然后将 C:\npm-global 加入系统 PATH
| 检查项 | 命令 | 正确状态 |
|---|---|---|
| Git 安装 | git --version | git version 2.x |
| sh 可用性 | sh --version | GNU Bash 4.x+ |
| Git\bin 在 PATH | `$env:Path -split ';' | Select-String 'Git\bin'` |
| Git\usr\bin 在 PATH | `$env:Path -split ';' | Select-String 'Git\usr\bin'` |
| 换行符策略 | git config --global core.autocrlf | input (必须是这个!) |
| Hooks 路径 | git config --global core.hooksPath | 为空或未设置 |
⚠️ 头号死穴:core.autocrlf = true
这是 Windows 上 Hooks 失效的第一大原因!当 core.autocrlf = true 时:
.sh 脚本变成 CRLF 换行\r: command not found修复:
git config --global core.autocrlf input
为什么用
input而不是false?
input:提交时 CRLF → LF,检出时不动。Windows 写代码没问题,脚本也不会被破坏false:完全不管换行符。如果你用 Windows 编辑器写代码,可能会把 CRLF 提交到仓库
验证 sh 可用:
# 应该输出 bash 版本信息
sh --version
# 如果报错,检查 PATH 是否包含 Git\bin
$env:Path -split ';' | Where-Object { $_ -match 'Git\\\\bin' }
| 检查项 | 命令 | 正确状态 |
|---|---|---|
| UTF-8 区域设置 | 打开: intl.cpl → 管理 → 更改系统区域设置 | 勾选 "Beta: 使用 Unicode UTF-8" |
| 长路径支持 | Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem -Name LongPathsEnabled | LongPathsEnabled = 1 |
| 用户名路径 | echo $env:USERPROFILE | 无中文字符 |
常见问题:
C:\Users\古古) → 通常没问题,但某些老旧工具可能报错D:\项目资料\AI工具) → 极易出问题!建议改为英文路径C:\Users\xxx\.claude\plugins\cache\...\node_modules\...) → 超过 260 字符会导致 Node 报错开启长路径支持:
# 管理员 PowerShell 运行
Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem -Name LongPathsEnabled -Value 1
# 需要重启生效
| 检查项 | 命令 | 正确状态 |
|---|---|---|
| HTTP 代理 | echo $env:HTTP_PROXY | 按需设置 |
| HTTPS 代理 | echo $env:HTTPS_PROXY | 按需设置 |
| npm 代理 | npm config get proxy | 按需设置 |
| SSL 验证 | npm config get strict-ssl | true |
国内用户特别注意:
如果使用公司代理或 VPN:
# 如果代理导致 SSL 错误(不推荐,仅调试用)
npm config set strict-ssl false
# 推荐方式:使用国内镜像
npm config set registry https://registry.npmmirror.com
将以下内容保存为 check-env.ps1 运行,或直接粘贴到 PowerShell:
Write-Host "`n🌸 Cute Claude Hooks — Windows 环境自检 🌸`n" -ForegroundColor Magenta
$pass = "✅"; $fail = "❌"; $warn = "⚠️"
# Stage 1: Shell
Write-Host "[第一阶段] Shell 与权限" -ForegroundColor Cyan
$psVer = $PSVersionTable.PSVersion.Major
Write-Host ($psVer -ge 7 ? "$pass PowerShell $psVer" : "$warn PowerShell $psVer (建议升级到 7+)")
$policy = Get-ExecutionPolicy
Write-Host ($policy -ne 'Restricted' ? "$pass 执行策略: $policy" : "$fail 执行策略: $policy (需设为 RemoteSigned)")
# Stage 2: Node
Write-Host "`n[第二阶段] Node.js" -ForegroundColor Cyan
try { $n = node --version 2>$null; Write-Host "$pass Node $n" } catch { Write-Host "$fail Node 未安装" }
$prefix = npm config get prefix 2>$null
Write-Host ($prefix -match '[\u4e00-\u9fff]' ? "$fail npm prefix 含中文: $prefix" : "$pass npm prefix: $prefix")
# Stage 3: Git Bash (关键!)
Write-Host "`n[第三阶段] Git Bash (最关键)" -ForegroundColor Yellow
try { $g = git --version 2>$null; Write-Host "$pass $g" } catch { Write-Host "$fail Git 未安装" }
$autocrlf = git config --global core.autocrlf 2>$null
Write-Host ($autocrlf -eq 'input' ? "$pass core.autocrlf = input" : "$fail core.autocrlf = $autocrlf (必须改为 input!)")
$hookPath = git config --global core.hooksPath 2>$null
Write-Host ($hookPath ? "$warn core.hooksPath = $hookPath (可能拦截 Claude Hooks)" : "$pass 无全局 hooksPath 覆盖")
# Stage 4: Encoding
Write-Host "`n[第四阶段] 文件系统" -ForegroundColor Cyan
$userPath = $env:USERPROFILE
Write-Host ($userPath -match '[\u4e00-\u9fff]' ? "$warn 用户路径含中文: $userPath" : "$pass 用户路径: $userPath")
# Stage 5: Network
Write-Host "`n[第五阶段] 网络" -ForegroundColor Cyan
$reg = npm config get registry 2>$null
Write-Host ($reg -match 'npmmirror' ? "$pass npm 镜像: $reg" : "$pass npm 源: $reg")
Write-Host "`n🌸 自检完成!如有 ❌ 项请参考上方修复建议 🌸`n" -ForegroundColor Magenta
排查步骤:
检查 settings.json 格式
node -e "console.log(JSON.parse(require('fs').readFileSync(require('path').join(require('os').homedir(),'.claude','settings.json'),'utf8')).hooks)"
手动测试 hook 脚本
echo '{"tool_name":"Read","file_path":"test.py"}' | bash ~/.claude/hooks/tool-tips-post.sh
应该输出 {"systemMessage":"..."}
检查脚本换行符
file ~/.claude/hooks/tool-tips-post.sh
# 应该显示: ASCII text, not ASCII text, with CRLF line terminators
检查脚本权限(Linux/macOS)
ls -la ~/.claude/hooks/tool-tips-post.sh
# 应该有执行权限
chmod +x ~/.claude/hooks/tool-tips-post.sh
确保系统编码为 UTF-8:
# 查看详细错误
cute-claude-hooks-install 2>&1 | tee install.log
| 文件 | 位置 | 说明 |
|---|---|---|
| Hook 脚本 | ~/.claude/hooks/tool-tips-post.sh | 工具提示脚本 |
| 用户配置 | ~/.claude/settings.json | hooks 配置 |
| 汉化字典 | ~/.claude/localize/keyword.js | 翻译词条 |
| 汉化引擎 | ~/.claude/localize/localize.js | 替换脚本 |
| Claude Code 备份 | ~/.claude/localize/cli.bak.js | 原始英文文件 |
| Claude Code 主体 | Claude Code 安装目录的 cli.js | 被汉化的目标文件 |
# 方式一:使用卸载命令
cute-claude-hooks-restore
# 方式二:手动恢复
node ~/.claude/localize/localize.js --restore
编辑 ~/.claude/settings.json,删除 hooks 段:
{
"hooks": {}
}
# 1. 恢复英文界面
cute-claude-hooks-restore
# 2. 删除 hook 文件
rm -rf ~/.claude/hooks/
# 3. 删除汉化文件
rm -rf ~/.claude/localize/
# 4. 卸载 npm 包
npm uninstall -g cute-claude-hooks
当前共有 151 条翻译词条,覆盖 Claude Code 界面的主要文本。
主要分类:
| 分类 | 词条数 | 示例 |
|---|---|---|
| 配置面板 | 30+ | Theme → 主题, Model → 模型 |
| 斜杠命令 | 20+ | /help → 获取帮助 |
| 状态信息 | 25+ | Auto-compact → 自动压缩 |
| 快捷键 | 15+ | Esc to cancel → Esc 取消 |
| 欢迎界面 | 10+ | Welcome back → 欢迎回来 |
| 其他界面 | 50+ | 各类提示和说明文本 |
完整词条列表见 localize/keyword.js 文件。
A: 完全支持!安装脚本自动检测操作系统。
A: 会的。Claude Code 更新会覆盖 cli.js。重新运行 cute-claude-hooks-install 选择「仅安装界面汉化」即可。
A: 支持 80+ 常用命令的中文解释,涵盖 git、npm、pip、docker、文件操作、网络命令等。
A: 可以。安装时选择「仅安装工具提示」。
A: 一般不会。如果遇到编码问题,确保系统编码为 UTF-8。
A: 不需要。每次工具执行都会调用 hook 脚本,修改立即生效。
A: Claude Code 的 hook 系统通过 systemMessage 渲染文本,目前不支持 ANSI 颜色代码。提示会以默认颜色显示。
Claude Code 执行工具
↓
触发 PostToolUse 事件
↓
匹配 matcher 规则
↓
执行 hook command (tool-tips-post.sh)
↓
从 stdin 读取工具信息 JSON
↓
提取 tool_name, file_path, pattern, command
↓
调用 get_tip() 生成中文提示
↓
输出 {"systemMessage":"..."} 到 stdout
↓
Claude Code 读取并显示在界面上
Claude Code 通过 stdin 传递工具信息:
{
"tool_name": "Bash",
"file_path": "src/index.js",
"pattern": "**/*.js",
"command": "git status && npm install"
}
Hook 必须输出以下格式:
{"systemMessage":"🌸 🖥️ 执行命令: git status — 查看代码仓库状态 🌸"}
注意事项:
systemMessage 中的换行用 \n 表示\" 转义\\ 转义command 字段提取 bash 命令\n 转为实际换行# 开头)和空行&&, ||, ; 拆分explain_cmd() 生成解释...(还有N条)systemMessage JSON 格式head -c),现在显示完整命令\n 正确转换为实际换行git checkout -b feature/your-featuregit commit -m 'feat: 添加某某功能'git push origin feature/your-feature特别欢迎以下贡献:
使用 Conventional Commits 格式:
feat: 添加 kubectl 命令解释
fix: 修复 Windows 中文路径编码问题
docs: 更新 SKILL.md 安装说明
refactor: 简化 get_tip() 函数逻辑
MIT License - 自由使用、修改和分发
Made with 🌸 by gugug168