Polyscan

GitHub App · 公开仓库免费

整个代码库,
每周审计。

逐个 PR 的审查看不到整个代码库的劣化。开源静态分析在整个仓库中找出候选问题,AI 智能体阅读实际代码来核实其中重要的部分,并把建议优先修复的地方整理为最多 10 条建议,提交到 GitHub Issue。

公开仓库可免费使用全部功能,无需绑定信用卡。Pro 为私有仓库提供同样的功能。

Audit agent
Health
71▼ 3 this week

polyscan analyze . → 142 findings

  • read_file api/handlers.py:190-262

    ▲ confirmedCC 31, three jobs in one function

  • read_file services/user.py:45-62 + admin.py:23-40

    ▲ confirmed87% clone, same validation twice

  • read_file core/plugins.py:1-44

    ● dismissed"dead code" is a documented plugin hook

142 findings → 6 recommendations · filed as GitHub Issue
覆盖你的技术栈PythonTypeScriptJavaScriptGoRustC++

审计智能体

静态分析负责测量,智能体负责判断。

静态分析足够全面,但它会把误报和有意为之的设计与真正的问题一样机械地标记出来。Polyscan 把这些输出当作起点,像人类审查者一样阅读代码加以核实。

MEASURE

测量整个仓库

开源分析引擎(Python 用 pyscn,JavaScript、TypeScript、Go、Rust、C++ 用 polyscan)在整个仓库范围内测量复杂度、重复、死代码、依赖关系和类设计,每次都用同一把尺子。

INVESTIGATE

阅读代码进行验证

智能体挑出最重要的发现,跨文件打开其背后的函数和类。按照设计,它会在建议合并重复代码之前读完每一处副本,并搁置代码自身已说明原因、或符合项目自身设计方向的发现。

REPORT

聚焦到建议修复的地方

对照代码后仍然成立的发现,会整理为最多 10 条建议,每条都注明文件、函数和行号,并以 8 种语言之一写入 GitHub Issue。

详细了解工作原理

对照代码核实

不是警告清单,而是可以照着做的审计结果

静态分析工具会输出数百条警告,哪些是真问题却要你自己判断。Polyscan 替你完成这份判断的第一轮。

仅用静态分析工具

  • 数百条警告原样罗列
  • 分不清误报和有意为之的设计
  • 不知道该先修哪里
  • 最终没人再看输出

Polyscan

  • 智能体阅读重要发现背后的实际代码加以核实
  • 对照代码判断是否为误报或有意为之的设计
  • 精简为最多 10 条建议,附文件、函数和行号
  • 每周更新 Issue,并跟踪与上次相比的变化

功能

持续守护你的代码库

AUDIT

每周审计整个仓库

每周测量整个仓库的复杂度、重复、死代码和依赖关系。智能体阅读发现背后的代码进行验证,并通过 GitHub Issue 报告该修复的地方以及与上次相比的变化。

PR

在合并前发现新的劣化

分析发生变化的代码,在合并前指出新增的复杂度或重复,以实时反馈补充每周测量。

PR Review Demo

YAML

简单的 YAML 配置

使用简单的 YAML 文件自定义 Polyscan 行为。无需复杂设置。

  • 报告语言: en, ja, zh, ko, es, fr, de, pt
  • 分析目标目录
  • 审计间隔: daily, weekly, monthly(私有仓库的 daily 需 Pro)
  • PR 审查: pr_review: true(默认关闭,私有仓库需 Pro)

.github/polyscan.yml

# 报告语言 (默认: en)
language: ja

# 目标目录 (默认: 全部)
target_directories:
  - src/

# 审计间隔 (默认: weekly)
audit_interval: weekly

# PR 审查 (默认: false,私有仓库需 Pro)
pr_review: true

测量项

从测量值出发,而不是猜测。

智能体的每次调查,都从在整个仓库上测得的这五项结构指标开始。

DEAD

死代码

通过遍历控制流图而非猜测,找出可以安全删除的不可达代码。

DUP

重复代码

找出值得合并的复制粘贴和结构相似代码——基于树编辑距离的 Type 1-4 克隆检测。

CC

复杂度

按圈复杂度对难以阅读、难以测试的函数排序,让你知道从哪里入手。

DEP

依赖关系

循环导入和不稳定的模块依赖,以及代码库实际形成的模块社区。

CBO

类设计

用 CBO 耦合度和 LCOM 内聚度衡量那些做得太多或依赖太多的类。

全貌测的是
结构。
查看引擎

开源

引擎是开源的。

Polyscan 使用的分析引擎以 MIT 许可证开源。把它作为 CLI 在本地运行,就能看到智能体作为起点的同一组测量值。

Python

uvx pyscn@latest analyze .

JavaScript / TypeScript / Go / Rust / C++

npx polyscan analyze .

价格

开源项目免费

所有公开仓库免费使用全部功能,只为私有仓库付费

免费

$0/month
  • 公开仓库数量不限,全部功能
  • 公开仓库的 PR 审查与每日审计
  • 最多 2 个私有仓库(每周审计)
免费开始

Pro

14天免费试用
$10/月
  • 免费版全部功能
  • 最多 5 个私有仓库
  • 私有仓库的 PR 审查
  • 私有仓库的每日审计
开始14天免费试用

随时取消

FAQ

常见问题

QPolyscan 是什么?

一个定期审计 GitHub 仓库的 AI 智能体。它用开源静态分析引擎(Python 用 pyscn,JavaScript、TypeScript、Go、Rust、C++ 用 polyscan)测量整个仓库,再阅读重要发现背后的实际代码加以核实,并通过 GitHub Issue 建议优先修复的地方。

Q这和我自己运行静态分析工具有什么不同?

分析工具会输出所有发现,包括误报和有意为之的设计,筛选工作留给你。Polyscan 的智能体替你完成第一轮筛选:它跨仓库阅读重要发现背后的代码,搁置代码自身已说明原因的发现,并精简为最多 10 条附文件、函数和行号的建议。这些建议是 AI 的判断,请把它们当作带优先级的起点,而不是定论。

Q这和 AI 代码审查工具有什么不同?

大多数 AI 审查只看 Pull Request 的差异。Polyscan 每周测量整个仓库,并以这些测量值为起点展开调查,因此它的发现基于每次用同一标准取得的数值,而不是印象。PR 审查也可以按需开启。

Q我的代码在哪里处理?

你的代码由运行在我们本地部署环境中的本地 LLM 分析,不会发送到外部生成式 AI API。我们也不会保存代码:报告发布到 GitHub 后,代码即被丢弃。

Q支持哪些语言?

支持 Python、JavaScript、TypeScript、Go、Rust 和 C++。所有语言都会测量复杂度和重复代码。死代码、依赖关系和类设计需要导入图和类模型,目前只有 Python 和 JavaScript/TypeScript 后端会构建,因此在 Go、Rust、C++ 的评分中这些维度会被排除,而不是计为干净。

Q它是开源的吗?

分析引擎(pyscn、polyscan 和共享核心)以 MIT 许可证开源,可作为 CLI 免费运行。在此之上加入智能体并代你运行的 GitHub App,对公开仓库免费开放全部功能,私有仓库需要 Pro。

安装

给你的仓库配一位审计员

只需在 GitHub 上安装。公开仓库可免费使用全部功能,智能体每周通过 GitHub Issue 向你报告。

免费开始审计