A modular toolkit for LLM powered codebase understanding.
Project description
CodeKite Code Intelligence Toolkit
codekite is a modular, production-grade Python toolkit for codebase mapping, symbol extraction, code search, and building LLM-powered developer tools, agents, and workflows.
Use codekite to build things like code reviewers, code generators, even IDEs, all enriched with the right code context.
Quick Installation
Install from PyPI
# Installation (includes all features)
uv tool install codekite
Install from Source
git clone https://github.com/shaneholloman/codekite.git
cd codekite
uv sync
uv pip install -e .
Basic Usage
from codekite import Repository
# Load a local repository
repo = Repository("/path/to/your/local/codebase")
# Load a remote public GitHub repo
# repo = Repository("https://github.com/owner/repo")
# Explore the repo
print(repo.get_file_tree())
# Output: [{"path": "src/main.py", "is_dir": False, ...}, ...]
print(repo.extract_symbols('src/main.py'))
# Output: [{"name": "main", "type": "function", "file": "src/main.py", ...}, ...]
Key Features & Capabilities
codekite helps your apps and agents deeply understand and interact with codebases, providing the core components to build your own AI-powered developer tools. Here are just a few of the things you can do:
-
Explore Code Structure:
- Get a bird's-eye view with
repo.get_file_tree()to list all files and directories. - Dive into specifics with
repo.extract_symbols()to identify all functions, classes, and other code constructs, either across the entire repository or within a single file.
- Get a bird's-eye view with
-
Pinpoint Information:
- Perform precise textual or regular expression searches across your codebase using
repo.search_text(). - Track down every definition and reference of a specific symbol (like a function or class) with
repo.find_symbol_usages().
- Perform precise textual or regular expression searches across your codebase using
-
Prepare Code for LLMs & Analysis:
- Break down large files into manageable pieces for LLM context windows using
repo.chunk_file_by_lines()orrepo.chunk_file_by_symbols(). - Instantly grab the full definition of a function or class just by knowing a line number within it using
repo.extract_context_around_line().
- Break down large files into manageable pieces for LLM context windows using
-
Generate Code Summaries (Alpha):
- Leverage LLMs to create natural language summaries for files, functions, or classes using the
Summarizer(e.g.,summarizer.summarize_file(),summarizer.summarize_function()). - Build a searchable semantic index of these AI-generated docstrings with
DocstringIndexerand query it withSummarySearcherto find code based on intent and meaning.
- Leverage LLMs to create natural language summaries for files, functions, or classes using the
-
And much more...
codekitealso offers capabilities for semantic search on raw code, building custom context for LLMs, and more.
License
MIT License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file codekite-0.1.6.tar.gz.
File metadata
- Download URL: codekite-0.1.6.tar.gz
- Upload date:
- Size: 56.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e0c90615dd2d1d51324a5ca20b210433565b30dc1fe899faf983a73593c5b53
|
|
| MD5 |
d20fc1b891d26e23bfc3eec4cbcbb436
|
|
| BLAKE2b-256 |
50e981bc705260aac02749b033b6e9b6c144ed6ba20e4603f8425e4a63bb7ef4
|
File details
Details for the file codekite-0.1.6-py3-none-any.whl.
File metadata
- Download URL: codekite-0.1.6-py3-none-any.whl
- Upload date:
- Size: 40.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
768e2b63bf4339879bead1066b8e18982a61bfafe6815dc67f176fd465dc0b7f
|
|
| MD5 |
89a5b78fca2da1fe01396dec1454e690
|
|
| BLAKE2b-256 |
0e83bee6dcfb486ee74d23a48002955e1951f6bd29fe7c2fcdf88f260d6dfb8d
|