英文原文: https://argusic.com/subject/ast-grep

ast-grep

一个用于代码结构化搜索、 lint 和重写的 CLI 工具,使用 Rust 编写。

可运行来源:GitHub项目主页RustMITcommit 29285d167573

Rust,MIT 许可证. 项目的自我描述:ast、babel、codemod、codereview、command line、command line tool、grep 和 linter.

ast-grep 可以运行。一个 Argusic agent 在一台没有 GPU 的干净机器上用 6 分钟完成了安装,没有遇到任何错误,整个会话都被记录了下来。

ast-grep 0.45.3 installed via npm, pip, and cargo build from source; all 202 unit/integration tests pass; search, scan, rewrite, and test subcommands verified working on real code.

agent 在干净的机器上最终得到的结果,用它自己的话说。 测量方式

每一次都由 Argusic 在全新机器上实测。每个数字都链接到对应的证据。 Argusic 评分 100,满分 100(该项目各次运行得分的平均值)。

概览

结论
可运行
Argusic 评分
100 / 100
验证运行的成本
0.03 USD(实测)
已记录的运行次数
3
最近测试
星标
16,445
fork 数
491
未关闭的 issue
53
关注者
41
大小
11 MB
创建于
最近推送

项目数据来自 GitHub,链接见本页顶部,更新于 。测试数据由 Argusic 提供 (CC BY 4.0);每个数字都链接到一个运行页面,附完整的 log、录屏及其 sha256 哈希。

测量了什么

来自决定该结论的那次运行。 每一行都是记录下来的数值,而非估算。

安装时间
6 分钟
从冷启动机器到完成
9 分钟
遇到并修复的错误
遇到 0 个,在无人协助的情况下修复了 0 个
结果是如何证明的
cargo test --package ast-grep exited 0, 202 passed 0 failed 1 ignored; ast-grep -p 'pub mod $A' --lang rust matched 8 nodes; ast-grep scan with custom YAML rule correctly flagged console.log as error
使用的模型 token
33,369
测试的确切 commit
29285d167573
容器镜像
sha256:cdd920bce783

没有测量什么

另一半内容,让你清楚看到这些证据能说明到什么程度。缺失的数据就标为缺失,从不填补。

GPU 显存峰值
本次运行在 CPU 机器上进行,没有可采样的 GPU
长时间运行的表现
每次尝试都使用文档中最小的设置和固定的时间预算,因此这里测量的是它能否运行,而不是它在负载下的表现

观看会话

完整的运行过程,从一台干净的机器开始,按实际速度播放。没有剪辑,也没有加速。

第 1 次尝试的录屏,运行于 。上述结论来自另一次尝试,因此请把这段视频当作一次会话来看,而不是当前的结果。 制作该视频所用的终端录屏是证据,连同 sha256 指纹一起保存;视频只是由它渲染而成。 在你点击播放之前,不会从视频托管方加载任何内容。

录屏的结尾

决定该结论的终端会话的最后几行,与录制时完全一致。

tokens used
33,369
All three installation methods (npm, pip, cargo) work, and the test suite passes. Here's the final …
**Installation methods verified:**
- **npm** — `@ast-grep/cli` installed globally; binary works at `/home/runner/.npm-global/bin/ast-g…
- **pip** — `ast-grep-cli` installed in a Python venv at `/tmp/ast-grep-venv/bin/ast-grep`
- **cargo (from source)** — `cargo build --release --package ast-grep` succeeded; binary at `/work/…
**Tests (cargo):** 202 tests passed (141 unit + 2 help + 16 run + 38 scan + 5 verify), 1 LSP test i…
**Real behavior verified:** `ast-grep -p 'pub mod $A' --lang rust crates/core/src/lib.rs` returned …
**Errors encountered:** None. The only friction was `npm global install` needing `--prefix` due to …
**No mock needed:** The tool does not require third-party API keys.
Final state: `ast-grep` 0.45.3 is installed and fully functional — search, scan (lint with YAML rul…

回放完整会话,从干净的机器到此刻的每一条命令。

测试方式

一个 agent,一个容器,没有人工协助。它按照项目自身文档所写的方式安装项目,运行它,并修复出错的地方。下面的一切都按实际发生的过程记录:终端会话、log 和确切的 commit。 完整方法论.

优势与局限

均为实测事实,而非观点。内容是如何撰写的.

顺利的部分

  • 在干净的机器上达到了运行状态,会话有完整记录。
  • 用 6 分钟完成安装。
  • 过程中没有任何故障:从克隆到运行,零错误。
  • 无需 GPU 即可运行,因此启动它并不需要 GPU。
  • 采用 MIT 许可证,以其托管平台报告的信息为准。
  • 已测量 3 次,因此结果并非偶然。

适合用于

  • 在笔记本电脑或小型服务器上试用:它无需 GPU 即达到了运行状态。
  • 快速评估:克隆后 6 分钟它就已经运行起来。
  • 按照它自己的 README 操作:文档中的步骤无需任何修复即可走通。

同一领域中也测试过的项目

这里的每个项目都由 Argusic 在干净的机器上安装并运行过。未经测试的项目不会出现在这里。

运行历史

测试者尝试结果评分成本 USD时间
Argusic Runner3/3可运行100.000.03
Argusic Runner2/3可运行100.000.02
Argusic Runner1/3可运行100.000.25

主题 (来自 GitHub)

astbabelcodemodcodereviewcommand-linecommand-line-toolgreplinterrefactoringrustsearchstatic-analysisstructural-searchtree-sittertypescript

嵌入徽章

用于项目 README 的 Markdown。徽章链接回本页;使用条款见 条款页面.

[![Tested by Argusic](https://argusic.com/badge/ast-grep.svg)](https://argusic.com/subject/ast-grep)

常见问题

ast-grep 能运行吗?
是的。ast-grep 可以运行. Argusic 在一台干净的机器上安装并启动了它,用时 6 分钟,过程中遇到 0 个错误,并记录了整个会话。
Argusic 是如何测试 ast-grep 的?
在一台全新的一次性机器上进行,每条命令都被记录,仓库固定在 commit 29285d167573。共记录了 3 次尝试,完整方法见方法论页面。
测试 ast-grep 花了多少钱?
得出该结论的那次运行花费 0.03 USD:这是真实的算力和模型成本,而不是按每百万 token 计的标价。该数字记录在那次运行的页面上。
ast-grep 安装需要多长时间?
在决定该结论的那次运行中,从干净的机器到运行状态用了 6 分钟。这是一次实测的尝试,不是平均值。
ast-grep 需要 GPU 吗?
启动它不需要。Argusic 在一台没有 GPU 的机器上让它达到了运行状态。
安装 ast-grep 时会出现什么问题?
在已记录的运行中没有出现任何问题:从克隆到运行,零错误。
ast-grep 的证据在哪里?
全部 3 次已记录的运行都在本页上,每次都链接到完整的 log 和终端录屏,并连同 sha256 指纹一起保存,因此无法被悄悄篡改。

Discussion