readme-forge-cli
Intelligent README.md generator — analyzes projects, detects tech stacks, and forges professional documentation automatically.
Features
- Auto-Detection — Detects language, frameworks, project type, license automatically
- 20+ Languages — Python, JavaScript, TypeScript, Go, Rust, Java, Ruby, C#, and more
- 50+ Frameworks — Django, React, FastAPI, Next.js, Spring Boot, Rails, and more
- Smart Badges — Auto-generates shields.io badges for language, version, license, CI, PyPI/npm
- Tech Stack Table — Categorized framework display with language versions
- Directory Tree — Optional project structure visualization
- Template Support — Built-in templates (minimal, detailed) or custom Jinja2 templates
- Configurable Sections — Toggle badges, TOC, features, installation, usage, contributing
- Multiple Styles — Banner, simple, or minimal header styles
- Rich Terminal UI — Beautiful project analysis output with Rich
Installation
pip install readme-forge-cli
Quick Start
# Generate README for current project
readme-forge generate .
# Preview without writing
readme-forge generate . --preview
# Analyze project without generating
readme-forge analyze .
# Quick detection (great for scripting)
readme-forge detect . --format json
Commands
readme-forge generate
Generate a README.md for your project.
readme-forge generate [PATH] [OPTIONS]
Options:
-o, --output TEXT Output file path (default: README.md)
--style [banner|simple|minimal] Header style
--badge-style [flat|flat-square|for-the-badge|plastic] Badge style
--no-badges Skip badges
--no-toc Skip table of contents
--no-features Skip features section
--no-install Skip installation section
--no-usage Skip usage section
--no-contributing Skip contributing section
--no-license Skip license section
--tree Include project structure tree
--tree-depth INT Tree depth (default: 3)
--api Include API reference section
--emoji / --no-emoji Use emoji in headers (default: on)
--preview Preview without writing file
-f, --force Overwrite existing README
-q, --quiet Minimal output
Example:
$ readme-forge generate ./my-project --force
🔍 Analyzing project at my-project...
╭─── 📋 Project Analysis ─────────────────────────────╮
│ Name my-awesome-tool │
│ Description An awesome CLI tool │
│ Version 2.1.0 │
│ Type CLI Tool │
│ Language Python │
│ Frameworks Click, pytest, Hatch │
│ License MIT │
│ Author Jane Dev │
│ Structure ✅ Tests ✅ CI/CD ✅ Docker │
╰──────────────────────────────────────────────────────╯
╭─── ✅ README Generated ─────────────────────────────╮
│ Output README.md │
│ Sections 8 │
│ Badge Style flat │
│ Header Style banner │
╰──────────────────────────────────────────────────────╯
readme-forge analyze
Analyze a project and display detected information.
readme-forge analyze [PATH]
readme-forge tree
Display the project directory tree.
readme-forge tree [PATH] [--depth INT]
readme-forge stats
Show project file statistics.
readme-forge stats [PATH]
readme-forge detect
Quick detection for scripting and CI/CD.
readme-forge detect [PATH] [--format text|json]
JSON output:
{
"name": "my-project",
"language": "Python",
"languages": ["Python", "TypeScript"],
"frameworks": ["FastAPI", "Docker", "GitHub Actions"],
"project_type": "API Server",
"license": "MIT",
"version": "1.0.0"
}
readme-forge templates
List available README templates.
readme-forge from-template
Generate README from a built-in or custom Jinja2 template.
readme-forge from-template [PATH] -t TEMPLATE [-o OUTPUT] [-f]
Supported Languages
| Language | Extensions |
|---|---|
| Python | .py |
| JavaScript | .js, .jsx |
| TypeScript | .ts, .tsx |
| Go | .go |
| Rust | .rs |
| Java | .java |
| C# | .cs |
| C/C++ | .c, .cpp, .cc |
| Ruby | .rb |
| PHP | .php |
| Swift | .swift |
| Kotlin | .kt, .kts |
| Dart | .dart |
| Shell | .sh, .bash |
| Scala | .scala |
| Elixir | .ex, .exs |
| Haskell | .hs |
Detected Frameworks
Python: Django, Flask, FastAPI, Click, Typer, pytest, Hatch, Poetry, setuptools, Sphinx, Celery, SQLAlchemy, Pydantic
JavaScript/TypeScript: React, Next.js, Vue.js, Angular, Express, NestJS, Vite, Webpack, Jest, Mocha, ESLint, Prettier, Tailwind CSS, Storybook
Go: Gin, Echo, Fiber, Cobra
Rust: Actix, Rocket, Tokio, clap, serde
Java: Spring Boot, Maven, Gradle
Ruby: Rails, Sinatra, RSpec
DevOps: Docker, Kubernetes, Terraform, GitHub Actions, GitLab CI
Custom Templates
Create a Jinja2 template file:
# {{ info.name }}
{{ info.description }}
**Language:** {{ info.primary_language.value }}
**License:** {{ info.license.value }}
{% for fw in info.frameworks %}
- {{ fw.value }}
{% endfor %}
Use it:
readme-forge from-template . -t my-template.j2 -o README.md
Development
git clone https://github.com/SanjaySundarMurthy/readme-forge.git
cd readme-forge
pip install -e ".[dev]"
pytest tests/ -v
License
MIT License — see LICENSE for details.
Metadata
Release files for readme-forge-cli 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| readme_forge_cli-1.0.0.tar.gz | 34.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| readme_forge_cli-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.2 kB
Release files / readme_forge_cli-1.0.0.tar.gz
| Download URL | readme_forge_cli-1.0.0.tar.gz |
|---|---|
| Size | 34.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d044bbb290dd61814705807e1299d1af5772052fb61a735ca72f4f83039dc4f7
|
|
BLAKE2b-256 checksum How to use checksums |
b845797bbeec9001d656121c5c20200dd21fbc6ebc7a61968cdab34bfb7dea0c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.7
|
Release files / readme_forge_cli-1.0.0-py3-none-any.whl
| Download URL | readme_forge_cli-1.0.0-py3-none-any.whl |
|---|---|
| Size | 26.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
92bea922e91ff1ba83f61623d16cc257a3d6db2ae0fd8b25a77e4e73383c9b9a
|
|
BLAKE2b-256 checksum How to use checksums |
14579d769d9273b7348c9e3d96e81e46e30853b922feadde5a39818964007b1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.7
|
Security for readme-forge-cli 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.