Codellm-Devkit (aka. CLDK) is a multilingual program analysis framework that bridges the gap between traditional static analysis tools and Large Language Models (LLMs) specialized for code (CodeLLMs). CLDK simplifies multi-language code analysis by providing a unified Python library that integrates outputs from various analysis tools and prepares them for effective use by CodeLLMs.
CLDK streamlines the process of transforming raw code into actionable insights, enabling robust analysis pipelines and seamless integration with tools like WALA, Tree-sitter, LLVM, and CodeQL.
Developer Guide#
Get started with Codellm-Devkit:
-
Run through an example to quickly set up CLDK and perform multilingual code analysis.
-
Install and initialize the
cldk
Python package to start analyzing your codebases. -
Explore the key components of CLDK—including data models and analysis backends—that simplify code analysis workflows.
-
Developer-focused, detailed API reference documentation for
cldk
.
Use Cases#
Learn how to leverage CLDK for various code analysis tasks:
-
Understand how to use CLDK to generate unit tests for Java projects.
-
Learn how to summarize Python projects using CLDK.
Advanced Topics#
Dive deeper into advanced topics
-
Learn how to extend CLDK to a new language.
-
Learn how to add a new analysis backend to CLDK.
Why Codellm-Devkit?#
TL;DR
CLDK unifies traditional program analysis tools with CodeLLMs, streamlining multi-language code analysis into a single, cohesive framework.
Current code analysis often involves juggling multiple disjointed tools and workflows. With Codellm-Devkit, you can:
- Unified: Integrate various analysis tools and CodeLLMs into one cohesive framework.
- Extensible: Easily add support for new tools and evolving LLM platforms.
- Streamlined: Simplify the transformation of raw code into structured, actionable insights.
By providing a consistent and extensible interface, CLDK reduces friction and accelerates the development of robust analysis pipelines.
Contact#
For any questions, feedback, or suggestions, please contact the authors:
Name | |
---|---|
Rahul Krishna | [email protected] |
Rangeet Pan | [email protected] |
Saurabh Sihna | [email protected] |