local-link/skills/os/mac/fix-vscode-rg/SKILL.md
给 VSCode(Insiders/Stable) 内置 ripgrep 加 5s 超时包装,防止搜索卡死吃满 CPU。--on 包装(幂等) / --off 还原 / 不带参数查状态。Use when VSCode 搜索卡死、rg 进程占满 CPU,或 VSCode 更新后超时保护失效需要重包。
npx skillsauth add lionad-morotar/local-tools fix-vscode-rgInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
给 VSCode 内置 rg(ripgrep)加 5s 超时包装,防止搜索卡死吃满 CPU。用 @lionad/bin-timeout-wrapper 实现:rg→rg_backup(原二进制),原位生成带 alarm 超时的 shell wrapper。原子 rename,可还原。
--on:包装 rg,加 5s 超时(幂等,已包装则跳过)。默认行为。--off:还原原始 rg(移除 wrapper)。macOS Sequoia+ 的 TCC「应用管理 / App Management」保护会拦一切写 /Applications 下 app bundle 的操作(owner 是自己也拦,sudo 也不行)。必须先给启动终端授权:
验证授权生效(应输出 OK):
D="/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/node_modules.asar.unpacked/@vscode/ripgrep-universal/bin/darwin-arm64"
touch "$D/.test" && echo OK && rm -f "$D/.test"
若仍 Operation not permitted,回到上面授权步骤,确认加对了 app。
VSCode 1.122 改过目录结构(@vscode/ripgrep → @vscode/ripgrep-universal/bin/<arch>,见 microsoft/vscode#318691):
/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/node_modules.asar.unpacked/@vscode/ripgrep-universal/bin/darwin-arm64/rgVisual Studio Code - Insiders.app 换成 Visual Studio Code.appdarwin-arm64 换 darwin-x64先确认路径存在再操作;VSCode 大版本升级后可能再变,用 fd -HI rg "/Applications/Visual Studio Code*.app/Contents/Resources/app/node_modules.asar.unpacked/@vscode" 定位。
设 RG 为上面确认的路径。依赖 bin-timeout-wrapper(npm i -g @lionad/bin-timeout-wrapper 或用 npx)。
RG="<上面的路径>"
if bin-timeout-wrapper --status -- "$RG" | command grep -q "^Status: wrapped"; then
echo "已 wrapped,跳过"
else
bin-timeout-wrapper --timeout 5 -- "$RG"
fi
bin-timeout-wrapper --status -- "$RG"
RG="<上面的路径>"
bin-timeout-wrapper --restore -- "$RG"
RG="<上面的路径>"
BIN_TIMEOUT=1 "$RG" --files /System >/dev/null 2>&1; echo "exit=$? (期望 137)"
exit=137(128+9 SIGKILL)= 超时杀进程生效。VSCode 不需重启——每次搜索按需 spawn rg,下次 Ctrl+Shift+F 即走 wrapper。
VSCode 每次更新会在 rg 包版本变化时用原始二进制覆盖 wrapper。更新后若搜索又卡死,重新 --on 即可。(Insiders 更新频繁,建议留意。)
VSCode 不支持 search.rgPath setting——app bundle 全文 0 命中,rg 路径硬编码从 @vscode/ripgrep-universal 解析。在 settings.json 配它无效。只能改 app bundle 内的 rg 本身,这也是本 skill 的原理。
tools
理解用户意图;listen 模式通过 grill-me 深挖任务并归档经验
development
为指定项目创建完全隔离的 hapi(Claude Code On the Go)实例,包括独立数据目录、LaunchAgent 持久化、zsh wrapper 和 app.hapi.run 直连 URL。与全局 ~/.hapi 互不干扰。
development
关闭承载当前 Claude Code 会话的宿主(VSCode 窗口或其终端面板),连同 claude 一起退出。通过 close-host-window 扩展触发:先 SIGTERM claude(走完 SessionEnd hooks)再关 host,不抢焦点、不丢 hooks。--host vscode 关窗口、--host terminal(默认)只关终端面板。Use when 任务结束要随宿主退出,或需精确关闭某 claude 终端所在窗口/面板。
data-ai
提升网站对 AI 智能体/LLM 的可访问性(生成引擎优化 GEO),包括生成 /llms.txt、提供 .md 路由、内容协商、隐藏提示与验证清单。Use when 用户提到 GEO、AI SEO、llms.txt、网站对 AI 可见性、智能体可访问性,或需要让博客/文档站点对 Claude、ChatGPT 等 AI 工具更友好。