Package: readmeai
README-AIAutomated README file generator, powered by LLM APIsTable of Contents📍 Overview🤖 Demo🔮 Features🧑‍🎨 Examples🚀 Getting Started⚙️ Install🧑‍💻 Usage🧪 Tests🧩 Configuration🛠 Project Roadmap🤝 Contributing📍 OverviewObjectiveReadme-ai is a developer tool that auto-generates README.md files using a combination of data extraction and generative ai. Simply provide a repository URL or local path to your codebase and a well-structured and detailed README file will be generated for you.MotivationStreamlines documentation creation and maintenance, enhancing developer productivity. This project aims to enable all skill levels, across all domains, to better understand, use, and contribute to open-source software.[!IMPORTANT]Readme-ai is currently under development with an opinionated configuration and setup. It is vital to review all generated text from the LLM API to ensure it accurately represents your project.🤖 DemoStandard CLI usage, providing a repository URL to generate a README file.readmeai-cli-demoGenerate a README file without making API calls using the--api offlineCLI option.readmeai-streamlit-demo[!TIP]Offline mode is useful for generating a boilerplate README at no cost. View the offline README.md examplehere!🔮 FeaturesBuilt with flexibility in mind, readme-ai allows users to customize various aspects of the README using CLI options. Content is generated using a combination of data extraction and making a few calls to LLM APIs.Currently, four sections of the README file are generated using LLMs:i.Header: Project slogan that describes the repository in an engaging way.ii.Overview: Provides an intro to the project's core use-case and value proposition.iii.Features: Markdown table containing details about the project's technical components.iv.Modules: Codebase file summaries are generated and formatted into markdown tables.All other content is extracted from processing and analyzing repository metadata and files.Customizable HeaderThe header section is built using repository metadata and CLI options. Key features include:Badges: Svg icons that represent codebase metadata, provided byshields.ioandskill-icons.Project Logo: Select a project logo image from the base set or provide your image.Project Slogan: Catch phrase that describes the project, generated by generative ai.Table of Contents/Quick Links: Links to the different sections of the README file.See a few example headers generated byreadme-aibelow.default output (no options provided to cli)--alignment left --badge-style flat-square --image cloud--alignment left --badge-style flat --image gradient--badge-style flat --image custom--badge-style skills-light --image grey--badge-style flat-square--badge-style flat --image blackSee theConfigurationsection below for the complete list of CLI options and settings.📑 Codebase DocumentationRepository StructureA directory tree structure is generated using pure Python(tree.py)and embedded in the README.Codebase SummariesCode summaries are generated using LLMs and grouped by directory, displayed in markdown tables.📍 Overview & Features TableThe overview and features sections are generated using LLM APIs. Structured prompt templates are injected with repository metadata to help produce more accurate and relevant content.OverviewHigh-level introduction of the project, focused on the value proposition and use-cases, rather than technical aspects.Features TableDescribes technical components of the codebase, including architecture, dependencies, testing, integrations, and more.🚀 Dynamic Quickstart GuidesGetting Started or Quick StartGenerates structured guides for installing, running, and testing your project. This content is created by identifying dependencies and languages used in the codebase, and mapping this data using static config files such as thecommands.tomlfile.🤝 Contributing Guidelines & MoreAdditional SectionsThe remaining README sections are built from a baseline template that includes common sections such asProject Roadmap, Contributing Guidelines, License, and Acknowledgements.Contributing GuidelinesThe contributing guidelines has a dropdown that outlines a general process for contributing to your project.🧩 Template READMEsThis feature is currently under development. The template system will allow users to generate README files in different flavors, such as ai, data, web development, etc.README Template for ML & DataOverview: Project objectives, scope, outcomes.Project Structure: Organization and components.Data Preprocessing: Data sources and methods.Feature Engineering: Impact on model performance.Model Architecture: Selection and development strategies.Training: Procedures, tuning, strategies.Testing and Evaluation: Results, analysis, benchmarks.Deployment: System integration, APIs.Usage and Maintenance: User guide, model upkeep.Results and Discussion: Implications, future work.Ethical Considerations: Ethics, privacy, fairness.Contributing: Contribution guidelines.Acknowledgements: Credits, resources used.License: Usage rights, restrictions.🧑‍🎨 Examples⭑Output File 📄Input Repository 📁Repository Contents 🔢⭑readme-python.mdreadme-aiPython⭑readme-google-vertexai.mdreadme-aiPython⭑readme-typescript.mdchatgpt-app-react-tsTypeScript, React⭑readme-postgres.mdpostgres-proxy-serverPostgres, Duckdb⭑readme-kotlin.mdfile.io-android-clientKotlin, Android⭑readme-streamlit.mdreadme-ai-streamlitPython, Streamlit⭑readme-rust-c.mdrust-c-appC, Rust⭑readme-go.mdgo-docker-appGo⭑readme-java.mdjava-minimal-todoJava⭑readme-fastapi-redis.mdasync-ml-inferenceFastAPI, Redis⭑readme-mlops.mdmlops-coursePython, Jupyter⭑readme-local.mdLocal DirectoryFlink, Python🚀 Getting StartedRequirementsPython: 3.9+Package manager or container runtime:pipordockerrecommended.LLM API:OpenAIandGoogle Vertex AILLM APIs are currently supported.RepositoryA repository URL or local path to your codebase is required run readme-ai. The following are supported:GitHubGitLabBitbucketFile SystemOpenAI API KeyAn OpenAI API account and API key are needed to use readme-ai. Get started by creating an accounthere. Once you have an account, you can create an API key on theAPI settings page.[!WARNING]Before using readme-ai, its essential to understand the potential risks and costs associated with using AI-powered tools.Review Sensitive Information: Ensure all content in your repository is free of sensitive information before running the tool. This project does not remove sensitive data from your codebase, nor from the output README file.API Usage Costs: The OpenAI API is not free and costs can accumulate quickly! You will be charged for each request made by readme-ai. Be sure to monitor API usage costs using theOpenAI API Usage Dashboard.⚙️ InstallationUsingpippipinstallreadmeaiUsingdockerdockerpullzeroxeli/readme-ai:latestUsingcondacondainstall-cconda-forgereadmeaiFromsourceClone repository and change directory.$gitclonehttps://github.com/eli64s/readme-ai$cdreadme-aiUsingbash$bashsetup/setup.shUsingpoetry$poetryinstallSimiliary you can usepipenvorpipto install the requirements.txt.[!TIP]Usepipxto install and run Python command-line applications without causing dependency conflicts with other packages installed on the system.🧑‍💻 Runningreadme-aiOpenAI API KeySet your OpenAI API key as an environment variable.#UsingLinuxormacOS$exportOPENAI_API_KEY=<your_api_key>#UsingWindows$setOPENAI_API=<your_api_key>Google Vertex AISet your Google Cloud project ID and location as environment variables.$exportVERTEXAI_LOCATION=<your_location>$exportVERTEXAI_PROJECT=<your_project>Usingpipreadmeai--repositoryhttps://github.com/eli64s/readme-ai--apiopenaiUsingdockerdockerrun-it\-eOPENAI_API_KEY=$OPENAI_API_KEY\-v"$(pwd)":/appzeroxeli/readme-ai:latest\-rhttps://github.com/eli64s/readme-aiUsingstreamlitTry directly in your browser onStreamlit, no installation required! For more details, check out thereadme-ai-streamlitrepository.FromsourceUsingbash$condaactivatereadmeai$python3-mreadmeai.cli.main-rhttps://github.com/eli64s/readme-aiUsingpoetry$poetryshell$poetryrunpython3-mreadmeai.cli.main-rhttps://github.com/eli64s/readme-ai🧪 TestsUsingpytest$makepytestUsingnox$nox-fnoxfile.py[!TIP]Usenoxto test application against multiple Python environments and dependencies!🧩 ConfigurationRun thereadmeaicommand in your terminal with the following options to tailor your README file.CLI OptionsOptionTypeDescriptionDefault Value--alignment,-aStringAlign the text in the README.md file's header.center--apiStringLLM API service to use for text generation.None--badge-styleStringBadge icon style types for README.md badges.see below--badge-colorStringBadge color name or hex code.0080ff--emojis,-eBooleanAdds emojis to the README.md file's header sections.False--image,-iStringProject logo image displayed in the README file header.blue🚧 --languageStringLanguage for generating the README.md file.en--max-tokensIntegerMaximum context window of the LLM API.3899--model,-mStringLLM API to use for text generation.gpt-3.5-turbo--output,-oStringOutput file name for the README file.readme-ai.md--repository,-rStringRepository URL or local directory path.None--temperature,-tFloatSets the creativity level for content generation.1.0🚧 --templateStringREADME template style.default--tree-depthIntegerMaximum depth of the directory tree structure.3--helpDisplays help information about the command and its options.🚧 feature currently under developmentBadgesThe--badge-styleoption lets you select the style of the default badge set.StylePreviewdefaultflatflat-squarefor-the-badgeplasticskillsskills-lightsocialWhen providing the--badge-styleoption, readme-ai does two things:Formats the default badge set to match the selection (i.e. flat, flat-square, etc.).Generates an additional badge set representing your projects dependencies and tech stack (i.e. Python, Docker, etc.)Example$readmeai--badge-styleflat-square--repositoryhttps://github.com/eli64s/readme-aiOutput{... project logo ...}{... project name ...}{...project slogan...}Developed with the software and tools below.{... end of header ...}Project LogoSelect a project logo using the--imageoption. The following options are available:bluegradientblackcloudpurplegreyFor custom images, see the following options:Use--image customto invoke a prompt to upload a local image file path or URL.Use--image llmto generate a project logo using a LLM API (in development).🛠 Project RoadmapAdd new CLI options to enhance README file customization.--apiIntegrate singular interface for all LLM APIs (OpenAI, Google Cloud, etc.)--auditto review existing README files and suggest improvements.--templateto select a README template style (i.e. ai, data, web, etc.)--languageto generate README files in any language (i.e. zh-CN, ES, FR, JA, KO, RU)Develop robust documentation generator to build full project docs (i.e. Sphinx, MkDocs)Create community-driven templates for README files and gallery of readme-ai examples.GitHub Actions script to automatically update README file content on repository push.📒 ChangelogChangelog🤝 ContributingIf you would like to contribute to the project, please see the following guidelines:👩‍💻 Discussions🪲 Open an Issue📃 Contributing Guidelines📄 LicenseMIT👏 AcknowledgmentsBadgesShields.ioAveek-Saha/GitHub-Profile-BadgesIleriayo/Markdown-Badgestandpfun/skill-iconsReturn