AI Suggestion Tracker
一个运行在 Cursor 中的扩展,帮助你追踪并可视化 AI 生成的代码。
能做什么
实时标记 AI 代码
插件会自动识别你通过 Cursor 接受的 AI 补全内容,并在编辑器中用视觉标记高亮出来,让你随时清楚哪些行是 AI 写的、哪些是你自己写的。
支持以下两种 AI 写入来源:
- Tab 补全:按 Tab 接受 Cursor 智能补全时触发
- Agent / Cmd+K:通过 Cursor Agent 对话或内联编辑时触发
多种标记样式可选
你可以根据个人喜好,在三种可视化样式之间切换:
| 样式 |
效果 |
| 概览尺标刻度 |
在右侧 Overview Ruler 上打点,适合快速全局扫视 |
| 行尾小点 |
在每行 AI 代码末尾显示小标记,不干扰阅读 |
| 侧边栏小图标 |
在 Gutter 区域显示图标(注意:可能影响断点使用) |
提交时自动上报统计
每次 git commit 后,插件会自动将本次提交中 AI 生成代码的统计数据进行上报,帮助团队积累 AI 辅助编码的量化数据。
上报内容示例:
{
"aiSourceCodes": {
"tab": ["const x = computeValue(input);"],
"agent": ["return result ?? defaultValue;"]
}
}
不污染你的代码仓库
标记数据存储在工作区的 .ai-tracker/ 目录中(sidecar 文件),不会写入源码本身,.ai-tracker/ 也会自动加入 .gitignore,不会被提交进仓库。
安装
在 Cursor 扩展市场搜索:
ai-suggestion-tracker
发布者:zhaopin-ai-maker
使用方式
安装后,Cursor 右下角状态栏会出现 AI统计 入口,点击可切换以下状态:
- 关闭AI统计:停止统计与显示
- 隐藏AI标记:继续统计,但不在编辑器显示装饰
- 样式:概览尺标刻度 / 行尾小点 / 侧边栏小图标:切换标记样式
效果预览:

工作原理(简述)
插件基于 Cursor 提供的 Hooks 机制 工作:
- 插件在激活时自动注册两个 Hook(
afterTabFileEdit、afterFileEdit)
- 每当 Cursor 完成 AI 写入,Hook 脚本将事件记录到工作区的
.ai-tracker/hook.log
- 插件定时消费日志,提取 AI 生成的代码行内容,写入
.ai-tracker/markers.json
- 在编辑器中,插件将 markers 与当前未提交的代码 diff 进行匹配,高亮对应行
标记数据以行内容(而非行号)为索引,这样即使文件发生增删行,也不会出现标记错位的问题。
如果开启统计后 Hook 未自动注册,可手动执行命令:Ai-Tracker: 注册hooks,然后重启 Cursor。
注意事项
- 插件只追踪启用后的新增或变更代码,不追溯历史存量代码
- 以"最后一次写入来源"为口径:某行最后一次被 AI 写入,则视为 AI 代码
- 以下情况可能导致标记暂时失效:
- 代码格式化(如 Prettier)改变了行文本
- import 排序、代码重排后行内容移动
- 同一行内容被拆分为多行,或多行合并为一行
问题排查
标记没有出现?
- 检查
~/.cursor/hooks.json 中是否包含 afterFileEdit 和 afterTabFileEdit,均应指向 writeFileChanges.sh(macOS/Linux)或 writeFileChanges.bat(Windows)
- 检查工作区
.ai-tracker/hook.log 是否有事件写入
- 确认当前代码行仍在未提交 diff 中(已 commit 的代码不会显示装饰)
- 尝试重新执行命令
Ai-Tracker: 注册hooks 后重启 Cursor
升级说明
旧版本曾通过接管 Tab 键的方式追踪补全。新版本已改为基于 Cursor Hooks 实现,不再拦截 Tab 键,也不再需要手动修改 keybindings。从旧版本升级后,插件会自动清理之前写入的 keybindings 配置。
tab按键失效问题:通过command + shift + P快捷键,输入'open keyboard shortcuts(JSON)',打开配置后,删除"key": "tab"的所有被禁用的命令
测试
Mac/Linux 直接:
npm run compile && node test/runAll.js
Windows PS1 脚本测试分两层:A 层为字符串契约断言,零依赖始终运行;B 层调用 PowerShell [Parser]::ParseFile() 做语法校验,需要 pwsh,未安装会自动跳过。Mac 用户如希望覆盖 B 层:
brew install --cask powershell