代码分析 + Log/Trace 分析 + 变更提议工具

用自然语言问代码,
每条结论都锚定到代码行

CODRAX 默认只读:输入一个关于仓库的自然语言问题,输出一份带 file:line 引用的结构化答案, 不触碰任何源文件。证据不足时,它会诚实地停下,而不是编一个像样的答案。

Code Of Deterministic Reasoning, Anchored eXplanation

它是什么

一个会读仓库、会追证据、会给引用的分析助手

不是“模型直连仓库”的聊天壳,也不是靠文风自信制造正确感的问答器。

可以把它当成什么

  • 熟悉陌生系统、线上排障、架构讲解的工程工作台。
  • 审批后能在沙箱里走完整改动闭环的变更助手。

不该把它当成什么

  • 不是无约束的“让模型自由发挥”问答。
  • 不承诺“永远秒答”——它承诺的是可复核。

一个正确预期

  • 能证实的尽量证实,证不实的明确标边界。
  • 价值在于更稳地把复杂问题拆清楚。
真实使用场景

拿它来做什么

八个日常场景,例子可以原样照抄——把文件名、函数名换成你项目里的即可。

接手陌生仓库

这个项目分几层?要理解订单
创建流程,先看哪几个文件?

codrax 索引整个仓库,按证据搭出分层解释。你得到一份带 file:line 引用的架构地图,顺着引用逐个点开即可。

线上 panic / 日志定位

codrax --log /tmp/panic.txt \
  -r "这个 panic 哪来的?"

日志先被解析成结构化栈帧,再对齐到仓内当前代码。你得到候选根因、已排除项和仍缺的证据。REPL 里用 /log 附加同理。

性能卡顿 trace 分析

codrax --htrace perf.systrace \
  -r "com.example.app 主线程 12.30s–12.45s
      掉帧:在等谁?唤醒链是什么?"

支持 HiTrace / atrace / systrace / perfetto 文本 trace,自动抽出掉帧、阻塞与唤醒链。提问带上线程名与时间窗会明显更准;REPL 里用 /htrace 附加。

跨仓 workspace 查调用

api-go 暴露的 /v1/user 接口在
web-frontend 哪些组件被消费?

在多仓父目录启动即自动发现子仓;/repos focus 固定目标后,跨仓的接口消费方、调用链查询直接命中。

配置 / 行为溯源

timeout 这个配置从哪读的?
默认值多少?CLI 能覆盖吗?

精确值要找到唯一的定义链才会给出,找不到就明确说,而不是报一个像样的数。答案附上定义处与覆盖点的引用。

数据文件盘点与核对

codrax --mode=data -r "汇总当前
目录 CSV 的数值字段,只输出 JSON"

只读地清洗、过滤、关联、汇总本地 CSV / JSONL,严格按你要的格式输出,并附材料消费与对账摘要——算过什么一目了然。

写模式小修小补

/write 修复回调幂等问题并补测试

Auto Pilot 在隔离的 git worktree 里探索、改动、跑验证;低 / 中风险自动推进,高风险才等你审批。确认没问题后 /merge 收回主仓。

无头 / CI 单次提问

codrax -r "这个接口的鉴权逻辑?" \
  > answer.md

一条命令、一个带引用的答案,适合脚本与持续集成;日志也能从管道喂进来(kubectl logs … | codrax --log -)。

为什么可信

为什么答案值得信

每条结论带 file:line 引用

引用会与源码逐条核对,编造或对不上的引用进不了正文——你可以直接点开复核。

读不到的不编

只允许引用真正读过的文件;证据不足时明确说“仍缺证据”,不把不确定包装成确定。

日志 / trace 是真解析

panic 栈帧、trace 事件先被结构化提取、再对齐到仓内代码,不是当一段普通文本塞给模型。

写模式永不直接碰主仓

所有改动都发生在隔离的 git worktree 里,合回主仓永远需要你显式执行。

快速上手

四步从零跑起来

克隆源码、一条 make 构建出二进制。完整说明见使用手册。

1

获取 codrax

git clone https://github.com/hanchaoqun/codrax.git
cd codrax && make   # 输出 ./codrax

构建需要 CGO(macOS 先 xcode-select --install,Debian / Ubuntu 装 gcc musl-tools)。

2

加进 PATH

echo 'export PATH="/path/to/codrax:$PATH"' >> ~/.bashrc   # bash
echo 'export PATH="/path/to/codrax:$PATH"' >> ~/.zshrc    # zsh
exec "$SHELL" -l

之后在任何目录都能直接敲 codrax 启动。

3

配置 providers.yaml

cp providers.yaml.example providers.yaml
# 填 api_key + model,和二进制放同一目录

连接 LLM 凭证,支持任何 OpenAI 兼容服务:OpenAI / DeepSeek / Qwen / 本地 vLLM / Ollama。

4

cd 进仓库再启动

cd /path/to/your/repo   # 先进入要分析的项目
codrax                  # 再启动交互控制台

答案带 file:line 引用;/help 列出全部斜杠命令。

⚠ codrax 把「当前目录」当作要分析的代码仓库。 使用前务必先 cd 进你的项目根目录再运行 —— 它分析的就是你启动它时所在的那个目录,运行产物也都写在该目录的 .codrax/ 子目录下。