A framework that bridges the gap between traditional program analysis tools and Large Language Models (LLMs) specialized for code (CodeLLMs).
Codellm-Devkit (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). Codellm-Devkit allows developers to streamline the process of transforming raw code into actionable insights by providing a unified interface for integrating outputs from various analysis tools and preparing them for effective use by CodeLLMs.
- 📚 Read the Documentation for guides and tutorials
- 💻 Use our SDKs to start building:
- 🤖 CLDK wrappers for Tool Calling with various LLMs.
- ✨ CLDK usage examples
- python-sdk - Python implementation
- typescript-sdk - TypeScript implementation
- codeanalyzer-java - Uses WALA and Java Parser to provide static analysis artifacts for Java and JavaEE projects.
- cldk-tool-calling - Wrappers for various tool calling with LLMs
- docs - User documentation and guides
- cldk-examples - several usage examples with CLDK
We welcome contributions of all kinds! Whether you want to fix bugs, improve documentation, or propose new features, please see our contributing guide to get started.
Have questions? Join the discussion in our community forum or Discord server.
To cite Codellm-Devkit, please use the following reference:
@article{krishna2024codellm,
title={Codellm-Devkit: A Framework for Contextualizing Code LLMs with Program Analysis Insights},
author={Krishna, Rahul and Pan, Rangeet and Pavuluri, Raju and Tamilselvam, Srikanth and Vukovic, Maja and Sinha, Saurabh},
journal={arXiv preprint arXiv:2410.13007},
year={2024}
}
Codellm-devkit is an open source project from IBM Research and open to contributions from the entire community. All content in these repositories including code has been provided by IBM under the associated open source software license and IBM is under no obligation to provide enhancements, updates, or support. IBM developers produced this code as an open source project (not as an IBM product), and IBM makes no assertions as to the level of quality nor security.