关于 Codna — repository intelligence
Codna 是面向开发者和编码 Agent 的代码仓库分析工具,提供命令行与 MCP 服务。它可映射代码、分诊问题、审查 PR、规划修复、判断 SARIF 告警是否可达,并检索本地代码记忆。
主要功能
- 01仓库映射与问题分诊
- 02PR 审查与修复规划
- 03应用修复并重跑测试
- 04检查 SARIF 告警可达性
- 05离线检索本地代码记忆
适用场景
- 01定位与报告问题相关的文件
- 02审查 PR 并发布发现
- 03检查扫描器告警是否可达
- 04从设备端记忆检索代码
MCP 相关
Codna 通过 MCP stdio 服务提供五种仓库工具:分诊、安全可达性检查、记忆检索、修复规划和问题报告。执行工具需免费社区登录;部分工具还需模型提供商密钥或 GitHub 令牌。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx codnaANTHROPIC_API_KEY密钥Provider key for codna_fix's planner — any one of ANTHROPIC_API_KEY (Anthropic), OPENAI_API_KEY (OpenAI/ChatGPT), or GEMINI_API_KEY (Gemini) works (or store one with `codna key set <provider>`). Every tool also requires the one-time free `codna login` device authorization before executing; introspection (initialize/tools/list) needs no credentials.OPENAI_API_KEY密钥Alternative provider key (OpenAI/ChatGPT) for codna_fix's planner — see ANTHROPIC_API_KEY.GEMINI_API_KEY密钥Alternative provider key (Gemini) for codna_fix's planner — see ANTHROPIC_API_KEY.GITHUB_TOKEN密钥Write token, only for codna_fix with open_pr=true (opens a pull request) and codna_report_bug (files an issue).CODNA_API_KEY密钥Codna key from the one-time free `codna login` (device authorization, free community license). Required to execute any of the five tools; introspection (initialize/tools/list) needs none.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Codna
理解。修复。演进。
Agent 会读取你的代码。Codna 能理解代码。
Codna 会先映射代码仓库,再消耗任何 token。随后,它会审查拉取请求、修复 Bug,并证明扫描器发现的问题是否可达。同一个 codna 命令可在你的机器上、GitHub Action 中以及 GitHub App 后端运行。
可在你的机器或云端运行。没有你的密钥,你的代码绝不会离开本机。
安装
pip install codna # or: pipx install codna · uv tool install codna
codna --version
Python 3.12–3.13。提供适用于 Apple 芯片 macOS 和 Linux x86_64 的 wheel。需要将 git 加入 PATH。
无需安装其他内容:不需要 Node、Bun、Docker 或服务器。Agent 运行时已包含在 wheel 中。
本地命令无需 Codna 密钥。fix 和 review 使用你自己的模型提供商密钥,该密钥存储在操作系统密钥链中,且绝不会打印出来:
codna key set anthropic # also: openai, gemini, google, groq, mistral, openrouter, xai, cursor
命令
codna triage . --issue "checkout total is wrong" # suspect files. Deterministic. 0 LLM tokens.
codna review . --pr 123 --post # findings with a verdict on the pull request
codna fix . --tests --apply --max-iterations 3 # patch, re-run your tests, re-fix until green
codna fix <git url> --ref <sha> --issue "…" --open-pr # push a branch and open a pull request
codna secure . --from-sarif results.sarif # which scanner findings are reachable. 0 LLM tokens.
codna fix 会打印根本原因、受影响的符号、影响范围、置信度和回归风险。--open-pr 需要 Git URL 和 GitHub 写入令牌。codna review 会针对每项发现发布一条内联评论,其中包含严重程度、类别和建议块;如果差异在中等和高严重程度下均无问题,还会发布一条 Approve。codna secure 可读取来自 CodeQL、Semgrep、Snyk、Trivy 或其他扫描器的 SARIF 2.1.0。
其他命令:init、status、doctor、login、key、impact、memory export、report。
完整参考:docs.codna.ai/reference/cli。
MCP 服务
将 Codna 作为基于标准输入/输出的 Model Context Protocol 服务运行——它与 CLI 使用相同的引擎,可在 Cursor、Claude Desktop 或你自己的 Agent 中运行:
pipx install "codna[mcp]" # or: pip install "codna[mcp]"
codna mcp # serve over stdio
codna mcp install --client cursor # optional: write the client config for you (or --client claude)
五种工具,每种都返回 JSON;发生故障时会返回 codna_<tool> error: … 文本,且不会导致服务崩溃:
| 工具 | 功能 | 所需条件 |
|---|---|---|
codna_triage | 理解代码仓库,并定位与问题相关的代码。确定性执行,消耗 0 个大模型 token。 | 免费 codna login |
codna_secure | 证明 SARIF 扫描器(CodeQL、Semgrep、Snyk、Trivy)的哪些发现可达。只读,消耗 0 个大模型 token。 | 免费 codna login |
codna_recall | 从本地设备上的记忆中找回代码——语义 + 词法搜索,完全离线。 | 免费 codna login(同时会安装本地设备运行时) |
codna_fix | 找出根本原因并规划修复(默认只读);设置 open_pr=true 后会推送分支并创建真实的 PR。 | 免费 codna login + 提供商密钥(自带密钥;open_pr=true 时还需要 GITHUB_TOKEN) |
codna_report_bug | 向 thyn-ai/feedback 提交 Bug、功能请求或问题。 | 免费 codna login + GITHUB_TOKEN(否则会返回预填的 URL) |
查询信息(initialize/tools/list)无需凭据。执行这五种工具中的任何一种,都需要一次性的免费社区登录(codna login——设备授权,免费社区许可证),之后即可完全离线运行。codna_fix 还需要提供商密钥(自带密钥,例如 ANTHROPIC_API_KEY);codna_report_bug 需要 GITHUB_TOKEN,否则会返回预填的问题 URL;codna_recall 还会使用同一条 codna login 命令安装的本地设备记忆运行时。
完整参考:
docs.codna.ai/guides/mcp。
代码记忆
完成一次免费的 codna login(设备授权)后,代码记忆和回忆功能会在你的机器上运行;登录过程也会安装已签名的本地设备运行时。之后,回忆功能将完全离线运行:无需密钥,也不会发起网络调用。可选的
codna[memory] extra 会添加本地设备语义重排序器;不安装时,回忆功能会按词法相关性排序。
哪些内容会离开你的机器
- 代码仓库映射、分诊、回忆和
impact均离线运行,不涉及模型。 fix和review会在你的密钥保护下,向你选择的提供商发送一个针对特定问题的证据包,而非整个代码仓库。- 始终启用密钥脱敏,且无法关闭。
codna.yaml中的privacy.egress: fail-closed会在未禁止网络访问时拒绝运行测试,并在审查期间跳过注册表查询。- 源码分发包不包含运行时二进制文件、密钥、
.env文件和日志。
Links
- Homepage: https://codna.ai
- Documentation: https://docs.codna.ai
- Source (public mirror): https://github.com/thyn-ai/codna-cli
- Security: https://codna.ai/security
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。