
Security News
Meet Socket at Black Hat Europe and BSides London 2025
Socket is heading to London! Stop by our booth or schedule a meeting to see what we've been working on.
autoreqgen
Advanced tools
⚡ A smarter alternative to pipreqs — AutoReqGen scans your entire project recursively, accurately generates requirements.txt with exact versions, formats your code using tools like Black or isort, and even auto-generates documentation from your docstrings. One tool to automate and optimize your Python workflow.
pip install autoreqgen
autoreqgen scan .
autoreqgen generate .
autoreqgen add requests
autoreqgen format black .
autoreqgen docs . --output docs.md
autoreqgen watch .
autoreqgen start
autoreqgen freeze
myproject/
├── main.py
├── utils/
│ └── helper.py
├── requirements.txt
├── DOCUMENTATION.md
Scan a project to identify all Python imports:
autoreqgen scan /path/to/project
Generate a requirements.txt file with all necessary packages:
# Default (with version numbers)
autoreqgen generate /path/to/project
# Without version numbers
autoreqgen generate /path/to/project --no-versions
# Output as JSON
autoreqgen generate /path/to/project --as-json
# Include all imports (even standard library)
autoreqgen generate /path/to/project --all
Add packages to your project and requirements.txt:
# Add single package
autoreqgen add requests
# Add multiple packages
autoreqgen add requests pandas numpy
# Add with specific version
autoreqgen add "requests>=2.25.0"
Freeze your environment to create a reproducible requirements.txt:
autoreqgen freeze
Format your code using different tools:
# Format with black
autoreqgen format black /path/to/project
# Format with isort
autoreqgen format isort /path/to/project
# Format with autopep8
autoreqgen format autopep8 /path/to/project
# Chain formatters
autoreqgen format black,isort /path/to/project
Generate documentation from your docstrings:
# Basic usage
autoreqgen docs /path/to/project
# Specify output file
autoreqgen docs /path/to/project --output API.md
# Generate for specific modules
autoreqgen docs /path/to/project --modules main.py,utils
Watch your project for changes and automatically update requirements.txt:
# Watch project
autoreqgen watch /path/to/project
# Watch with specific interval (in seconds)
autoreqgen watch /path/to/project --interval 5
# Watch and format on change
autoreqgen watch /path/to/project --format black
Start a new Python project with a virtual environment:
# Create a new virtual environment in the current directory
autoreqgen start
# Specify Python version
autoreqgen start --python 3.10
# Create with specific packages
autoreqgen start --packages "requests pandas"
AutoReqGen can be configured using environment variables or .env files:
AUTOREQGEN_DEFAULT_FORMAT=black
AUTOREQGEN_IGNORE_DIRS=tests,examples
AUTOREQGEN_INCLUDE_DEV=true
AUTOREQGEN_VERBOSE=true
AutoReqGen is designed to run in standard Python environments (local, virtualenv, Conda, etc.). While many features work fine in Google Colab, there are some important limitations to be aware of:
| Feature | Status | Description |
|---|---|---|
scan | ✅ | Scans Python files or projects to detect external imports. |
generate | ✅ | Generates requirements.txt from scanned imports. |
add <package> | ✅ | Installs a package and appends it to requirements.txt. |
freeze | ✅ | Freezes the current environment (via pip freeze) into requirements.txt. |
docs | ✅ | Extracts module, class, and function docstrings and generates markdown docs. |
| Feature | Status | Reason |
|---|---|---|
start (virtualenv creation) | ❌ | Google Colab does not allow creating or managing virtual environments. |
watch (live import updates) | ❌ | watchdog cannot run in sandboxed Colab environments due to limited file system access and event monitoring. |
When you run AutoReqGen inside Google Colab:
start command is disabled to prevent errors.⚠️ Virtual environment creation is not supported in Google Colab.
You can still install AutoReqGen in Colab and use it like this:
!pip install autoreqgen
!autoreqgen scan .
!autoreqgen generate .
!autoreqgen freeze
For full functionality, we recommend running AutoReqGen in a local or server-based Python environment (outside Colab).
Add to your .pre-commit-config.yaml:
repos:
- repo: local
hooks:
- id: autoreqgen
name: AutoReqGen
entry: autoreqgen generate .
language: system
pass_filenames: false
name: Update Requirements
on:
push:
paths:
- '**.py'
jobs:
update-requirements:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install AutoReqGen
run: pip install autoreqgen
- name: Update requirements.txt
run: autoreqgen generate .
- name: Commit changes
uses: EndBug/add-and-commit@v9
with:
message: 'chore: update requirements.txt'
add: 'requirements.txt'
Example Dockerfile:
FROM python:3.10-slim
WORKDIR /app
COPY . .
RUN pip install autoreqgen
RUN autoreqgen generate .
RUN pip install -r requirements.txt
CMD ["python", "main.py"]
FAQs
Smarter pipreqs alternative with code formatting and documentation generation
We found that autoreqgen demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket is heading to London! Stop by our booth or schedule a meeting to see what we've been working on.

Security News
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.