ast-grep vs OpenGrok
ast-grep
ast-grep.github.ioOpenGrok
oracle.github.ioSide by side
| Figure | ast-grep | OpenGrok |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | Yes | Yes |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · Code Search Tools | 9.1 (#1) | 7.8 (#11) |
| Purpose | ast-grep is a fast, polyglot tool for structural code search, linting, and rewriting at scale. | OpenGrok is a Java source code search and cross-reference engine for searching, cross-referencing, and navigating source trees. |
| Support | The project directs users with questions or issues to GitHub or Discord and also points to Stack Overflow and Reddit. | The project directs users to discussions and mailing lists, and asks users to report bugs or feature requests through GitHub Issues. |
Plans
In their own words
ast-grep
ast-grep is a free, open-source tool for structural code search, linting, and rewriting. It matches patterns against syntax-tree nodes, helping developers locate and change code across a codebase rather than searching plain text. Its CLI can preview and apply rewrites interactively, and scan configurable YAML rules with error, warning, info, or hint severity. Rules can combine pattern, kind, regex, relational, and composite conditions, and CLI commands help create and snapshot-test them. The project says it supports more than 20 languages and can load custom languages. JavaScript and WebAssembly APIs allow programmatic syntax-tree work; a browser playground offers a way to try patterns without local installation. Editor options include a VS Code extension and language-server setups, including for Vim and Neovim. The tool is free, has a web interface, and is distributed through package managers or built from source. Its FAQ notes that some advanced static-analysis information is unsupported, and one rule cannot target multiple languages at once.
OpenGrok
OpenGrok is a Java source code search and cross-reference engine for searching and navigating source trees. It searches full text, definitions, symbols, paths and revision history, with subtree searches, wildcards and date-range filters. Its read-only web interface provides syntax-highlighted cross-references, file and directory history, and revision diffs. Supported revision control systems include Git, Mercurial, Subversion, CVS, Perforce, ClearCase, Bazaar, Monotone, Razor, RCS, SCCS, Teamware and AccuRev. Plugins can add support for programming languages or revision control systems. The web application provides a REST API under `/api/v1/` and a granular authorization framework; authentication is handled by the application server or a reverse proxy. Setup requires creating an index and deploying the web application. The guide lists Java 21 through 25, Universal Ctags and a servlet container such as Tomcat 10.x. OpenGrok is free and open source under the CDDL license, and is maintained by volunteers. Support and project requests go through discussions, mailing lists and GitHub Issues.