Guiding Principles
Codegen was developed by working backwards from real-world, large-scale codebase migrations. Instead of starting with abstract syntax trees and parser theory, we started with the question: “How do developers actually think about code changes?”
This practical origin led to four core principles that shape Codegen’s design:
Intuitive APIs
Write code that reads like natural language, without worrying about abstract syntax trees or parser internals. Codegen provides high-level APIs that map directly to the transformations developers want to perform:
No Sharp Edges
Focus on your high-level intent while Codegen handles the intricate details.
Codegen operations handle the edge cases - it should be hard to break lint.
Performance through Pre-Computation
Codegen frontloads as much as possible to enable fast, efficient transformations.
It is built with the insight that each codebase only needs to be parsed once per commit.
Learn more about parsing the codebase graph in the How it Works guide.
Python-First Composability
Codegen embraces Python’s strength as a “glue language” - its ability to seamlessly integrate different tools and APIs. This makes it natural to compose Codegen with your existing toolchain:
- Build complex transforms by combining simpler operations
- Integrate Codegen with your existing tools (linters, type checkers, test frameworks, AI tools)
Python’s rich ecosystem makes it ideal for code manipulation tasks. Codegen is designed to be one tool in your toolbox, not a replacement for your entire workflow.
Was this page helpful?