如何一键暂停AI改写:claudish-to-english运行时开关与调试日志实战教程
【免费下载链接】claudish-to-english项目地址: https://gitcode.com/gh_mirrors/cl/claudish-to-english
claudish-to-english 是一款 Claude Code 插件,它能调用本地 LLM(ollama)把 AI 助手的每条回复额外改写为通俗易懂的白话文。本教程教你两个高频操作:一键暂停 AI 改写(运行时开关)和打开调试日志排查问题,全程只需几行命令。
为什么需要"运行时开关"?
插件的配置(环境变量)在会话启动时就被"冻结"了——会话进行到一半修改配置是不会生效的。
但"标志文件"机制打破了这个限制:两个钩子脚本每次被触发时都会实时检查文件是否存在,所以你可以在会话进行到一半时瞬间暂停或恢复改写,无需重启 Claude Code。
核心开关一览:
| 开关 | 生效时机 | 适用场景 |
|---|---|---|
~/.claude/claudish-off标志文件 | 立即生效(每条消息实时检查) | 会话中途一键暂停/恢复 |
CLAUDISH_ENABLED=0 | 下次启动会话生效 | 彻底关闭插件 |
CLAUDISH_DEBUG=1 | 下次启动会话生效 | 打开调试日志 |
💡 即使暂停或关闭失败,插件遵循"fail-open"(失败放行)契约:任何异常都只会原样显示 Claude 的原始文字,绝不会吞掉或损坏回答。
一键暂停改写:claudish-off 标志文件实战
这是最常用的操作。在终端里创建或删除一个空文件即可:
touch ~/.claude/claudish-off # 暂停改写,下一条消息立即生效 rm ~/.claude/claudish-off # 恢复改写实现原理在 rewrite.sh 中只有一行关键判断:
# 运行时开关:每次调用都是全新进程,标志文件检查始终"实时" [ -f "${CLAUDISH_OFF_FILE:-$HOME/.claude/claudish-off}" ] && ENABLED=0Windows 用户:PowerShell 等效命令
Windows 上通过 Git Bash 运行钩子脚本,PowerShell 里对应写法如下(来自 README.md 的官方说明):
New-Item -ItemType File $HOME\.claude\claudish-off # 暂停改写 Remove-Item $HOME\.claude\claudish-off # 恢复进阶:快捷键一键切换
官方推荐把"两行切换脚本"绑定到键盘热键,这样所有正在运行的会话会同时被暂停/恢复,非常适合多窗口开发场景。
标志文件路径还可以通过CLAUDISH_OFF_FILE环境变量自定义(默认~/.claude/claudish-off),方便统一团队约定或放在共享位置。
彻底关闭插件:CLAUDISH_ENABLED 主开关
如果不想"每条消息都检查",而是干脆不用这个插件,可以把主开关设为0:
# 一次性会话生效 CLAUDISH_ENABLED=0 claude或在~/.claude/settings.json的env块中永久设置:
{ "env": { "CLAUDISH_ENABLED": "0" } }⚠️ 两个易踩的坑:
- 修改
env后必须重启 Claude Code——环境变量在启动时捕获,运行中的会话仍是旧值; env不会跨作用域合并——优先级最高的那份 settings 文件提供整个env块(managed → local → project → user),请把CLAUDISH_*变量都写在"胜出"的那个文件里。
更多变量(显示模式CLAUDISH_MODE、超时、最短改写长度等)完整清单见 README.md 的 "Configuration (env vars)" 章节。
调试日志实战:用 CLAUDISH_DEBUG 看清每一次改写
改写没出现?模型超时了?想确认钩子到底有没有触发?打开调试日志:
{ "env": { "CLAUDISH_DEBUG": "1" } }重启 Claude Code 后,两个钩子会把带时间戳和进程号的运行记录追加写入系统临时目录:
| 日志文件 | 来源 | 记录内容 |
|---|---|---|
$TMPDIR/claudish-to-english/debug.log | 显示钩子 rewrite.sh | 分片缓冲、正文字数、最终改写结果、跳过原因 |
$TMPDIR/claudish-to-english/debug-md.log | Markdown 文件钩子 rewrite-md.sh | 候选文件、frontmatter 拆分、写入目标 |
日志条目格式为HH:MM:SS [PID] 说明,例如:
14:32:01 [8821] chunk idx=0 final=false mid=msg_abc mode=append 14:32:03 [8824] final: prose_len=1520 min=200 mode=append full_bytes=4830 14:32:05 [8824] ollama model=gemma4:26b-mlx curl_rc=0 http=200 resp_bytes=2104 rewrite_bytes=1987 truncated=false err=none第三行由共享的 provider 层 providers.sh 输出,能一眼看到 HTTP 状态、响应字节数、是否被截断和错误信息——排查"改写偶发丢失"时最有用。
Windows 上的日志位置:Git Bash 的临时目录,通常是C:\Users\<你>\AppData\Local\Temp\claudish-to-english\。
配套提示:会话内一次性通知(CLAUDISH_NOTICE)
就算不开调试日志,插件也会在每个会话只提示一次改写被跳过的原因(服务商不可达、超时、缺 API key、模型未拉取等),并追加显示在屏幕底部。觉得碍眼可用CLAUDISH_NOTICE=0彻底静默(纯 fail-open 模式)。该机制自 0.1.1 版本引入,详见 CHANGELOG.md。
常见排查清单
| 症状 | 先查这里 |
|---|---|
| 创建标志文件后仍在改写 | 确认删除/创建的是同一文件;会话中途生效的是标志文件,env修改需重启 |
| 屏幕上出现 ⚠️ 一次性通知 | 按通知提示检查 ollama 是否在运行、模型是否已ollama pull |
| 改写迟迟不出现 | CLAUDISH_DEBUG=1后看debug.log的curl_rc与http字段 |
| 短消息没有改写 | 属正常:正文字数低于CLAUDISH_MIN_CHARS(默认 200)会跳过 |
| 插件钩子没注册 | 查看/plugin的 Errors 标签页,必要时执行/reload-plugins |
钩子注册配置见 hooks/hooks.json:MessageDisplay事件绑定 rewrite.sh(60 秒超时),PostToolUse绑定 rewrite-md.sh(180 秒超时),两者共享 providers.sh 提供的 ollama / Anthropic / OpenAI 兼容三通道。
小结
- 一键暂停:
touch ~/.claude/claudish-off,下一条消息立即生效;rm恢复; - 彻底关闭:
CLAUDISH_ENABLED=0,下次会话生效; - 看日志:
CLAUDISH_DEBUG=1,盯住$TMPDIR/claudish-to-english/下的debug.log和debug-md.log; - 一切异常都 fail-open,原始回答永远安全。
掌握这三招,你就能对 claudish-to-english 的运行时行为做到完全可控、随时可查。
【免费下载链接】claudish-to-english项目地址: https://gitcode.com/gh_mirrors/cl/claudish-to-english
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考