Freedom251 › Code Search Tools
Comby

What Comby is
Comby searches and changes code by matching lightweight templates against its structure. It recognizes basic syntax in code, strings, and comments, and matches balanced parentheses, brackets, and braces while accounting for comments and string literals. Basic parsers are listed for languages including C/C++, C#, Go, Java, JavaScript, Python, Rust, Swift, and TypeScript; a generic matcher covers other formats and languages. Built-in rewrite properties can change letter case and provide match lengths, positions, and file context.
The tool is suited to coarse syntactic matching, large-scale refactoring, and one-off code changes. An interactive review mode lets users inspect proposed changes. Comby can be used from its command line, through Python bindings, or through HTTP requests to a server running on the user's machine. The project documents installation with Homebrew on macOS, a shell installer on Ubuntu, Ubuntu on WSL for Windows, and Docker; it also describes building from source. Linked editor projects include an Emacs package and a prototype VS Code extension. Other listed uses include compiler fuzzing, test case reduction, editor find and replace, and academic research. Comby is free and open source under Apache-2.0, and supports codebase indexing and regex search.
Who it suits
Comby suits developers who need to search code structure or make targeted changes across a codebase, from broad refactoring to one-off edits. It is also suited to projects involving compiler fuzzing, test case reduction, editor find and replace, or academic research.
What it does well
- Matches balanced delimiters while accounting for comments and strings.
- Basic parsers cover a range of programming languages.
- Interactive review helps inspect proposed changes.
- Usable through the CLI, Python bindings, or local HTTP server.
- Free and open source under Apache-2.0.
What to know first
- Indentation is not significant, limiting matches for indentation-sensitive structures.
- Not well-suited to styling or formatting changes such as line wrapping.
- API rewrite ranges report line and column as -1.
- Repeated rewrite hole identifiers currently return only the first range.
Getting started
- Visit https://comby.dev/ for project information and getting-started instructions.
- Install on macOS with Homebrew, Ubuntu with the shell installer, Windows through Ubuntu on WSL, or Docker.
- Build from source for other platforms or local development.
- Use the command line, Python bindings, or HTTP requests to a server running on your machine.
Verdict
Choose Comby for structural code search and refactoring where lightweight syntactic matching is sufficient. Look elsewhere for indentation-sensitive matching or formatting work such as inserting line breaks at a set width.
Questions
Is Comby free?
Yes. It is free and open source under the Apache-2.0 license.
Which platforms does Comby support?
It lists API, Linux, macOS, self-hosted, and Windows support. Installation instructions cover macOS, Ubuntu, Windows through Ubuntu on WSL, and Docker.
Which languages can Comby match?
Basic parsers are listed for C/C++, C#, Go, Java, JavaScript, Python, Rust, Swift, and TypeScript. A generic matcher handles other formats and languages.
Can I use Comby in an editor?
The projects page links to an Emacs package and a prototype VS Code extension.
What limitations apply to rewrite ranges?
The API currently reports line and column as -1 for rewrite ranges. Repeated hole identifiers in a rewrite template currently report only the first range.
Where can I get help?
The help page directs users to the Gitter channel for usage questions and help writing patterns.
Facts from Comby's own pages
- API limitation
- The API documentation says rewrite ranges currently report line and column as -1, and repeated hole identifiers in a rewrite template currently report only the first range. · comby.dev, 4 Oct 2026
- Best-fit work
- Comby is suited to coarse syntactic matching and refactoring, while the FAQ says it is not well-suited to styling or formatting changes such as inserting line breaks at a set width. · comby.dev, 8 Oct 2026
- Editor integrations
- The projects page links to an Emacs package and a prototype VS Code extension. · comby.dev, 4 Oct 2026
- Installation
- The getting-started page documents installation on macOS with Homebrew, Ubuntu with a shell installer, Windows through Ubuntu on WSL, and Docker. · comby.dev, 8 Oct 2026
- Install options
- The site provides installation instructions for macOS, Ubuntu, Windows through Ubuntu on WSL, and Docker, and also describes building from source. · comby.dev, 4 Oct 2026
- Integration
- Comby can be used through Python bindings, its command line, or HTTP requests to a server run on the user's machine. · comby.dev, 4 Oct 2026
- Integration options
- Comby provides an API reference for building or integrating other tools, and the projects page lists an Emacs package and a prototype VS Code extension. · comby.dev, 8 Oct 2026
- Interactive review
- Comby supports an interactive review mode for proposed changes. · github.com, 4 Oct 2026
- Language awareness
- Comby understands basic syntax for code, strings, and comments in many languages. · comby.dev, 8 Oct 2026
- Language coverage
- Comby lists basic parsers for languages including C/C++, Go, JavaScript, Python, Rust, and TypeScript, with a generic matcher for other formats. · comby.dev, 4 Oct 2026
- Language support
- Comby has basic parsers for languages including C/C++, C#, Go, Java, JavaScript, Python, Rust, Swift, and TypeScript, plus a generic matcher for other formats and languages. · comby.dev, 8 Oct 2026
- License
- The public comby-tools/comby GitHub repository identifies its license as Apache-2.0. · github.com, 8 Oct 2026
- Notable limitation
- Comby does not currently treat indentation as significant, which limits support for matching indentation-sensitive structures such as Python blocks. · comby.dev, 8 Oct 2026
- Purpose
- Comby is a tool for searching and changing code structure using lightweight templates. · comby.dev, 8 Oct 2026
- Refactoring
- The site describes Comby as useful for large scale refactoring and one off code changes. · comby.dev, 4 Oct 2026
- Rewrite helpers
- Built-in rewrite properties can change letter case and provide match lengths, positions, and file context. · comby.dev, 8 Oct 2026
- Security and compliance
- The opened product and documentation pages do not state security certifications or compliance claims. · comby.dev, 4 Oct 2026
- Self hosting
- The project can be built from source, and the getting-started page describes building it for other platforms or local development. · comby.dev, 8 Oct 2026
- Structural matching
- Comby matches balanced delimiters such as parentheses, brackets, and braces while accounting for comments and string literals. · comby.dev, 8 Oct 2026
- Support
- The help page directs users to the Gitter channel for usage questions and pattern-writing help, and to GitHub issues for installation problems. · comby.dev, 8 Oct 2026
- Use cases
- Documented uses include large-scale refactoring, structural code search, fuzzing, editor find-and-replace, and academic research. · comby.dev, 8 Oct 2026
Where Comby stands on Freedom251
- Code Search Tools#7 of 42
- Code Refactoring Tools#6 of 22
