OpenGrok
oracle.github.io
What it is
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.
Spec sheet
- Purpose
- OpenGrok is a Java source code search and cross-reference engine for searching, cross-referencing, and navigating source trees.Read 5 Oct 2026 · oracle.github.io
- Deployment
- Setup requires creating an index and deploying the web application; the guide is primarily for Unix-like systems and says Windows setup is similar with adjusted commands and paths.Read 5 Oct 2026 · github.com
- API
- The web application provides a REST API under `/api/v1/`.Read 5 Oct 2026 · github.com
- Security
- OpenGrok provides a granular authorization framework, while authentication is handled by the application server or a reverse proxy.Read 5 Oct 2026 · github.com
- Support
- The project directs users to discussions and mailing lists, and asks users to report bugs or feature requests through GitHub Issues.Read 5 Oct 2026 · oracle.github.io
- API token security
- API bearer tokens require HTTPS unless the web application is configured to allow tokens over an insecure channel.Read 5 Oct 2026 · github.com
- Code browsing
- Its read-only web interface provides file history, revision diffs, directory history, and syntax-highlighted cross-references.Read 5 Oct 2026 · github.com
- Extensibility
- Plugins can add support for programming languages or revision control systems.Read 5 Oct 2026 · github.com
- Maintenance
- The project says it is maintained by enthusiasts and volunteers from around the world.Read 5 Oct 2026 · oracle.github.io
- Release
- The releases page lists version 1.14.19 as the latest release and describes it as allowing Java 25.Read 5 Oct 2026 · github.com
- Repository integrations
- The supported revision control systems include Git, Mercurial, Subversion, CVS, Perforce, ClearCase, Bazaar, Monotone, Razor, RCS, SCCS, Teamware, and AccuRev.Read 5 Oct 2026 · github.com
- Requirements
- The setup guide lists Java 21 through 25, Universal Ctags, a servlet container such as Tomcat 10.x, and a recent browser for clients.Read 5 Oct 2026 · github.com
- Resource needs
- The guide says the indexer is usually run with an 8 GB JVM heap and the web app needs more memory.Read 5 Oct 2026 · github.com
- Search features
- It searches full text, definitions, symbols, paths, and revision history, with subtree searches, wildcards, and date-range filters.Read 5 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Searches symbols, definitions and revision history.
- Provides syntax-highlighted cross-references and revision diffs.
- Supports many revision control systems.
- Offers a REST API and granular authorization.
- Free and open source under the CDDL license.
Limits
- Setup requires creating an index and deploying the web app.
- Requires Java 21 through 25 and Universal Ctags.
- Guide is primarily for Unix-like systems.
Who it suits
OpenGrok suits teams that want to search and browse source trees through a self-hosted web application. It may fit codebases using its supported revision control systems or plugins for additional language support.
OpenGrok in depth
Read the full write-up
OpenGrok is a self-hosted Java engine that indexes source trees for search, cross-reference and history browsing. It is best suited to development teams able to operate their own web application and indexing process. The trade-off is substantial control and repository coverage in exchange for infrastructure work and ongoing maintenance.
Overview
OpenGrok turns a codebase into a navigable, read-only web index. It is useful when developers need to locate implementation details, follow symbols across files or understand how a directory evolved, without granting the browser an editing role. The project is open source under the CDDL license, so there is no software charge; the operational cost is the Java-based deployment, indexing capacity and administration.
Key features
Search covers full text, definitions, symbols, paths and revision history. Subtree searches, wildcard queries and date-range filters make large repositories more manageable and let investigators focus on a branch of the tree or a period of change. Regex search is not supported, which is a meaningful limitation for teams whose normal workflow depends on regular-expression matching.
The web interface is read-only but rich in context. Syntax-highlighted cross-references connect related code, while file history, revision diffs and directory history expose how an implementation changed. That combination favors code archaeology, review and onboarding; it is not a replacement for an editor or a write-enabled code-hosting interface.
Repository support is unusually broad: Git, Mercurial, Subversion, CVS, Perforce, ClearCase, Bazaar, Monotone, Razor, RCS, SCCS, Teamware and AccuRev are supported. This matters to organizations with inherited or mixed version-control estates. Plugins can add programming-language or revision-control support, providing an extension path when a standard integration is missing, although doing so adds another maintenance responsibility.
A REST API is exposed at /api/v1/, allowing other applications and internal tooling to consume the web application's capabilities. Authorization is granular, while authentication is delegated to the application server or a reverse proxy. Bearer tokens require HTTPS unless the application is explicitly configured to permit tokens over an insecure channel, so secure deployment is essential for API use.
Pricing
The sole OpenGrok plan costs free. It is an open-source project distributed under the CDDL license, with no seat quota, usage allowance or trial expiration stated. This is the right price structure for teams that can absorb hosting and administration costs; it does not turn the product into a managed service, and there is no paid tier that buys vendor-operated infrastructure or support.
Platforms
OpenGrok is offered for API, Linux, macOS, self-hosted, web and Windows use. Deployment requires creating an index and deploying the web application. The setup guidance is primarily Unix-oriented; Windows installation follows the same model with adjusted commands and paths. The stated requirements include Java 21 through 25, Universal Ctags, a servlet container such as Tomcat 10.x and a recent browser for clients. The release page identifies version 1.14.19 as the latest release and notes Java 25 support.
Resource planning is important. The guide says the indexer is usually run with an 8 GB JVM heap and that the web application needs additional memory. Smaller environments may therefore need careful scoping or tuning, while larger code estates should budget for indexing and application capacity separately.
Who it's for
OpenGrok fits engineering organizations that own their source infrastructure, need one searchable view across multiple repository technologies and value historical context as much as current text search. It also suits teams willing to integrate authentication, authorization and API clients into an existing server environment. It is a poor choice for users wanting hosted search with no servlet-container, indexing or memory administration, and for workflows centered on regex queries or direct code editing.
Pros and cons
Pros
Broad query coverage: definitions, symbols, paths, full text and revision history support both discovery and historical investigation.
Strong browsing context: cross-references, diffs and directory history help explain relationships and change over time.
Wide repository coverage: support for many established version-control systems is valuable in heterogeneous estates.
Extensible and integrable: plugins and the /api/v1/ REST API provide ways to adapt and automate the index.
No license fee: the CDDL-licensed project costs nothing.
Cons
Operational overhead: users must build indexes and deploy a web application rather than subscribe to a hosted service.
High memory expectations: an 8 GB JVM heap is the usual indexer guidance, with further memory needed by the web app.
No regex search: regular-expression-centric workflows lose a familiar query method.
Security is deployment-dependent: authentication sits with the application server or reverse proxy, and API tokens require HTTPS in normal configurations.
Read-only browsing: it supports investigation and review, not editing source files.
Alternatives
For a broader comparison of this category, see the Code Search Tools list.
Choose ast-grep instead when an API, extension or web-capable tool with a free plan across major desktop platforms better matches your workflow. Code Search is the stronger fit if you want a free Community plan with unlimited users, find-and-replace, CLI and MCP access, plus SCIP code intelligence. Semantic Designs Source Code Search Engine is worth considering for its evaluation allowance of 10,000 lines across Java, COBOL, C++ and pseudo-code. Sourcebot suits readers seeking a freemium, self-hosted/API/web option with a free Basic plan. Pick sqry for a local, MIT-licensed open-source tool on Linux, macOS or Windows. Chromium is a general free, open-source browser rather than a direct code-search counterpart. Shebe offers local code search under Apache-2.0 across self-hosted and desktop environments. Understand is the alternative when a commercial, freemium product with an annual subscription and trial is acceptable.
Verdict
Choose OpenGrok if you need a free, extensible index of source and revision history across diverse repositories and have the staff to run Java, Ctags, a servlet container and its security boundary. Look elsewhere if you need managed hosting, regex search, editing, or a product whose infrastructure and authentication are handled for you.
Verdict
OpenGrok combines source search, history views and cross-referencing in a free, self-hosted tool. Review its deployment requirements and authentication setup before adopting it.
Where Specifiction places it
- Code Search Tools#11 of 427.8