
The compiler-accurate, format-preserving code model that makes safe, automated modernization possible across thousands of repositories.
Most tools rely on ASTs or text search, which weren’t built for today’s massive, polyglot, multi-repo systems.
The result: manual review, fragile scripts, and stalled modernization when enterprises need to move thousands of repositories forward safely.


Deep code understanding.
Safe, automated modernization.

The right change at the right cursor position, across hundreds of millions of lines of code, without breaking anything.
Type attribution in the LST reveals what every variable, method, and symbol actually refers to—not just what it looks like. It resolves types across files, libraries, and even transitive dependencies, enabling tools to distinguish similar-looking code, avoid false positives, and make precise, safe changes.
Type attribution makes code transformations trustworthy.
The LST retains formatting details—indentation, spacing, imports, and comments—so code changes look and feel like they were written by the team itself. This matters: developers are far more likely to review, trust, and merge changes when presented in clean, idiomatic diffs.
Format fidelity turns automation from disruptive to seamless.


With the LST, AI doesn’t just see that a method exists—it understands how that method connects to the rest of the system, what it depends on, and what downstream effects a change might trigger. This enriched context makes AI more useful for analysis, summarization, and identifying what should change.
Leveraging OpenRewrite recipes as tools, AI agents can access structured insights in the form of data tables and reports, turning the LST into a living source of organizational knowledge. These recipes make analysis auditable and repeatable, and when change is required, they apply it safely, consistently, and at scale.
The long-term value isn’t just in the model—it’s in the data that guides it, and the systems that operationalize its output.
Find API calls, dependences, or type references across repos.
Identify and patch vulnerable code paths programmatically
Safely migrate frameworks/libraries
Search + enforce coding conventions automatically
More concise, complete, and accurate data fed into models
Dive deeper into the LST and how it enables automated refactoring and analysis at scale.
Experience how the Lossless Semantic Tree powers precise, automated refactoring across thousands of repositories—all within the Moderne platform.
Built on the Lossless Semantic Tree, Moderne unifies large-scale code transformation—bringing accuracy, consistency, and automation to every layer of your stack.
A Lossless Semantic Tree (LST) is a compiler-accurate code model that adds rich type and semantic attribution while preserving formatting, comments, and style. This fidelity enables precise code search and safe, automated refactoring across large, multi-repository codebases.
Unlike traditional ASTs, which strip out formatting, comments, and type information, the LST preserves every detail—while adding rich semantic context. This full fidelity makes both search and transformation accurate, and ensures the results are idiomatically consistent with how developers write code.
Semantic code search goes beyond text-based queries. It allows developers to search based on code meaning—like method calls, types, or API usage—rather than just strings. With LST, semantic searches are precise and reliable across codebases.
By combining semantic understanding with full code fidelity, the LST enables automated refactorings that are accurate, safe, and developer-friendly—producing clean, minimal diffs that teams trust and merge.
Yes. While the LST originated with Java, it also supports JavaScript, TypeScript, COBOL, and infrastructure-as-code formats like XML and YAML. It’s designed for polyglot enterprise environments where modernization spans many languages—with support for C#, Python, and more on the roadmap.
When automated code changes are idiomatically consistent with the originating source code, developers are much more likely to accept the change. If comments vanish, developers lose trust in automation, and if formatting changes unexpectedly, pull requests become noisy and unreviewable. Only the LST preserves the format: indentation, spacing, imports, and comments. Diffs are uncluttered, enabling developers to focus on the change at hand.
Yes. The LST provides a rich, structured view of code that gives AI models deeper context than plain text or traditional ASTs. This improves the quality of semantic search, code summarization, and issue detection—making AI more useful and reliable in large-scale code analysis workflows.