Install
openclaw skills install readme-generatorGenerate a production-quality README.md by analyzing project structure, framework, and code
openclaw skills install readme-generatorAnalyze a project's structure and generate a comprehensive, framework-aware README.md.
Read these files (if they exist):
package.json / pyproject.toml / Cargo.toml / go.mod — name, description, version, depstsconfig.json — TypeScript configdocker-compose.yml / Dockerfile — containerization.github/workflows/ — CI/CDLICENSE / LICENSE.md — license typesrc/index.*, src/main.*, app.*, main.*, index.*tests/ / test/ / __tests__/ / spec/ — test setup# Get file tree (depth 3, ignore common dirs)
find . -maxdepth 3 -not -path '*/node_modules/*' -not -path '*/.git/*' -not -path '*/dist/*' -not -path '*/__pycache__/*' | head -100
# Windows alternative:
Get-ChildItem -Recurse -Depth 3 -Exclude node_modules,.git,dist,__pycache__ | Select-Object -First 100 FullName
| Signal | Framework |
|---|---|
next.config.* or "next" in deps | Next.js |
"express" in deps | Express.js |
"fastapi" in deps | FastAPI |
"django" in deps | Django |
"flask" in deps | Flask |
"react" in deps (no next) | React (CRA/Vite) |
"vue" in deps | Vue.js |
"svelte" in deps | SvelteKit |
Cargo.toml with [[bin]] | Rust CLI |
Cargo.toml with actix-web/axum | Rust Web |
go.mod | Go |
Based on detected ecosystem:
Node.js: Check for lockfiles to determine package manager.
pnpm-lock.yaml → pnpm install / pnpm devyarn.lock → yarn / yarn devpackage-lock.json → npm install / npm run devscripts in package.json for available commands.Python: Check for pip, poetry, pipenv.
poetry.lock → poetry install / poetry run ...Pipfile → pipenv install / pipenv run ...requirements.txt → pip install -r requirements.txtRust: cargo build / cargo run
Go: go build / go run .
Build badge URLs from detected tools:



Only include badges for things actually detected. Common badges: license, language/runtime version, CI status, test coverage.
Use this structure:
# Project Name
Brief description from package.json/pyproject.toml or inferred from code.
## Table of Contents
- [Features](#features)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Usage](#usage)
- [API Reference](#api-reference) ← only if applicable
- [Configuration](#configuration) ← only if env vars detected
- [Testing](#testing)
- [Deployment](#deployment) ← only if Docker/CI detected
- [Contributing](#contributing)
- [License](#license)
## Features
- Bullet list of key capabilities (infer from code structure, routes, exports)
## Prerequisites
- Runtime version (node >= 18, python >= 3.10, etc.)
- Required system tools (Docker, database, etc.)
## Installation
[Package-manager-specific install commands from Step 3]
## Usage
[Dev/start commands, example API calls if it's a server]
## API Reference
[Only for libraries/APIs — list exported functions or endpoints]
## Configuration
[Environment variables — reference env-setup skill if complex]
## Testing
[Test runner command: npm test, pytest, cargo test, etc.]
## Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feat/amazing-feature`)
3. Commit your changes (`git commit -m 'feat: add amazing feature'`)
4. Push to the branch (`git push origin feat/amazing-feature`)
5. Open a Pull Request
## License
[Detected license or "See LICENSE file"]
Write to README.md in the project root. If one exists, ask user before overwriting — offer to write to README.generated.md instead.
| Error | Resolution |
|---|---|
| Can't detect framework | Generate a generic README; ask user to specify |
| No description available | Use directory name; prompt user to add one |
| No license file | Note it's missing; suggest adding one |
| Very large project | Limit tree scan depth; focus on src/ and root config |
Built by Clawb (SOVEREIGN) — more skills at [coming soon]