LLM plugin to create a hierarchical summary description of a project
Project description
llm-devtale
llm-devtale is a plugin for the llm command-line tool that automatically generates documentation ("dev tales") for your source code projects. It analyzes your project's files and folders, considering factors like file size, git commit effort, and excluded patterns, to produce a hierarchical, LLM-generated summary of your codebase.
The generated documentation includes:
- A high-level overview of the entire repository.
- Summaries for each analyzed folder.
- Detailed "dev tales" for individual source code files.
To avoid analyzing too much boilerplate or non-important data, the program expects the folder to be a git repository, so it can order the files by number of commits to focus on the most important files (most commits) within the limits of the tokens configured
Taken inspiration (and some code) from https://github.com/tenxstudio/devtale and https://github.com/irthomasthomas/llm-cartographer
The tool uses threads to speed up the analysis, up to maximum 8 threads, only for file summarization.
Installation
First, ensure you have llm installed:
uv tool install llm
Then, install the llm-devtale plugin:
llm install llm-devtale
Usage
Once installed, the devtale command will be available through the llm CLI:
llm devtale [DIRECTORY] [OPTIONS]
By default, DIRECTORY is the current working directory (.).
Examples
Generate documentation for the current directory
This will output the generated documentation to your console.
llm devtale .
Output documentation to a file
Save the generated documentation to PROJECT_README.md.
llm devtale . -o PROJECT_README.md
Use a specific LLM model
Generate documentation using gpt-4:
llm devtale . -m gpt4
Exclude specific files or folders
Exclude all files under test/ directories and docs/ folders using gitignore-style patterns:
llm devtale . -e "**/test/*" -e "docs/"
Filter by file extension
Only include Python (.py) and JavaScript (.js) files in the analysis (do NOT forget the '*' before the extension):
llm devtale . -f *.py -f *.js
Limit token usage
Specify the maximum number of tokens to send to the LLM for the entire project and per file:
llm devtale . --max-tokens 50000 --max-tokens-per-file 5000
Perform a dry run
See which files and folders would be analyzed without actually calling the LLM. This shows the project hierarchy and token counts.
llm devtale . --dry-run
Options
DIRECTORY: Path to the project directory (default:.)-e, --exclude <PATTERN>: Patterns to exclude files/folders (gitignore format). Can be used multiple times.--max-tokens <INT>: Maximum total tokens to send to the LLM for the entire project.--max-tokens-per-file <INT>: Maximum tokens to process per individual file.-o, --output <PATH>: Output file path or directory to save the generated documentation.-m, --model <MODEL_NAME>: Specify the LLM model to use (e.g.,gpt-3.5-turbo,gpt-4). If not set uses the default model configured in the llm cli tool-f, --filter-extension <EXTENSION>: Only include files with these extensions (e.g.,py,md). Can be used multiple times.-t, --dry-run: Show the hierarchy and files that will be analyzed without making LLM calls.-d, --debug: Turn on verbose logging.
Debug
The program can be executed using an ad-hoc main.py file added for convenience:
python -m llm_devtale.main
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 llm_devtale-0.1.2.tar.gz.
File metadata
- Download URL: llm_devtale-0.1.2.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1674a63e17c66f8e397047326decdb556eb36a047569a8621fc15b45e7511b6
|
|
| MD5 |
888b0d15eeb18a53e58edfbf8a6f727d
|
|
| BLAKE2b-256 |
6a28f972d08b1e80bae07892f8799df6c20ac6a6b177454543a4cd7feb906b24
|
File details
Details for the file llm_devtale-0.1.2-py3-none-any.whl.
File metadata
- Download URL: llm_devtale-0.1.2-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f31b18931248bbb37d870de98b926905e283f242afd0fe9f9296b838c093836
|
|
| MD5 |
df5a3984db4adcdae81621db4c0de04e
|
|
| BLAKE2b-256 |
30e52c2dd55f534f789165d1a212ead4cd5d7d73ff8aa05e78a5e66a88b66b41
|