Readmit is a powerful tool designed to streamline your documentation process by leveraging Artificial Intelligence to automatically generate various project files, including READMEs, CONTRIBUTING guides, and insightful commit messages. It consists of a Command-Line Interface (CLI) application written in Go and an AI-powered backend service built with Next.js and TypeScript. By analyzing your codebase and Git history, Readmit ensures your project documentation is always comprehensive, accurate, and up-to-date, allowing developers to focus on coding rather than manual documentation tasks.
- Automated README.md Generation: Generate comprehensive
README.mdfiles for your projects, covering essential sections like installation, usage, and project overview. - Automated CONTRIBUTING.md Generation: Create clear and professional
CONTRIBUTING.mdfiles to guide new contributors on how to engage with your project. - Intelligent Commit Message Generation: Get concise and conventional Git commit message suggestions based on your changes. Optimized: Now only sends your git diff to the AI, making it lightning fast.
- Smart Sync (
readmit push): One command to stage changes, AI-generate a commit message, commit them, and push to origin. - Vulnerability Reports (
REPORT.md): Scan your codebase for vulnerabilities and misconfigurations, generating a structured report to help identify and remediate security risks. - Smart Codebase Analysis: The CLI intelligently reads and processes your project files, automatically ignoring irrelevant content such as build artifacts, node modules,
.gitdirectories, temporary files, and various media files. - .gitignore Support: It now respects your project's
.gitignorerules, ensuring ignored files/folders (includingnode_modulesand glob patterns like*) are never sent for analysis. - Command Suggestions: Automatically detects typos and suggests the closest valid command or flag.
- Scalable AI Integration: Utilizes the Google GenAI service on the backend for robust and intelligent content generation.
| Category | Technology | Link | Description |
|---|---|---|---|
| CLI | Go | https://golang.org/ | The primary language for the command-line interface, providing performance and concurrency. |
| Cobra | https://cobra.dev/ | A library for creating powerful modern CLI applications in Go, used for command parsing and application structure. | |
net/http |
https://pkg.go.dev/net/http | Go's standard library for making HTTP requests to the Readmit backend API. | |
os/exec |
https://pkg.go.dev/os/exec | Used to execute external commands, specifically Git, for extracting diff information. | |
| Web/API | Next.js | https://nextjs.org/ | React framework used for the Readmit documentation site and hosting the AI generation API endpoints. |
| TypeScript | https://www.typescriptlang.org/ | Provides static typing to JavaScript, enhancing code quality and maintainability across the web application and API. | |
| Tailwind CSS | https://tailwindcss.com/ | A utility-first CSS framework for rapidly building custom designs, used for styling the Readmit documentation website. | |
| Supabase | https://supabase.com/ | An open-source Firebase alternative, utilized for secure file storage and generating signed URLs for codebase uploads. | |
| Google GenAI | https://ai.google.dev/ | The AI service powering the content generation capabilities, providing intelligent analysis and text generation. | |
| MDX | https://mdxjs.com/ | Allows writing JSX in Markdown documents, used for creating rich and interactive documentation content on the website. | |
| Radix UI/Shadcn UI | https://www.radix-ui.com/ | A set of unstyled, accessible UI components used as a foundation for the Readmit documentation website's user interface. | |
| Husky | https://typicode.github.io/husky/ | Git hooks for ensuring code quality by running scripts (like post-process.sh to generate search-data/documents.json) before committing or pushing changes. |
The easiest way to install Readmit is using the automatic install scripts.
curl -sSfL https://raw.githubusercontent.com/treasureuzoma/readmit/main/scripts/install.sh | shiwr -useb https://raw.githubusercontent.com/treasureuzoma/readmit/main/scripts/install.ps1 | iexYou can also download the binaries directly from the GitHub Releases page.
- Download the binary for your OS and architecture.
- Rename it to
readmit(orreadmit.exeon Windows). - Move it to a directory in your system
PATH.
You can verify the installation by running:
readmit --helpThis should display the help message for the Readmit CLI.
The readmit CLI provides a generate command to create various types of documentation files.
readmit generate [type]readme: Generates aREADME.mdfile in the current directory.contribution: Generates aCONTRIBUTING.mdfile in the current directory.commit: Generates a commit message and prints it to the console (based on your Git diff).docs: Generates comprehensive app and API documentation.dockerfile: Generates an optimizedDockerfilefor your project.watchtower: Scans for vulnerabilities and generates aREPORT.mdfile.push: Smart Sync: Stages changes, AI-generates a commit message, commits, and pushes to origin.
Generate a README.md file:
readmit generate readmeGenerate a CONTRIBUTING.md file:
readmit generate contributionGenerate a commit message:
readmit generate commitGenerate Comprehensive Docs (Folder):
readmit generate docsGenerate Comprehensive Docs (Single File):
readmit generate docs --single-fileGenerate a Dockerfile:
readmit generate dockerfileGenerate a REPORT.md file (Watchtower for vulnerabilities):
readmit watchtowerSmart Sync (Stage, Commit, and Push):
readmit push
# This runs: git add . -> AI generate commit -> git commit -> git pushPush to a specific branch:
readmit push mainWe welcome contributions to Readmit! Whether you want to report a bug, suggest a feature, or submit code, please follow these guidelines:
- Report Bugs: If you find a bug, please open an issue on our GitHub repository with a clear description of the problem and steps to reproduce it.
- Suggest Features: Have an idea for a new feature or improvement? Open an issue to discuss it with the community.
- Submit Pull Requests:
- Fork the repository and create a new branch for your feature or bug fix.
- Ensure your code adheres to the project's coding standards.
- Write clear and concise commit messages, adhering to Conventional Commits.
- Submit a pull request with a detailed description of your changes.