Transform messy repositories into maintainable documentation, automatically.
AutoReadMe is a lightweight CLI tool that generates professional-grade README files from project analysis. Zero configuration. Intelligent defaults. Built for teams and CI/CD pipelines.
README files are often an afterthought:
- Outdated as projects evolve
- Inconsistently structured across teams
- Time-consuming to maintain manually
- Frequently missing critical sections (setup, architecture, troubleshooting)
AutoReadMe solves this by analyzing your codebase and generating documentation that reflects reality.
- Scans your project structure, dependencies, and scripts
- Detects project type (Node.js, Python, or generic)
- Generates a structured, polished README with zero manual effort
- Integrates seamlessly into CI/CD pipelines
- Zero Configuration: Works immediately with sensible defaults
- Smart Detection: Identifies Node.js, Python, or generic projects automatically
- Git Integration: Pulls repository URL and metadata from
.git/config - Customizable Templates: Handlebars-based templates for full flexibility
- CI/CD Ready: Includes GitHub Action for automatic README updates on every push
- Script Discovery: Auto-lists available npm/Python scripts for quick reference
- Comprehensive Error Handling: Helpful messages when something goes wrong
npm install -g autoreadmegit clone https://github.com/frpboy/autoreadme.git
cd autoreadme
npm install
npm run buildautoreadme generateThis creates/overwrites README.md in the current directory.
# Specify template type
autoreadme generate --template node
# Custom output path
autoreadme generate --out docs/README.md
# Display help
autoreadme generate --helpAutoReadMe intelligently detects your project:
| Detection | Template | File Markers |
|---|---|---|
| Node.js | node.hbs |
package.json present |
| Python | python.hbs |
requirements.txt present |
| Generic | default.hbs |
No recognized markers |
src/
├── index.ts # CLI entry point and command routing
├── scanner.ts # Project type detection and metadata extraction
├── generator.ts # README generation logic
└── templates/ # Handlebars templates
├── node.hbs
├── python.hbs
└── default.hbs
Templates use Handlebars syntax and have access to:
{
projectName: string // Inferred from package.json or directory
description?: string // From package.json or manual input
license?: string // License type
type: 'node' | 'python' | 'default'
usageExample?: string // CLI command examples
dependencies?: string[] // Package dependencies
author?: string // Author information
repository?: string // Git repository URL
scripts?: string[] // Available npm/Python scripts
badges: { // Pre-formatted status badges
build: string
license: string
}
}- Create a new
.hbsfile insrc/templates/ - Use
{{variable}}for text,{{{variable}}}for HTML/code - Test with example projects in
test/
Example:
Automatically regenerate your README on every push:
- Copy
.github/workflows/autoreadme.ymlto your repository - Commit and push the workflow file
- GitHub Actions will run automatically on main branch pushes
The workflow:
- Installs dependencies
- Builds the project
- Generates a fresh README
- Commits changes if any (automatic version bump friendly)
npm run buildCompiles TypeScript to dist/ using tsup.
npm run test:local
cd test/example-node
node ../../dist/index.js generatenpm run dev- Run in watch mode with ts-nodenpm run build- Build using tsupnpm run start- Run the compiled CLInpm run test:local- Test against example projectsnpm run test- Build and generate test README
Can I customize the generated README?
Yes. Either modify templates in src/templates/ or use custom templates with the --template flag.
Does it overwrite my existing README?
Yes, by default. Use --out to save to a different file.
How do I add support for a new language/framework?
Create a new .hbs template and add detection logic in scanner.ts. See CONTRIBUTING.md for details.
Can I use this in CI/CD without GitHub Actions?
Absolutely. The CLI works in any environment—just run autoreadme generate in your pipeline.
- Speed over perfection: Generate useful docs in seconds, refine manually if needed
- Zero friction: No config files, no setup wizards
- Extensibility: Easy to add new templates and detection methods
- Maintainability: Clear separation of concerns (scanning, generation, templates)
- Support for Rust, Go, Java, and other languages
- AI-powered content enhancement (optional)
- Interactive customization mode
- Badge configuration (build status, coverage, etc.)
- Plugin system for extensibility
- Multi-language README generation
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
Quick start:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
MIT License - See LICENSE for details.
- Bug reports: Open an issue
- Feature requests: Discussions
- Security concerns: Please email directly (see LICENSE for contact)
Check existing issues before creating new ones to avoid duplicates.
- Commander.js - Powerful CLI framework
- Handlebars - Logic-less templates
- fs-extra - File system utilities
- TypeScript - Type-safe JavaScript