<p align="center">
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/svg/readme-ai-cosmic.svg" alt="readme-ai-banner-logo" width="100%">
</p>
<p align="center">
<em>Designed for simplicity, customization, and developer productivity.</em>
</p>
<p align="center">
<a href="https://github.com/eli64s/readme-ai/actions">
<img src="https://img.shields.io/github/actions/workflow/status/eli64s/readme-ai/release-pipeline.yml?logo=githubactions&label=CICD&logoColor=white&color=4169E1" alt="github-actions">
</a>
<a href="https://app.codecov.io/gh/eli64s/readme-ai">
<img src="https://img.shields.io/codecov/c/github/eli64s/readme-ai?logo=codecov&logoColor=white&label=Coverage&color=5D4ED3" alt="codecov">
</a>
<a href="https://pypi.python.org/pypi/readmeai/">
<img src="https://img.shields.io/pypi/v/readmeai?logo=Python&logoColor=white&label=PyPI&color=7934C5" alt="pypi-version">
</a>
<a href="https://www.pepy.tech/projects/readmeai">
<img src="https://img.shields.io/pepy/dt/readmeai?logo=PyPI&logoColor=white&label=Downloads&color=9400D3" alt="pepy-total-downloads">
</a>
<a href="https://opensource.org/license/mit/">
<img src="https://img.shields.io/github/license/eli64s/readme-ai?logo=opensourceinitiative&logoColor=white&label=License&color=8A2BE2" alt="license">
</a>
</p>
---
## ๐ Quick Links
1. [Overview](#-overview)
2. [Demo](#-demo)
3. [Features](#๏ธ-features)
4. [Getting Started](#-getting-started)
5. [Configuration](#-configuration)
6. [Examples](#-examples)
7. [Contributing](#-contributing)
> [!IMPORTANT]
> โจ Visit the [Official Documentation][mkdocs] for detailed guides and tutorials.
---
## ๐ฎ Overview
README-AI is a developer tool that automatically generates README markdown files using a robust repository processing engine and advanced language models. Simply provide a URL or path to your codebase, and a well-structured and detailed README will be generated.
**Why README-AI?**
This tool is designed to streamline the documentation process for developers, saving time and effort while ensuring high-quality README files. Key benefits include:
- **AI-Powered:** Leverage language models for intelligent content generation.
- **Consistency:** Ensure clean, standardized documentation across projects.
- **Customization:** Tailor the output to fit your project's requirements.
- **Language Agnostic:** Works with most programming languages/frameworks.
- **Save Time:** Generate comprehensive READMEs in less than a minute.
---
## ๐พ Demo
**Running from the command line:**
[readmeai-cli-demo](https://github.com/eli64s/artifacts/assets/43382407/55b8d1b9-06a7-4b1f-b6a7-aaeccdb27679)
**Running directly in your browser:**
[readmeai-streamlit-demo](https://github.com/eli64s/artifacts/assets/43382407/3eb39fcf-c1df-49c6-bb5c-63e141857ae3)
---
## โ๏ธ Features
- **๐ Automated Documentation:** Generate comprehensive README files automatically from your codebase.
- **๐จ Customizable Output:** Tailor the styling, formatting, badges, header designs, and more preferences.
- **๐ Language Agnostic:** Compatible with a wide range of programming languages and project types.
- **๐ค Multi-LLM Support:** Current support for `OpenAI`, `Ollama`, `Anthropic`, `Google Gemini`.
- **๐ Offline Mode:** Create boilerplate README files offline, without any external API calls.
- **๐ Best Practices:** Ensures clean, professional documentation, adhering to markdown best practices.
Let's take a look at some possible customizations created by readme-ai:
<table>
<!-- ROW -->
<tr>
<td colspan="2" align="center">
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/custom-dragon.png" alt="custom-dragon-project-logo" width="700">
<br>
<code>--image custom --badge-color FF4B4B --badge-style flat-square --header-style classic</code>
</td>
</tr>
<!-- ROW -->
<tr>
<td colspan="2" align="center">
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/examples/toc/roman-numeral.png" alt="docker-go-readme-example" width="700">
<br>
<code>--badge-color 00ADD8 --badge-style for-the-badge --header-style modern --toc-style roman</code>
</td>
</tr>
<!-- ROW -->
<tr>
<td colspan="2" align="center"><br>
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/ascii-art.png" alt="ascii-readme-header-style" width="700">
<br>
<code>--header-style ascii</code>
</td>
</tr>
<!-- ROW -->
<tr>
<td colspan="2" align="center"><br>
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/svg-banner.png" alt="svg-" width="700">
<br>
<code>--badge-style for-the-badge --header-style svg</code>
</td>
</tr>
<!-- ROW -->
<tr>
<td align="center">
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/refs/heads/main/docs/docs/assets/img/headers/cloud.png" alt="readme-header-with-cloud-logo" width="350">
<br>
<code>--align left --badge-style flat-square --image cloud</code>
</td>
<td align="center">
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/refs/heads/main/docs/docs/assets/img/headers/gradient.png" alt="readme-header-with-gradient-markdown-logo" width="350">
<br>
<code>--align left --badge-style flat --image gradient</code>
</td>
</tr>
<!-- ROW -->
<tr>
<td align="center">
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/custom-balloon.png" alt="custom-balloon-project-logo" width="350">
<br>
<code>--badge-style flat --image custom</code>
</td>
<td align="center">
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/skill-icons-light.png" alt="readme-header-with-skill-icons-light" width="350">
<br>
<code>--badge-style skills-light --image grey</code>
</td>
</tr>
<!-- ROW -->
<tr>
<td align="center">
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/blue.png" alt="readme-header-with-blue-markdown-logo" width="350">
<br>
<code>--badge-style flat-square</code>
</td>
<td align="center">
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/black.png" alt="readme-header-with-black-readme-logo" width="350">
<br>
<code>--badge-style flat --image black</code>
</td>
</tr>
<!-- ROW -->
<tr>
<td colspan="2" align="center"><br>
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/compact.png" alt="compact-readme-header" width="700">
<br>
<code>--image cloud --header-style compact --toc-style fold</code>
</td>
</tr>
<!-- ROW -->
<tr>
<td colspan="2" align="center">
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/refs/heads/main/docs/docs/assets/img/headers/modern-flat-square.png" alt="readme-header-style-modern" width="700">
<br>
<code>-i custom -bc BA0098 -bs flat-square -hs modern -ts fold</code>
</td>
</tr>
</table>
> [!IMPORTANT]
> See the [Official Documentation][mkdocs] for more information on customization options and best practices.
Next, let's explore the key sections of a typical README generated by readme-ai.
<details closed>
<summary><strong>๐ Overview</strong></summary><br>
<table>
<tr>
<td>
<b>Overview</b><br>
<p>โ High-level introduction of the project, focused on the value proposition and use-cases, rather than technical aspects.
</p>
</td>
</tr>
<tr>
<td align="center"><img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/llm-content/overview.png" alt="readme-overview-section" width="700">
</td>
</tr>
</table>
</details>
<details closed>
<summary><strong>โจ Features</strong></summary><br>
<table>
<tr>
<td><b>Features Table</b><br>
<p>โ Generated markdown table that highlights the key technical features and components of the codebase. This table is generated using a structured <a href="https://github.com/eli64s/readme-ai/blob/main/readmeai/config/settings/prompts.toml">prompt template.</a>
</p>
</td>
</tr>
<tr>
<td align="center"><img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/llm-content/features-table.png" alt="readme-features-section" width="700">
</td>
</tr>
</table>
</details>
<details closed>
<summary><strong>๐ Codebase Documentation</strong></summary><br>
<table>
<tr>
<td><b>Directory Tree</b><br>
<p>โ The project's directory structure is generated using pure Python and embedded in the README. See <a href="https://github.com/eli64s/readme-ai/blob/main/readmeai/generators/tree.py">readmeai.generators.tree.</a> for more details.
</p>
</td>
</tr>
<tr>
<td align="center">
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/project-structure/tree.png" alt="directory-tree" width="700">
</td>
</tr>
<tr>
<td style="padding-top:20px;">
<b>File Summaries</b><br>
<p>โ Summarizes key modules of the project, which are also used as context for downstream <a href="https://github.com/eli64s/readme-ai/blob/main/readmeai/config/settings/prompts.toml">prompts.</a>
</p>
</td>
</tr>
<tr>
<td align="center">
<img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/project-structure/file-summaries.png" alt="file-summaries" width="700">
</tr>
</table>
</details>
<details closed>
<summary><strong>๐ Quickstart Instructions</strong></summary>
<br>
<table>
<tr>
<td><b>Getting Started Guides</b><br>
<p>โ Prerequisites and system requirements are extracted from the codebase during preprocessing. The <a href="https://github.com/eli64s/readme-ai/tree/main/readmeai/parsers">parsers</a> handles the majority of this logic currently.
</p>
</td>
</tr>
<tr>
<td align="center"><img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/getting-started/prerequisites-and-installation.png" alt="getting-started-section-prerequisites" width="700">
</td>
</tr>
<tr>
<td><b>Installation Guide</b><br>
<p>โ <code>Installation</code>, <code>Usage</code>, and <code>Testing</code> guides are generated based on the project's dependency files and codebase configuration.
</p>
<tr>
<td align="center"><img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/getting-started/usage-and-testing.png" alt="getting-started-section-usage-and-testing" width="700">
</td>
</tr>
</table>
</details>
<details closed>
<summary><strong>๐ฐ Contributing Guidelines</strong></summary>
<br>
<table>
<tr>
<td><b>Contributing Guide</b><br>
<p>โ Dropdown section that outlines general process for contributing to your project.</p>
<p>โ Provides links to your contributing guidelines, issues page, and more resources.</p>
<p>โ Graph of contributors is also included.</p>
</p>
</td>
</tr>
<tr>
<td align="center"><img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/contributing/contributing-guidelines.png" alt="contributing-guidelines-section" width="700">
</td>
</tr>
<tr>
<td><b>Additional Sections</b><br>
<p>โ <code>Project Roadmap</code>, <code>Contributing Guidelines</code>, <code>License</code>, and <code>Acknowledgements</code> are included by default.
</p>
</td>
</tr>
<tr>
<td align="center"><img src="https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/contributing/footer.png" alt="footer-readme-section" width="700"></td>
</tr>
</table>
</details>
---
## ๐ธ Getting Started
### System Requirements
- **Python**: `3.9+`
- **Package Manager/Container**: `pip`, `pipx`, `uv`, or `docker`.
### Supported Sources
The following git hosting services are supported for source code retrieval, along with your local file system:
- [**GitHub**](https://github.com/)
- [**GitLab**](https://gitlab.com/)
- [**Bitbucket**](https://bitbucket.org/)
- [**File System**](https://en.wikipedia.org/wiki/File_system)
### Supported LLM APIs
To enable the full functionality of `readmeai`, an account and API key are required for one of the following providers:
- [**OpenAI**](https://platform.openai.com/docs/quickstart/account-setup): Recommended for general use. Requires an OpenAI account and API key.
- [**Ollama**](https://github.com/ollama/ollama): Free and open-source. No API key required.
- [**Anthropic**](https://www.anthropic.com/): Requires an Anthropic account and API key.
- [**Google Gemini**](https://ai.google.dev/tutorials/python_quickstart): Requires a Google Cloud account and API key.
- [**Offline Mode**](https://github.com/eli64s/readme-ai/blob/main/examples/offline-mode/readme-litellm.md): Generates a README without making API calls.
<sub>For more information on setting up an API key, refer to the provider's documentation.</sub>
## โ๏ธ Installation
Choose your preferred installation method:
<!--
#### Using `pip`
[![pip](https://img.shields.io/badge/PyPI-3775A9.svg?style=flat&logo=PyPI&logoColor=white)](https://pypi.org/project/readmeai/)
-->
### <img width="2%" src="https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/python.svg"> Pip
```sh
โฏ pip install readmeai
```
<!--
#### Using `pipx`
[![pipx](https://img.shields.io/badge/pipx-2CFFAA.svg?style=flat&logo=pipx&logoColor=black)](https://pipxproject.github.io/pipx/installation/)
-->
### <img width="2%" src="https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/pipx.svg"> Pipx
```sh
โฏ pipx install readmeai
```
> [!TIP]
> <sub>Using [pipx](https://pipx.pypa.io/stable/installation/) allows you to install and run Python command-line applications in isolated environments, which helps prevent dependency conflicts with other Python projects.</sub>
<!--
#### Using `docker`
[![docker](https://img.shields.io/badge/Docker-2496ED.svg?style=flat&logo=Docker&logoColor=white)](https://hub.docker.com/r/zeroxeli/readme-ai)
-->
### <img width="2%" src="https://raw.githubusercontent.com/eli64s/readme-ai/3052baaca03db99d00808acfec43a44e81ecbf7f/docs/docs/assets/svg/docker.svg"> Docker
Pull the latest Docker image from the Docker Hub repository.
```sh
โฏ docker pull zeroxeli/readme-ai:latest
```
### <img width="2%" src="https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/git.svg"> From source
<details><summary>Click to expand instructions</summary>
1. **Clone the repository:**
```sh
โฏ git clone https://github.com/eli64s/readme-ai
```
2. **Navigate to the `readme-ai` directory:**
```sh
โฏ cd readme-ai
```
3. **Install dependencies:**
```sh
โฏ pip install -r setup/requirements.txt
```
Alternatively, the project can be setup using the bash script below:
### <img width="2%" src="https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/gnubash.svg"> Bash
1. **Run the setup script:**
```sh
โฏ bash setup/setup.sh
```
Or, use `poetry` to build the project:
### <img width="2%" src="https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/poetry.svg"> Poetry
1. **Install dependencies using Poetry:**
```sh
โฏ poetry install
```
</details><br>
> [!IMPORTANT]
> To use the **Anthropic** and **Google Gemini** clients, additional dependencies are required. See the following installation commands:
> - **Anthropic:**
> ```sh
> โฏ pip install "readmeai[anthropic]"
> ```
> - **Google Gemini:**
> ```sh
> โฏ pip install "readmeai[google-generativeai]"
> ```
## ๐ค Running the CLI
**1. Set Up Environment Variables**
With OpenAI:
```sh
โฏ export OPENAI_API_KEY=<your_api_key>
# Or for Windows users:
โฏ set OPENAI_API_KEY=<your_api_key>
```
<details closed><summary>Additional Providers (Ollama, Anthropic, Google Gemini)</summary><br>
<details closed><summary>Ollama</summary><br>
Refer to the [Ollama documentation](https://github.com/ollama/ollama) for more information on setting up the Ollama API. Here is a basic example:
1. Pull your model of choice from the Ollama repository:
```sh
โฏ ollama pull mistral:latest
```
2. Start the Ollama server and set the `OLLAMA_HOST` environment variable:
```sh
โฏ export OLLAMA_HOST=127.0.0.1 && ollama serve
```
</details>
<details closed><summary>Anthropic</summary>
1. Export your Anthropic API key:
```sh
โฏ export ANTHROPIC_API_KEY=<your_api_key>
```
</details>
<details closed><summary>Google Gemini</summary>
1. Export your Google Gemini API key:
```sh
โฏ export GOOGLE_API_KEY=<your_api_key
```
</details>
</details>
**2. Generate a README**
Run the following command, replacing the repository URL with your own:
```sh
โฏ readmeai --repository https://github.com/eli64s/readme-ai --api openai
```
> [!IMPORTANT]
> By default, the `gpt-3.5-turbo` model is used. Higher costs may be incurred when more advanced models.
>
Run with `Ollama` and set `llama3` as the model:
```sh
โฏ readmeai --api ollama --model llama3 --repository https://github.com/eli64s/readme-ai
```
Run with `Anthropic`:
```sh
โฏ readmeai --api anthropic -m claude-3-5-sonnet-20240620 -r https://github.com/eli64s/readme-ai
```
Run with `Google Gemini`:
```sh
โฏ readmeai --api gemini -m gemini-1.5-flash -r https://github.com/eli64s/readme-ai
```
Use a `local` directory path:
```sh
readmeai --repository /path/to/your/project
```
Add more customization options:
```sh
โฏ readmeai --repository https://github.com/eli64s/readme-ai \
--output readmeai.md \
--api openai \
--model gpt-4 \
--badge-color A931EC \
--badge-style flat-square \
--header-style compact \
--toc-style fold \
--temperature 0.9 \
--tree-depth 2
--image LLM \
--emojis
```
### <img width="2%" src="https://raw.githubusercontent.com/eli64s/readme-ai/3052baaca03db99d00808acfec43a44e81ecbf7f/docs/docs/assets/svg/docker.svg"> Docker
Run the Docker container with the OpenAI client:
```sh
โฏ docker run -it --rm \
-e OPENAI_API_KEY=$OPENAI_API_KEY \
-v "$(pwd)":/app zeroxeli/readme-ai:latest \
--repository https://github.com/eli64s/readme-ai \
--api openai
```
### <img width="2%" src="https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/git.svg"> From source
<details closed><summary><i>Click to expand instructions</i></summary>
### <img width="2%" src="https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/gnubash.svg"> Bash
If you installed the project from source with the bash script, run the following command:
1. **Activate the virtual environment:**
```sh
โฏ conda activate readmeai
```
2. **Run the CLI:**
```sh
โฏ python3 -m readmeai.cli.main -r https://github.com/eli64s/readme-ai
```
### <img width="2%" src="https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/poetry.svg"> Poetry
1. **Activate the virtual environment:**
```sh
โฏ poetry shell
```
2. **Run the CLI:**
```sh
โฏ poetry run python3 -m readmeai.cli.main -r https://github.com/eli64s/readme-ai
```
</details>
### <img width="2%" src="https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/streamlit.svg"> Streamlit
Try readme-ai directly in your browser, no installation required. See the <a href="https://github.com/eli64s/readme-ai-streamlit">readme-ai-streamlit</a> repository for more details.
[<img align="center" src="https://static.streamlit.io/badges/streamlit_badge_black_white.svg" width="20%">](https://readme-ai.streamlit.app/)
---
## ๐งช Testing
<!--
#### Using `pytest`
[![pytest](https://img.shields.io/badge/Pytest-0A9EDC.svg?style=flat&logo=Pytest&logoColor=white)](https://docs.pytest.org/en/7.1.x/contents.html)
-->
The [pytest](https://docs.pytest.org/en/7.2.x/contents.html) and [nox](https://nox.thea.codes/en/stable/) frameworks are used for development and testing.
Install the dependencies using Poetry:
```sh
โฏ poetry install --with dev,test
```
Run the unit test suite using Pytest:
```sh
โฏ make test
```
Run the test suite against Python 3.9, 3.10, 3.11, and 3.12 using Nox:
```sh
โฏ make test-nox
```
> [!TIP]
> <sub>Nox is an automation tool that automates testing in multiple Python environments. It is used to ensure compatibility across different Python versions.</sub>
---
## ๐ก Configuration
Customize your README generation using these CLI options:
| Option | Description | Default |
|-------------------|-----------------------------------------------|-------------------|
| `--align` | Text alignment in header | `center` |
| `--api` | LLM API service provider | `offline` |
| `--badge-color` | Badge color name or hex code | `0080ff` |
| `--badge-style` | Badge icon style type | `flat` |
| `--header-style` | Header template style | `classic` |
| `--toc-style` | Table of contents style | `bullet` |
| `--emojis` | Adds emojis to the README header sections | `False` |
| `--image` | Project logo image | `blue` |
| `--model` | Specific LLM model to use | `gpt-3.5-turbo` |
| `--output` | Output filename | `readme-ai.md` |
| `--repository` | Repository URL or local directory path | `None` |
| `--temperature` | Creativity level for content generation | `0.1` |
| `--tree-depth` | Maximum depth of the directory tree structure | `2` |
Run the following command to view all available options:
```sh
โฏ readmeai --help
```
<sub>Visit the [Official Documentation][mkdocs] for more detailed information on configuration options, examples, and best practices.</sub>
---
## ๐จ Examples
View example README files generated by readme-ai across various tech stacks:
| Technology | Example Output | Repository | Description |
|------------|---------------|------------|-------------|
| Readme-ai | [readme-ai.md][default] | [readme-ai][readme-ai] | Readme-ai project |
| Apache Flink | [readme-pyflink.md][modern-header] | [pyflink-poc][pyflink] | Pyflink project |
| Streamlit | [readme-streamlit.md][svg-banner] | [readme-ai-streamlit][streamlit] | Streamlit web app |
| Vercel & NPM | [readme-vercel.md][dalle-logo] | [github-readme-quotes][vercel] | Vercel deployment |
| Go & Docker | [readme-docker-go.md][for-the-badge] | [docker-gs-ping][docker-golang] | Dockerized Go app |
| FastAPI & Redis | [readme-fastapi-redis.md][fastapi-redis] | [async-ml-inference][fastapi] | Async ML inference service |
| Java | [readme-java.md][compact-header] | [Minimal-Todo][java] | Minimalist todo Java app |
| PostgreSQL & DuckDB | [readme-postgres.md][classic-header] | [Buenavista][postgres] | Postgres proxy server |
| Kotlin | [readme-kotlin.md][readme-kotlin] | [android-client][kotlin] | Android client app |
| Offline Mode | [offline-mode.md][offline-mode] | [litellm][litellm] | LLM API service |
<sub>Find additional README examples in the [examples directory](https://github.com/eli64s/readme-ai/tree/main/examples).</sub>
---
## ๐๐จ Roadmap
* [ ] Release `readmeai 1.0.0` with enhanced documentation management features.
* [ ] Develop `Vscode Extension` to generate README files directly in the editor.
* [ ] Develop `GitHub Actions` to automate documentation updates.
* [ ] Add `badge packs` to provide additional badge styles and options.
+ [ ] Code coverage, CI/CD status, project version, and more.
---
## ๐ฐ Contributing
Contributions are welcome! Please read the [Contributing Guide][contributing] to get started.
- **๐ก [Contributing Guide][contributing]**: Learn about our contribution process and coding standards.
- **๐ [Report an Issue][issues]**: Found a bug? Let us know!
- **๐ฌ [Start a Discussion][discussions]**: Have ideas or suggestions? We'd love to hear from you.
<br>
<p align="left">
<a href="https://github.com{/eli64s/readme-ai/}graphs/contributors">
<img src="https://contrib.rocks/image?repo=eli64s/readme-ai">
</a>
</p>
---
## ๐ License
README-AI is released under the terms of the [MIT License][license].
---
## ๐ Acknowledgments
* [Shields.io](https://shields.io/)
* [Simple Icons](https://simpleicons.org/)
* [Aveek-Saha/GitHub-Profile-Badges](https://github.com/Aveek-Saha/GitHub-Profile-Badges)
* [Ileriayo/Markdown-Badges](https://github.com/Ileriayo/markdown-badges)
* [tandpfun/skill-icons](https://github.com/tandpfun/skill-icons)
<p align="right"><a href="#-overview">โฌ๏ธ Top</a></p>
---
<!-- Documentation -->
[mkdocs]: https://eli64s.github.io/readme-ai "Official Documentation"
<!-- GitHub Links -->
[contributing]: https://github.com/eli64s/readme-ai/blob/main/CONTRIBUTING.md
[issues]: https://github.com/eli64s/readme-ai/issues
[discussions]: https://github.com/eli64s/readme-ai/discussions
[license]: https://github.com/eli64s/readme-ai/blob/main/LICENSE
<!-- Example READMEs -->
[default]: https://github.com/eli64s/readme-ai/blob/main/examples/readme-ai.md "readme-python.md"
[ascii-header]: https://github.com/eli64s/readme-ai/blob/main/examples/headers/ascii.md "ascii.md"
[classic-header]: https://github.com/eli64s/readme-ai/blob/main/examples/headers/classic.md "readme-postgres.md"
[compact-header]: https://github.com/eli64s/readme-ai/blob/main/examples/headers/compact.md "readme-java.md"
[modern-header]: https://github.com/eli64s/readme-ai/blob/main/examples/headers/modern.md "readme-pyflink.md"
[svg-banner]: https://github.com/eli64s/readme-ai/blob/main/examples/banners/svg-banner.md "readme-streamlit.md"
[dalle-logo]: https://github.com/eli64s/readme-ai/blob/main/examples/logos/dalle.md "readme-vercel.md"
[readme-kotlin]: https://github.com/eli64s/readme-ai/blob/main/examples/readme-kotlin.md "readme-kotlin.md"
[for-the-badge]: https://github.com/eli64s/readme-ai/blob/main/examples/readme-docker-go.md "readme-docker-go.md"
[fastapi-redis]: https://github.com/eli64s/readme-ai/blob/main/examples/readme-fastapi-redis.md "readme-fastapi-redis.md"
[offline-mode]: https://github.com/eli64s/readme-ai/blob/main/examples/offline-mode/readme-litellm.md "readme-litellm.md"
<!-- Example Repositories -->
[readme-ai]: https://github.com/eli64s/readme-ai "readme-ai"
[pyflink]: https://github.com/eli64s/pyflink-poc "pyflink-poc"
[postgres]: https://github.com/jwills/buenavista "Buenavista"
[java]: https://github.com/avjinder/Minimal-Todo "minimal-todo"
[kotlin]: https://github.com/rumaan/file.io-Android-Client "android-client"
[docker-golang]: https://github.com/olliefr/docker-gs-ping "docker-gs-ping"
[vercel]: https://github.com/PiyushSuthar/github-readme-quotes "github-readme-quotes"
[streamlit]: https://github.com/eli64s/readme-ai-streamlit "readme-ai-streamlit"
[fastapi]: https://github.com/FerrariDG/async-ml-inference "async-ml-inference"
[litellm]: https://github.com/BerriAI/litellm "offline-mode"
Raw data
{
"_id": null,
"home_page": "https://github.com/eli64s/readme-ai",
"name": "readmeai",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "ai-documentation, anthropic, badge-generator, cli, developer-tools, documentation, documentation-generator, gemini, gpt, gpt-4, markdown, markdown-generator, markdown-md, readme-md, readme-md-generator, readme-generator, readme-template, readme-md-generator",
"author": "Eli",
"author_email": "egsalamie@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/e3/59/ce3a60e667ec071c01716ac3313daa279b37adb901aeb067dc2afb8f9141/readmeai-0.5.99.post5.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/svg/readme-ai-cosmic.svg\" alt=\"readme-ai-banner-logo\" width=\"100%\">\n</p>\n\n<p align=\"center\">\n <em>Designed for simplicity, customization, and developer productivity.</em>\n</p>\n\n<p align=\"center\">\n <a href=\"https://github.com/eli64s/readme-ai/actions\">\n <img src=\"https://img.shields.io/github/actions/workflow/status/eli64s/readme-ai/release-pipeline.yml?logo=githubactions&label=CICD&logoColor=white&color=4169E1\" alt=\"github-actions\">\n </a>\n <a href=\"https://app.codecov.io/gh/eli64s/readme-ai\">\n <img src=\"https://img.shields.io/codecov/c/github/eli64s/readme-ai?logo=codecov&logoColor=white&label=Coverage&color=5D4ED3\" alt=\"codecov\">\n </a>\n <a href=\"https://pypi.python.org/pypi/readmeai/\">\n <img src=\"https://img.shields.io/pypi/v/readmeai?logo=Python&logoColor=white&label=PyPI&color=7934C5\" alt=\"pypi-version\">\n </a>\n <a href=\"https://www.pepy.tech/projects/readmeai\">\n <img src=\"https://img.shields.io/pepy/dt/readmeai?logo=PyPI&logoColor=white&label=Downloads&color=9400D3\" alt=\"pepy-total-downloads\">\n </a>\n <a href=\"https://opensource.org/license/mit/\">\n <img src=\"https://img.shields.io/github/license/eli64s/readme-ai?logo=opensourceinitiative&logoColor=white&label=License&color=8A2BE2\" alt=\"license\">\n </a>\n</p>\n\n---\n\n## \ud83d\udd17 Quick Links\n\n1. [Overview](#-overview)\n2. [Demo](#-demo)\n3. [Features](#\ufe0f-features)\n4. [Getting Started](#-getting-started)\n5. [Configuration](#-configuration)\n6. [Examples](#-examples)\n7. [Contributing](#-contributing)\n\n> [!IMPORTANT]\n> \u2728 Visit the [Official Documentation][mkdocs] for detailed guides and tutorials.\n\n---\n\n## \ud83d\udd2e Overview\n\nREADME-AI is a developer tool that automatically generates README markdown files using a robust repository processing engine and advanced language models. Simply provide a URL or path to your codebase, and a well-structured and detailed README will be generated.\n\n**Why README-AI?**\n\nThis tool is designed to streamline the documentation process for developers, saving time and effort while ensuring high-quality README files. Key benefits include:\n\n- **AI-Powered:** Leverage language models for intelligent content generation.\n- **Consistency:** Ensure clean, standardized documentation across projects.\n- **Customization:** Tailor the output to fit your project's requirements.\n- **Language Agnostic:** Works with most programming languages/frameworks.\n- **Save Time:** Generate comprehensive READMEs in less than a minute.\n\n---\n\n## \ud83d\udc7e Demo\n\n**Running from the command line:**\n\n[readmeai-cli-demo](https://github.com/eli64s/artifacts/assets/43382407/55b8d1b9-06a7-4b1f-b6a7-aaeccdb27679)\n\n**Running directly in your browser:**\n\n[readmeai-streamlit-demo](https://github.com/eli64s/artifacts/assets/43382407/3eb39fcf-c1df-49c6-bb5c-63e141857ae3)\n\n---\n\n## \u2604\ufe0f Features\n\n- **\ud83d\ude80 Automated Documentation:** Generate comprehensive README files automatically from your codebase.\n- **\ud83c\udfa8 Customizable Output:** Tailor the styling, formatting, badges, header designs, and more preferences.\n- **\ud83c\udf10 Language Agnostic:** Compatible with a wide range of programming languages and project types.\n- **\ud83e\udd16 Multi-LLM Support:** Current support for `OpenAI`, `Ollama`, `Anthropic`, `Google Gemini`.\n- **\ud83d\udcd1 Offline Mode:** Create boilerplate README files offline, without any external API calls.\n- **\ud83d\udcdd Best Practices:** Ensures clean, professional documentation, adhering to markdown best practices.\n\nLet's take a look at some possible customizations created by readme-ai:\n\n<table>\n <!-- ROW -->\n <tr>\n <td colspan=\"2\" align=\"center\">\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/custom-dragon.png\" alt=\"custom-dragon-project-logo\" width=\"700\">\n <br>\n <code>--image custom --badge-color FF4B4B --badge-style flat-square --header-style classic</code>\n </td>\n </tr>\n <!-- ROW -->\n <tr>\n <td colspan=\"2\" align=\"center\">\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/examples/toc/roman-numeral.png\" alt=\"docker-go-readme-example\" width=\"700\">\n <br>\n <code>--badge-color 00ADD8 --badge-style for-the-badge --header-style modern --toc-style roman</code>\n </td>\n </tr>\n <!-- ROW -->\n <tr>\n <td colspan=\"2\" align=\"center\"><br>\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/ascii-art.png\" alt=\"ascii-readme-header-style\" width=\"700\">\n <br>\n <code>--header-style ascii</code>\n </td>\n </tr>\n <!-- ROW -->\n <tr>\n <td colspan=\"2\" align=\"center\"><br>\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/svg-banner.png\" alt=\"svg-\" width=\"700\">\n <br>\n <code>--badge-style for-the-badge --header-style svg</code>\n </td>\n </tr>\n <!-- ROW -->\n <tr>\n <td align=\"center\">\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/refs/heads/main/docs/docs/assets/img/headers/cloud.png\" alt=\"readme-header-with-cloud-logo\" width=\"350\">\n <br>\n <code>--align left --badge-style flat-square --image cloud</code>\n </td>\n <td align=\"center\">\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/refs/heads/main/docs/docs/assets/img/headers/gradient.png\" alt=\"readme-header-with-gradient-markdown-logo\" width=\"350\">\n <br>\n <code>--align left --badge-style flat --image gradient</code>\n </td>\n </tr>\n <!-- ROW -->\n <tr>\n <td align=\"center\">\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/custom-balloon.png\" alt=\"custom-balloon-project-logo\" width=\"350\">\n <br>\n <code>--badge-style flat --image custom</code>\n </td>\n <td align=\"center\">\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/skill-icons-light.png\" alt=\"readme-header-with-skill-icons-light\" width=\"350\">\n <br>\n <code>--badge-style skills-light --image grey</code>\n </td>\n </tr>\n <!-- ROW -->\n <tr>\n <td align=\"center\">\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/blue.png\" alt=\"readme-header-with-blue-markdown-logo\" width=\"350\">\n <br>\n <code>--badge-style flat-square</code>\n </td>\n <td align=\"center\">\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/black.png\" alt=\"readme-header-with-black-readme-logo\" width=\"350\">\n <br>\n <code>--badge-style flat --image black</code>\n </td>\n </tr>\n <!-- ROW -->\n <tr>\n <td colspan=\"2\" align=\"center\"><br>\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/headers/compact.png\" alt=\"compact-readme-header\" width=\"700\">\n <br>\n <code>--image cloud --header-style compact --toc-style fold</code>\n </td>\n </tr>\n <!-- ROW -->\n <tr>\n <td colspan=\"2\" align=\"center\">\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/refs/heads/main/docs/docs/assets/img/headers/modern-flat-square.png\" alt=\"readme-header-style-modern\" width=\"700\">\n <br>\n <code>-i custom -bc BA0098 -bs flat-square -hs modern -ts fold</code>\n </td>\n </tr>\n</table>\n\n> [!IMPORTANT]\n> See the [Official Documentation][mkdocs] for more information on customization options and best practices.\n\nNext, let's explore the key sections of a typical README generated by readme-ai.\n\n<details closed>\n <summary><strong>\ud83d\udccd Overview</strong></summary><br>\n <table>\n <tr>\n <td>\n <b>Overview</b><br>\n <p>\u25ce High-level introduction of the project, focused on the value proposition and use-cases, rather than technical aspects.\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\"><img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/llm-content/overview.png\" alt=\"readme-overview-section\" width=\"700\">\n </td>\n </tr>\n </table>\n</details>\n\n<details closed>\n <summary><strong>\u2728 Features</strong></summary><br>\n <table>\n <tr>\n <td><b>Features Table</b><br>\n <p>\u25ce Generated markdown table that highlights the key technical features and components of the codebase. This table is generated using a structured <a href=\"https://github.com/eli64s/readme-ai/blob/main/readmeai/config/settings/prompts.toml\">prompt template.</a>\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\"><img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/llm-content/features-table.png\" alt=\"readme-features-section\" width=\"700\">\n </td>\n </tr>\n </table>\n</details>\n\n<details closed>\n <summary><strong>\ud83d\udcc3 Codebase Documentation</strong></summary><br>\n <table>\n <tr>\n <td><b>Directory Tree</b><br>\n <p>\u25ce The project's directory structure is generated using pure Python and embedded in the README. See <a href=\"https://github.com/eli64s/readme-ai/blob/main/readmeai/generators/tree.py\">readmeai.generators.tree.</a> for more details.\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\">\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/project-structure/tree.png\" alt=\"directory-tree\" width=\"700\">\n </td>\n </tr>\n <tr>\n <td style=\"padding-top:20px;\">\n <b>File Summaries</b><br>\n <p>\u25ce Summarizes key modules of the project, which are also used as context for downstream <a href=\"https://github.com/eli64s/readme-ai/blob/main/readmeai/config/settings/prompts.toml\">prompts.</a>\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\">\n <img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/project-structure/file-summaries.png\" alt=\"file-summaries\" width=\"700\">\n </tr>\n </table>\n</details>\n\n<details closed>\n <summary><strong>\ud83d\ude80 Quickstart Instructions</strong></summary>\n <br>\n <table>\n <tr>\n <td><b>Getting Started Guides</b><br>\n <p>\u25ce Prerequisites and system requirements are extracted from the codebase during preprocessing. The <a href=\"https://github.com/eli64s/readme-ai/tree/main/readmeai/parsers\">parsers</a> handles the majority of this logic currently.\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\"><img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/getting-started/prerequisites-and-installation.png\" alt=\"getting-started-section-prerequisites\" width=\"700\">\n </td>\n </tr>\n <tr>\n <td><b>Installation Guide</b><br>\n <p>\u25ce <code>Installation</code>, <code>Usage</code>, and <code>Testing</code> guides are generated based on the project's dependency files and codebase configuration.\n </p>\n <tr>\n <td align=\"center\"><img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/getting-started/usage-and-testing.png\" alt=\"getting-started-section-usage-and-testing\" width=\"700\">\n </td>\n </tr>\n </table>\n</details>\n\n<details closed>\n <summary><strong>\ud83d\udd30 Contributing Guidelines</strong></summary>\n <br>\n <table>\n <tr>\n <td><b>Contributing Guide</b><br>\n <p>\u25ce Dropdown section that outlines general process for contributing to your project.</p>\n <p>\u25ce Provides links to your contributing guidelines, issues page, and more resources.</p>\n <p>\u25ce Graph of contributors is also included.</p>\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\"><img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/contributing/contributing-guidelines.png\" alt=\"contributing-guidelines-section\" width=\"700\">\n </td>\n </tr>\n <tr>\n <td><b>Additional Sections</b><br>\n <p>\u25ce <code>Project Roadmap</code>, <code>Contributing Guidelines</code>, <code>License</code>, and <code>Acknowledgements</code> are included by default.\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\"><img src=\"https://raw.githubusercontent.com/eli64s/readme-ai/main/docs/docs/assets/img/contributing/footer.png\" alt=\"footer-readme-section\" width=\"700\"></td>\n </tr>\n </table>\n</details>\n\n---\n\n## \ud83d\udef8 Getting Started\n\n### System Requirements\n\n- **Python**: `3.9+`\n- **Package Manager/Container**: `pip`, `pipx`, `uv`, or `docker`.\n\n### Supported Sources\n\nThe following git hosting services are supported for source code retrieval, along with your local file system:\n\n- [**GitHub**](https://github.com/)\n- [**GitLab**](https://gitlab.com/)\n- [**Bitbucket**](https://bitbucket.org/)\n- [**File System**](https://en.wikipedia.org/wiki/File_system)\n\n### Supported LLM APIs\n\nTo enable the full functionality of `readmeai`, an account and API key are required for one of the following providers:\n\n- [**OpenAI**](https://platform.openai.com/docs/quickstart/account-setup): Recommended for general use. Requires an OpenAI account and API key.\n- [**Ollama**](https://github.com/ollama/ollama): Free and open-source. No API key required.\n- [**Anthropic**](https://www.anthropic.com/): Requires an Anthropic account and API key.\n- [**Google Gemini**](https://ai.google.dev/tutorials/python_quickstart): Requires a Google Cloud account and API key.\n- [**Offline Mode**](https://github.com/eli64s/readme-ai/blob/main/examples/offline-mode/readme-litellm.md): Generates a README without making API calls.\n\n<sub>For more information on setting up an API key, refer to the provider's documentation.</sub>\n\n## \u2699\ufe0f Installation\n\nChoose your preferred installation method:\n\n<!--\n#### Using `pip`\n[![pip](https://img.shields.io/badge/PyPI-3775A9.svg?style=flat&logo=PyPI&logoColor=white)](https://pypi.org/project/readmeai/)\n-->\n\n### <img width=\"2%\" src=\"https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/python.svg\"> Pip\n\n```sh\n\u276f pip install readmeai\n```\n\n<!--\n#### Using `pipx`\n[![pipx](https://img.shields.io/badge/pipx-2CFFAA.svg?style=flat&logo=pipx&logoColor=black)](https://pipxproject.github.io/pipx/installation/)\n-->\n\n### <img width=\"2%\" src=\"https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/pipx.svg\"> Pipx\n\n```sh\n\u276f pipx install readmeai\n```\n\n> [!TIP]\n> <sub>Using [pipx](https://pipx.pypa.io/stable/installation/) allows you to install and run Python command-line applications in isolated environments, which helps prevent dependency conflicts with other Python projects.</sub>\n\n<!--\n#### Using `docker`\n[![docker](https://img.shields.io/badge/Docker-2496ED.svg?style=flat&logo=Docker&logoColor=white)](https://hub.docker.com/r/zeroxeli/readme-ai)\n -->\n\n### <img width=\"2%\" src=\"https://raw.githubusercontent.com/eli64s/readme-ai/3052baaca03db99d00808acfec43a44e81ecbf7f/docs/docs/assets/svg/docker.svg\"> Docker\n\nPull the latest Docker image from the Docker Hub repository.\n\n```sh\n\u276f docker pull zeroxeli/readme-ai:latest\n```\n\n### <img width=\"2%\" src=\"https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/git.svg\"> From source\n\n<details><summary>Click to expand instructions</summary>\n\n1. **Clone the repository:**\n\n ```sh\n \u276f git clone https://github.com/eli64s/readme-ai\n ```\n\n2. **Navigate to the `readme-ai` directory:**\n\n ```sh\n \u276f cd readme-ai\n ```\n\n3. **Install dependencies:**\n\n ```sh\n \u276f pip install -r setup/requirements.txt\n ```\n\nAlternatively, the project can be setup using the bash script below:\n\n### <img width=\"2%\" src=\"https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/gnubash.svg\"> Bash\n\n1. **Run the setup script:**\n\n\t```sh\n\t\u276f bash setup/setup.sh\n\t```\n\nOr, use `poetry` to build the project:\n\n### <img width=\"2%\" src=\"https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/poetry.svg\"> Poetry\n\n1. **Install dependencies using Poetry:**\n\n\t```sh\n\t\u276f poetry install\n\t```\n\n</details><br>\n\n> [!IMPORTANT]\n> To use the **Anthropic** and **Google Gemini** clients, additional dependencies are required. See the following installation commands:\n> - **Anthropic:**\n> ```sh\n> \u276f pip install \"readmeai[anthropic]\"\n> ```\n> - **Google Gemini:**\n> ```sh\n> \u276f pip install \"readmeai[google-generativeai]\"\n> ```\n\n## \ud83e\udd16 Running the CLI\n\n**1. Set Up Environment Variables**\n\nWith OpenAI:\n\n```sh\n\u276f export OPENAI_API_KEY=<your_api_key>\n\n# Or for Windows users:\n\n\u276f set OPENAI_API_KEY=<your_api_key>\n```\n\n<details closed><summary>Additional Providers (Ollama, Anthropic, Google Gemini)</summary><br>\n\n<details closed><summary>Ollama</summary><br>\n\nRefer to the [Ollama documentation](https://github.com/ollama/ollama) for more information on setting up the Ollama API. Here is a basic example:\n\n1. Pull your model of choice from the Ollama repository:\n\n\t```sh\n\t\u276f ollama pull mistral:latest\n\t```\n\n2. Start the Ollama server and set the `OLLAMA_HOST` environment variable:\n\n\t```sh\n\t\u276f export OLLAMA_HOST=127.0.0.1 && ollama serve\n\t```\n\n</details>\n\n<details closed><summary>Anthropic</summary>\n\n1. Export your Anthropic API key:\n\n\t```sh\n\t\u276f export ANTHROPIC_API_KEY=<your_api_key>\n\t```\n\n</details>\n\n<details closed><summary>Google Gemini</summary>\n\n1. Export your Google Gemini API key:\n\n\t```sh\n\t\u276f export GOOGLE_API_KEY=<your_api_key\n\t```\n\n</details>\n\n</details>\n\n**2. Generate a README**\n\nRun the following command, replacing the repository URL with your own:\n\n```sh\n\u276f readmeai --repository https://github.com/eli64s/readme-ai --api openai\n```\n\n> [!IMPORTANT]\n> By default, the `gpt-3.5-turbo` model is used. Higher costs may be incurred when more advanced models.\n>\n\nRun with `Ollama` and set `llama3` as the model:\n\n```sh\n\u276f readmeai --api ollama --model llama3 --repository https://github.com/eli64s/readme-ai\n```\n\nRun with `Anthropic`:\n\n```sh\n\u276f readmeai --api anthropic -m claude-3-5-sonnet-20240620 -r https://github.com/eli64s/readme-ai\n```\nRun with `Google Gemini`:\n\n```sh\n\u276f readmeai --api gemini -m gemini-1.5-flash -r https://github.com/eli64s/readme-ai\n```\n\nUse a `local` directory path:\n\n```sh\nreadmeai --repository /path/to/your/project\n```\n\nAdd more customization options:\n\n```sh\n\u276f readmeai --repository https://github.com/eli64s/readme-ai \\\n --output readmeai.md \\\n --api openai \\\n --model gpt-4 \\\n --badge-color A931EC \\\n --badge-style flat-square \\\n --header-style compact \\\n --toc-style fold \\\n --temperature 0.9 \\\n --tree-depth 2\n --image LLM \\\n --emojis\n```\n\n### <img width=\"2%\" src=\"https://raw.githubusercontent.com/eli64s/readme-ai/3052baaca03db99d00808acfec43a44e81ecbf7f/docs/docs/assets/svg/docker.svg\"> Docker\n\nRun the Docker container with the OpenAI client:\n\n```sh\n\u276f docker run -it --rm \\\n -e OPENAI_API_KEY=$OPENAI_API_KEY \\\n -v \"$(pwd)\":/app zeroxeli/readme-ai:latest \\\n --repository https://github.com/eli64s/readme-ai \\\n --api openai\n```\n\n### <img width=\"2%\" src=\"https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/git.svg\"> From source\n\n<details closed><summary><i>Click to expand instructions</i></summary>\n\n### <img width=\"2%\" src=\"https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/gnubash.svg\"> Bash\n\nIf you installed the project from source with the bash script, run the following command:\n\n1. **Activate the virtual environment:**\n\n ```sh\n \u276f conda activate readmeai\n ```\n\n2. **Run the CLI:**\n\n ```sh\n \u276f python3 -m readmeai.cli.main -r https://github.com/eli64s/readme-ai\n\t```\n\n### <img width=\"2%\" src=\"https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/poetry.svg\"> Poetry\n\n1. **Activate the virtual environment:**\n\n ```sh\n \u276f poetry shell\n ```\n\n2. **Run the CLI:**\n\n ```sh\n \u276f poetry run python3 -m readmeai.cli.main -r https://github.com/eli64s/readme-ai\n ```\n\n</details>\n\n### <img width=\"2%\" src=\"https://raw.githubusercontent.com/eli64s/readme-ai/5ba3f704de2795e32f9fdb67e350caca87975a66/docs/docs/assets/svg/streamlit.svg\"> Streamlit\n\nTry readme-ai directly in your browser, no installation required. See the <a href=\"https://github.com/eli64s/readme-ai-streamlit\">readme-ai-streamlit</a> repository for more details.\n\n[<img align=\"center\" src=\"https://static.streamlit.io/badges/streamlit_badge_black_white.svg\" width=\"20%\">](https://readme-ai.streamlit.app/)\n\n---\n\n## \ud83e\uddea Testing\n\n<!--\n#### Using `pytest`\n[![pytest](https://img.shields.io/badge/Pytest-0A9EDC.svg?style=flat&logo=Pytest&logoColor=white)](https://docs.pytest.org/en/7.1.x/contents.html)\n-->\n\nThe [pytest](https://docs.pytest.org/en/7.2.x/contents.html) and [nox](https://nox.thea.codes/en/stable/) frameworks are used for development and testing.\n\nInstall the dependencies using Poetry:\n\n```sh\n\u276f poetry install --with dev,test\n```\n\nRun the unit test suite using Pytest:\n\n```sh\n\u276f make test\n```\n\nRun the test suite against Python 3.9, 3.10, 3.11, and 3.12 using Nox:\n\n```sh\n\u276f make test-nox\n```\n\n> [!TIP]\n> <sub>Nox is an automation tool that automates testing in multiple Python environments. It is used to ensure compatibility across different Python versions.</sub>\n\n---\n\n## \ud83d\udd21 Configuration\n\nCustomize your README generation using these CLI options:\n\n| Option | Description | Default |\n|-------------------|-----------------------------------------------|-------------------|\n| `--align` | Text alignment in header | `center` |\n| `--api` | LLM API service provider | `offline` |\n| `--badge-color` | Badge color name or hex code | `0080ff` |\n| `--badge-style` | Badge icon style type | `flat` |\n| `--header-style` | Header template style | `classic` |\n| `--toc-style` \t| Table of contents style \t\t\t\t | `bullet` \t\t\t|\n| `--emojis` | Adds emojis to the README header sections | `False` |\n| `--image` | Project logo image | `blue` |\n| `--model` | Specific LLM model to use | `gpt-3.5-turbo` |\n| `--output` | Output filename | `readme-ai.md` |\n| `--repository` | Repository URL or local directory path | `None` |\n| `--temperature` | Creativity level for content generation | `0.1` |\n| `--tree-depth` | Maximum depth of the directory tree structure | `2` |\n\nRun the following command to view all available options:\n\n```sh\n\u276f readmeai --help\n```\n\n<sub>Visit the [Official Documentation][mkdocs] for more detailed information on configuration options, examples, and best practices.</sub>\n\n---\n\n## \ud83c\udfa8 Examples\n\nView example README files generated by readme-ai across various tech stacks:\n\n| Technology | Example Output | Repository | Description |\n|------------|---------------|------------|-------------|\n| Readme-ai | [readme-ai.md][default] | [readme-ai][readme-ai] | Readme-ai project |\n| Apache Flink | [readme-pyflink.md][modern-header] | [pyflink-poc][pyflink] | Pyflink project |\n| Streamlit | [readme-streamlit.md][svg-banner] | [readme-ai-streamlit][streamlit] | Streamlit web app |\n| Vercel & NPM | [readme-vercel.md][dalle-logo] | [github-readme-quotes][vercel] | Vercel deployment |\n| Go & Docker | [readme-docker-go.md][for-the-badge] | [docker-gs-ping][docker-golang] | Dockerized Go app |\n| FastAPI & Redis | [readme-fastapi-redis.md][fastapi-redis] | [async-ml-inference][fastapi] | Async ML inference service |\n| Java | [readme-java.md][compact-header] | [Minimal-Todo][java] | Minimalist todo Java app |\n| PostgreSQL & DuckDB | [readme-postgres.md][classic-header] | [Buenavista][postgres] | Postgres proxy server |\n| Kotlin | [readme-kotlin.md][readme-kotlin] | [android-client][kotlin] | Android client app |\n| Offline Mode | [offline-mode.md][offline-mode] | [litellm][litellm] | LLM API service |\n\n<sub>Find additional README examples in the [examples directory](https://github.com/eli64s/readme-ai/tree/main/examples).</sub>\n\n---\n\n## \ud83c\udfce\ud83d\udca8 Roadmap\n\n* [ ] Release `readmeai 1.0.0` with enhanced documentation management features.\n* [ ] Develop `Vscode Extension` to generate README files directly in the editor.\n* [ ] Develop `GitHub Actions` to automate documentation updates.\n* [ ] Add `badge packs` to provide additional badge styles and options.\n + [ ] Code coverage, CI/CD status, project version, and more.\n\n---\n\n## \ud83d\udd30 Contributing\n\nContributions are welcome! Please read the [Contributing Guide][contributing] to get started.\n\n- **\ud83d\udca1 [Contributing Guide][contributing]**: Learn about our contribution process and coding standards.\n- **\ud83d\udc1b [Report an Issue][issues]**: Found a bug? Let us know!\n- **\ud83d\udcac [Start a Discussion][discussions]**: Have ideas or suggestions? We'd love to hear from you.\n\n<br>\n<p align=\"left\">\n <a href=\"https://github.com{/eli64s/readme-ai/}graphs/contributors\">\n <img src=\"https://contrib.rocks/image?repo=eli64s/readme-ai\">\n </a>\n</p>\n\n---\n\n## \ud83c\udf97 License\n\nREADME-AI is released under the terms of the [MIT License][license].\n\n---\n\n## \ud83d\ude4c Acknowledgments\n\n* [Shields.io](https://shields.io/)\n* [Simple Icons](https://simpleicons.org/)\n* [Aveek-Saha/GitHub-Profile-Badges](https://github.com/Aveek-Saha/GitHub-Profile-Badges)\n* [Ileriayo/Markdown-Badges](https://github.com/Ileriayo/markdown-badges)\n* [tandpfun/skill-icons](https://github.com/tandpfun/skill-icons)\n\n<p align=\"right\"><a href=\"#-overview\">\u2b06\ufe0f Top</a></p>\n\n---\n\n<!-- Documentation -->\n[mkdocs]: https://eli64s.github.io/readme-ai \"Official Documentation\"\n\n<!-- GitHub Links -->\n[contributing]: https://github.com/eli64s/readme-ai/blob/main/CONTRIBUTING.md\n[issues]: https://github.com/eli64s/readme-ai/issues\n[discussions]: https://github.com/eli64s/readme-ai/discussions\n[license]: https://github.com/eli64s/readme-ai/blob/main/LICENSE\n\n<!-- Example READMEs -->\n[default]: https://github.com/eli64s/readme-ai/blob/main/examples/readme-ai.md \"readme-python.md\"\n[ascii-header]: https://github.com/eli64s/readme-ai/blob/main/examples/headers/ascii.md \"ascii.md\"\n[classic-header]: https://github.com/eli64s/readme-ai/blob/main/examples/headers/classic.md \"readme-postgres.md\"\n[compact-header]: https://github.com/eli64s/readme-ai/blob/main/examples/headers/compact.md \"readme-java.md\"\n[modern-header]: https://github.com/eli64s/readme-ai/blob/main/examples/headers/modern.md \"readme-pyflink.md\"\n[svg-banner]: https://github.com/eli64s/readme-ai/blob/main/examples/banners/svg-banner.md \"readme-streamlit.md\"\n[dalle-logo]: https://github.com/eli64s/readme-ai/blob/main/examples/logos/dalle.md \"readme-vercel.md\"\n[readme-kotlin]: https://github.com/eli64s/readme-ai/blob/main/examples/readme-kotlin.md \"readme-kotlin.md\"\n[for-the-badge]: https://github.com/eli64s/readme-ai/blob/main/examples/readme-docker-go.md \"readme-docker-go.md\"\n[fastapi-redis]: https://github.com/eli64s/readme-ai/blob/main/examples/readme-fastapi-redis.md \"readme-fastapi-redis.md\"\n[offline-mode]: https://github.com/eli64s/readme-ai/blob/main/examples/offline-mode/readme-litellm.md \"readme-litellm.md\"\n\n<!-- Example Repositories -->\n[readme-ai]: https://github.com/eli64s/readme-ai \"readme-ai\"\n[pyflink]: https://github.com/eli64s/pyflink-poc \"pyflink-poc\"\n[postgres]: https://github.com/jwills/buenavista \"Buenavista\"\n[java]: https://github.com/avjinder/Minimal-Todo \"minimal-todo\"\n[kotlin]: https://github.com/rumaan/file.io-Android-Client \"android-client\"\n[docker-golang]: https://github.com/olliefr/docker-gs-ping \"docker-gs-ping\"\n[vercel]: https://github.com/PiyushSuthar/github-readme-quotes \"github-readme-quotes\"\n[streamlit]: https://github.com/eli64s/readme-ai-streamlit \"readme-ai-streamlit\"\n[fastapi]: https://github.com/FerrariDG/async-ml-inference \"async-ml-inference\"\n[litellm]: https://github.com/BerriAI/litellm \"offline-mode\"\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Automated README file generator, powered by AI.",
"version": "0.5.99.post5",
"project_urls": {
"Documentation": "https://eli64s.github.io/readme-ai",
"Homepage": "https://github.com/eli64s/readme-ai"
},
"split_keywords": [
"ai-documentation",
" anthropic",
" badge-generator",
" cli",
" developer-tools",
" documentation",
" documentation-generator",
" gemini",
" gpt",
" gpt-4",
" markdown",
" markdown-generator",
" markdown-md",
" readme-md",
" readme-md-generator",
" readme-generator",
" readme-template",
" readme-md-generator"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3d09df24a6625a36a64e4ccbb2acf1dca2cf54bc508c4f3a4c580256ded74039",
"md5": "c52550c64c3f8e419c92ce0553bba971",
"sha256": "bbe69140a76223e39e5355d5c6aaf853ac35e5dbfedd00919ce1e02695538153"
},
"downloads": -1,
"filename": "readmeai-0.5.99.post5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c52550c64c3f8e419c92ce0553bba971",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 167230,
"upload_time": "2024-10-27T08:37:06",
"upload_time_iso_8601": "2024-10-27T08:37:06.958985Z",
"url": "https://files.pythonhosted.org/packages/3d/09/df24a6625a36a64e4ccbb2acf1dca2cf54bc508c4f3a4c580256ded74039/readmeai-0.5.99.post5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e359ce3a60e667ec071c01716ac3313daa279b37adb901aeb067dc2afb8f9141",
"md5": "e6f90049288446f40d7197a53ca5ad5a",
"sha256": "ae56dac1407a599b8821f14ff8e5b20996b22820b3327fab671807e1142fd1b4"
},
"downloads": -1,
"filename": "readmeai-0.5.99.post5.tar.gz",
"has_sig": false,
"md5_digest": "e6f90049288446f40d7197a53ca5ad5a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 149971,
"upload_time": "2024-10-27T08:37:08",
"upload_time_iso_8601": "2024-10-27T08:37:08.788021Z",
"url": "https://files.pythonhosted.org/packages/e3/59/ce3a60e667ec071c01716ac3313daa279b37adb901aeb067dc2afb8f9141/readmeai-0.5.99.post5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-27 08:37:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "eli64s",
"github_project": "readme-ai",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "readmeai"
}