事情是这样的
上个月我用 Cursor 重构了一个项目。三天时间,AI 帮我写了大概一万多行代码,涉及 40 多个文件。
第四天我打开项目,发现一个 bug。
然后我意识到:我已经不知道这个项目是怎么工作的了。
不是说我不会写代码------而是 AI 写得太快了,快到我的理解速度跟不上项目的增长速度。我需要追一个 bug,但链路跨了 7 个文件,其中 5 个是 AI 写的,我从来没仔细看过。
那一刻我有一种很强烈的"失控感"。
我想要什么
我不想逐行 review AI 写的每一行代码------那样还不如自己写。
我想要的是:一眼看到"这个项目在做什么"。
不是调用图(那是给编译器看的),不是 import 关系(那是给打包工具看的)。我想看到的是人话:
"用户登录"这个功能 = 接收请求 → 查用户 → 比对密码 → 签发 token → 返回
就像你跟同事口头描述一个功能时说的那样。
我做了一个东西
想了几天后我开始动手,做了 CodeSee。
核心想法很简单:让 AI 在写代码的同时,也写一份"功能地图"。
这份地图不是代码级别的------它是语义级别的。就像做菜:
如果功能是"西红柿炒鸡蛋",地图展示的是"备菜 → 打蛋 → 热油 → 下锅 → 调味 → 出锅",而不是
prepare()调用slice()再调用whisk()。
长什么样
三层视图,从粗到细:
概览 ------ 整个项目有哪些大模块,它们之间什么关系

功能 ------ 每个模块里有哪些具体功能 
流程 ------ 一个功能内部的步骤链(包括异步、条件分支、错误处理) 
在线体验:kaka-cheaper.github.io/codeSee/
它是怎么工作的
说白了就两件事:
- AI 写一份 JSON 文件(features.json),描述项目的功能结构
- 前端画布消费这份 JSON,渲染成可交互的流程图
AI 怎么知道该写什么?我写了一套 prompt,告诉它:你刚写完代码,现在把这个功能用"动作短语"描述出来,写到 features.json 里。
关键是------这份 JSON 是纯文本,可以 git diff,可以人工修改,可以锁定不让 AI 覆盖。不是什么黑盒。
最佳使用方式
我试了两种场景后发现:从第一天就集成效果最好。
为什么?因为 AI 刚写完代码,它完全知道每一步做了什么。让它"回忆"一个已有项目的逻辑,准确率会下降很多。
工作流就是:
arduino
你说"实现用户登录"
→ AI 写代码
→ AI 顺手更新 features.json
→ 你打开画布看一眼"哦,原来是这么串起来的"
→ 发现设计问题 → 告诉 AI 改
→ 下一个功能
画布变成了你的活的架构图,始终和代码同步。
为什么不用现有工具
我调研过:
- Mermaid / PlantUML ------ 手动维护,AI 改了代码你还得手动改图,几天就过时了
- 代码调用图工具 ------ 太细了,看到的是函数调用不是业务逻辑
- Notion / 飞书文档 ------ 和代码完全脱节,没法自动同步
CodeSee 的定位是:AI 自动维护 + 语义级别 + 可交互画布 + 和代码同步。这四个同时满足的,我没找到。
技术上怎么实现的
- 前端:React + React Flow + ELK 布局算法 + Tailwind
- 数据:纯 JSON 文件,AI 通过 prompt 产出
- 校验:写了个零依赖的 validator,AI 写完自动跑,防止它编造不存在的字段
- 兼容:Cursor / Claude Code / Kiro / Copilot / Codex 都能用(只要能读 AGENTS.md)
开源地址
⭐ GitHub :github.com/Kaka-cheape...
MIT 协议,一键安装到你的项目:
bash
# Windows
./scripts/install.ps1 D:\path\to\your\project
# macOS / Linux
./scripts/install.sh /path/to/your/project
如果你也有"AI 写太快,我跟不上"的感觉,试试看。有问题直接提 Issue,我会回复。