CLI Tools2026年5月12日·1 分钟阅读

GritQL — Declarative Code Rewrite CLI

GritQL is a declarative language + CLI for searching and rewriting codebases with snippet-like patterns, making large refactors repeatable and reviewable.

Agent 就绪

这个资产可以被 Agent 直接读取和安装

TokRepo 同时提供通用 CLI 命令、安装契约、metadata JSON、按适配器生成的安装计划和原始内容链接,方便 Agent 判断适配度、风险和下一步动作。

Native · 94/100策略:允许
Agent 入口
任意 MCP/CLI Agent
类型
Cli
安装
Single
信任
信任等级:Established
入口
README.md
通用 CLI 安装命令
npx tokrepo install df1ae063-451e-4b1f-9061-4867afc21ce4

简介

GritQL 是一套“像写代码片段一样写规则”的声明式查询语言 + CLI,可在大仓库里可重复地搜索与重写代码,并把迁移输出为可审查、可回滚的 diff,适合团队长期维护 codemod 与迁移规则库。

  • 适合谁: 需要反复做迁移(日志替换、API 改名、批量修复)且仓库规模很大的团队
  • 可搭配: 多语言仓库(TS/Python/Go 等)、CI codemod、基于分支的 code review
  • 准备时间: 5 分钟

实战建议

  • 面向大仓库:README 提到可扩展到 10M+ 行代码级别
  • 可复用规则:内置模块系统并提供 200+ 标准 patterns(README)

适合 Agent 的“批量改代码”闭环

在 Agent 编码场景里,最容易出问题的是:同一种改法在不同文件里不一致,导致 review 很痛苦。

GritQL 的关键价值在于把改动变成声明式规则

  1. 先用“只搜索不改写”的模式摸清影响面;
  2. 再加上 => 规则做重写;
  3. 先在小目录试跑,再扩大到全仓;
  4. 最后像正常迁移一样走测试、lint 和 code review。

README 给了一个典型例子:

grit apply '`console.log($msg)` => `winston.log($msg)`'

如果仓库很大,把它当成 CI 批处理任务更稳:一次生成可审查 diff,然后把规则沉淀为以后可复用的 codemod。

FAQ

一定要懂 AST 吗? 答:不需要,README 强调“像写代码片段一样”的模式也能作为查询。

只能改 JavaScript 吗? 答:不是,它支持多种目标语言(TS/Python/Go 等),以官方支持矩阵为准。

怎么保证安全? 答:在分支里跑、先小后大、最后用测试与 code review 把关。

🙏

来源与感谢

Source: https://github.com/biomejs/gritql > License: MIT > GitHub stars: 4,493 · forks: 121

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产