terraphim-hooks 是一个基于知识图谱的文本替换能力,可在关键点拦截文本并应用知识图谱定义的转换规则。它使用 Aho-Corasick 自动机(LeftmostLongest 匹配)进行匹配,替换规则定义在知识图谱的 Markdown 文件中,标题作为替换文本,synonyms 行列出需要被替换的同义词。主要组件包括 terraphim-agent replace 命令行替换工具、PreToolUse 钩子(拦截工具调用)和 Git 钩子(通过 prepare-commit-msg 转换提交信息)。
安装方式:可从 GitHub Releases 下载 terraphim-agent 二进制并放入 ~/.cargo/bin/,或从源码构建(cargo build -p terraphim_agent --release)。注意 crates.io 上的版本过旧,缺少 hook/guard 命令。
基本用法:创建知识图谱目录 ~/.config/terraphim/docs/src/kg/,在其中放置 Markdown 文件定义替换规则。然后执行 echo "npm install package" | terraphim-agent replace,可输出替换后的文本;加 --json 可输出结构化结果,加 --fail-open 可在出错时返回原文。
集成到 Claude Code:配置 PreToolUse 钩子脚本调用 terraphim-agent hook --hook-type pre-tool-use,并在 settings.local.json 中注册。也可在 Git 钩子中调用 terraphim-agent replace 转换提交信息。此外可通过 MCP 工具 replace_matches 使用相同功能,或从 Rust 代码调用 terraphim_hooks 库。
限制与错误处理:钩子采用 fail-open 语义,若 agent 不存在或替换失败则原样放行;默认区分大小写;替换规则需按格式编写,标题中的空格不能替换为下划线。详细行为、平台支持、收费等信息暂未提供。