Documentation from your codebase using LLMs
Project description
Repo2Docs: Convert Repositories to Documentation
Inspired by github2file
Repo2Docs is a Python-based tool designed to convert the contents of a repository into comprehensive documentation or diagrams. This tool leverages language model APIs such as OpenAI or Anthropic to process and generate documentation, making it easier for developers to create documentation for their projects.
How It Works
sequenceDiagram
participant U as User
participant Main as Main Script
participant RP as RepoProcessor
participant TD as TextToDocs
participant LLM as LLMClient
U->>Main: Execute with parameters
Main->>RP: Process repository
RP->>Main: Return processed text
Main->>TD: Request documentation type
TD->>LLM: Request LLM generation
LLM->>TD: Return generated content
TD->>Main: Return documentation
Main->>U: Save documentation to file
Caption: This sequence diagram illustrates the flow of interactions from the user executing the script to the generation and saving of documentation.
Using Repo2Docs
To run Repo2Docs on your local machine, follow these steps:
-
Install Repo2Docs:
pip install repo2docs
-
Set Up Environment Variables: Export your OpenAI and Anthropic API keys as environment variables:
export OPENAI_API_KEY=your_openai_api_key_here export ANTHROPIC_API_KEY=your_anthropic_api_key_here
or Input your OpenAI or Anthropic API keys when prompted
-
Run the Tool:
cd into the directory where the repo is located
cd <path_to_repo>
Run the following command to generate documentation:
repo2docs --dir_path <path_to_repo> --output_file <output_file> --type <type> --llm <llm>
- Leaving
dir_path
empty will default to the current directory. - Leaving
output_file
empty will default tooutput.md
. - Leaving
type
empty will default todocumentation
.- To generate mobile documentation, use
--type mobile
. - To generate diagrams instead of documentation, use
--type diagram
. - To generate database erd diagrams, use
--type database
. - To use a custom prompt,leave
type
empty and use--prompt "<prompt>"
.
- To generate mobile documentation, use
- Leaving
llm
empty will default toopenai
.- To use Anthropic, use
--llm anthropic
.- Defaults to
claude-3-haiku-20240307
. - To use a specific model, use
--llm anthropic:<model>
.
- Defaults to
- To use OpenAI, use
--llm openai
.- Defaults to
gpt-4-turbo
. - To use a specific model, use
--llm openai:<model>
.
- Defaults to
- To use Anthropic, use
- Leaving
Supported File Types
Repo2Docs currently supports processing files with the following extensions: .py
, .js
, .jsx
, .ts
, .tsx
, .c
, .cpp
, .h
, .hpp
. It filters out files from directories like docs
, examples
, tests
, and others that are unlikely to contain useful information for documentation.
Contributing
Contributions to Repo2Docs are welcome! Whether it's adding new features, improving documentation, or reporting issues, feel free to open an issue or submit a pull request.
License
Repo2Docs is released under the MIT License. See the LICENSE file for more details.
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file repo2docs-0.1.11.tar.gz
.
File metadata
- Download URL: repo2docs-0.1.11.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.10.1 Darwin/23.4.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a77685dffd302e813186098a0fa2f81919014856851f1c0ead1d396ec09e25b |
|
MD5 | ba4931ba47a29b9d6b428d7ef69e6d4f |
|
BLAKE2b-256 | 82baea2ed6915f9132ad44f77aae65e5c71728663e05b9232ae11a2389ba7428 |
File details
Details for the file repo2docs-0.1.11-py3-none-any.whl
.
File metadata
- Download URL: repo2docs-0.1.11-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.10.1 Darwin/23.4.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8856de62c45ac3332e1cabd03e593a65a59b82fd84a99a51cd1c30c2366bad2 |
|
MD5 | 0e129bc1624d504e40c0e25223dbfc5b |
|
BLAKE2b-256 | d8ed239aa19239f5b4cad1690c2435b62cee687ca52471e2d30a460d1901dee7 |