Skip to main content

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:

  1. Install Repo2Docs:

    pip install repo2docs
    
  2. 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

  3. 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 . --output_file documentation.md --type documentation --llm openai
    

    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, use --prompt "<prompt>".

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repo2docs-0.1.8.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

repo2docs-0.1.8-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file repo2docs-0.1.8.tar.gz.

File metadata

  • Download URL: repo2docs-0.1.8.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.10.1 Darwin/23.4.0

File hashes

Hashes for repo2docs-0.1.8.tar.gz
Algorithm Hash digest
SHA256 dcf2c35467ed9b254b3a499bb1b2876d9c9fcfe2508f7069454afb1c11621953
MD5 29318cc5358fb50dbfdf3d2ac603a86c
BLAKE2b-256 de17902c6cd40dd8d1dae3d3daf366c8d7eccb773e7680f1f868dc5267d0e86d

See more details on using hashes here.

File details

Details for the file repo2docs-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: repo2docs-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 11.3 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

Hashes for repo2docs-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 dc848c8af95a1cc1830fac766c6de9b064efa4958a42eea9a77b4ff76863230c
MD5 73f17d7bbbe7293e828bd0725383a87e
BLAKE2b-256 5281c38c9b699ade4e37c39f5ecbbf5b4c0441ca44f5f7e218c847f0e71236d9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page