Intelligent CLI tool to manage Django INSTALLED_APPS with smart package mapping and requirements.txt management
Project description
django-include-apps
A powerful CLI tool to intelligently manage Django apps in your INSTALLED_APPS setting. Install, add, remove, and maintain Django packages with smart package mapping and automatic requirements.txt management.
Features
- Smart Package Mapping — 85+ pre-configured mappings (e.g.,
djangorestframework→rest_framework) - Extended Configs — Auto-apply middleware, settings, URL patterns, and imports per package
- Auto Migrations — Prompt to run
python manage.py migratewhen adding/removing packages that need it - Version Specifiers — Install exact versions (
djangorestframework==3.14.0,django-filter>=2.0) - Unused App Detection — Scan your project and remove apps not imported anywhere
- requirements.txt Sync — Automatically add, update, and remove packages
- Backup & Rollback — Auto-backup
settings.pywith one-command restore - Security — Move secrets to
.envwithsecure-settings - Health Checks — Run
doctorto audit your configuration - Interactive Prompts — Confirmations, multi-select, and skip options throughout
- Shell Completion — Tab-completion for bash, zsh, and fish
Installation
pip install django-include-apps
Quick Start
Add a Package
django-include-apps add-app djangorestframework
IMPORTANT: Configurations applied are based on the latest package documentation.
✅ djangorestframework installed via pip
✅ Added 'rest_framework' to INSTALLED_APPS
Configuration for: djangorestframework
• URL Pattern: path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
• Settings:
REST_FRAMEWORK = {
"DEFAULT_PERMISSION_CLASSES": ["rest_framework.permissions.IsAuthenticated"],
"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.PageNumberPagination",
"PAGE_SIZE": 10,
...
}
? Found additional configuration for package 'djangorestframework' (Space to toggle):
[x] URL Patterns
[x] Required Settings
? Proceed? Yes, apply changes
✅ Added URL pattern 'api-auth/'
✅ Added REST_FRAMEWORK settings
✅ Added djangorestframework==3.15.2 to requirements.txt
Add Multiple Packages
django-include-apps add-app djangorestframework django-cors-headers django-filter
Remove an App
# Remove a specific app
django-include-apps remove-app rest_framework
# Or scan for unused apps (interactive)
django-include-apps remove-app
Install from requirements.txt
django-include-apps install-requirements -r requirements.txt
Installs all packages, detects Django-related ones, and offers to add them to INSTALLED_APPS with extended configuration.
Custom Project Directory
django-include-apps add-app djangorestframework -d /path/to/django/project
All commands accept --start-dir / -d to target a specific project.
Commands Overview
| Command | Description |
|---|---|
add-app |
Add one or more apps to INSTALLED_APPS |
remove-app |
Remove apps or scan for unused ones |
install-requirements |
Install from requirements.txt and configure apps |
status |
Show project configuration overview |
doctor |
Run health checks on your project |
show-config |
Display extended config for a package |
view-mappings |
Browse all 85+ package mappings |
diff |
Preview changes before applying (dry run) |
sync |
Compare INSTALLED_APPS ↔ requirements.txt |
update-configs |
Check for updated package configurations |
graph |
Visualize package dependencies |
profile |
Save/apply/export configuration profiles |
init-env |
Create a virtual environment |
secure-settings |
Move secrets to .env |
rollback |
Restore settings.py from backup |
setup-hooks |
Set up pre-commit hooks |
docker-init |
Generate Docker configuration |
tutorial |
Interactive learning guide |
completion |
Shell auto-completion setup |
mapping |
Manage custom package mappings |
📖 Full Command Reference → — Every command with all flags, variants, and sample output.
Supported Packages
85+ pre-configured Django packages with smart mapping:
| Package | INSTALLED_APPS Name |
|---|---|
djangorestframework |
rest_framework |
django-cors-headers |
corsheaders |
django-filter |
django_filters |
django-allauth |
allauth |
django-debug-toolbar |
debug_toolbar |
django-crispy-forms |
crispy_forms |
django-extensions |
django_extensions |
channels |
channels |
celery |
celery |
django-storages |
storages |
Note: Packages like
pillow,psycopg2,gunicorn, andmysqlclientare dependency-only and aren't added toINSTALLED_APPS.
Disclaimer on configurations: The automatic configuration settings provided by
django-include-apps(forMIDDLEWARE,urls.py, etc.) are based on the standard and latest documentation of the respective packages at the time of mapping.
Use django-include-apps view-mappings to see the complete list. Unmapped packages are handled interactively with an option to save for future use.
Protected Django Apps
Core Django apps (django.contrib.*) are automatically protected from removal:
admin · auth · contenttypes · sessions · messages · staticfiles
Requirements
- Python 3.8+
- Django project with
settings.py - Virtual environment (recommended)
Example Project
A ready-to-use demo project is included to try every command hands-on:
cd django-include-apps/examples/demo_project
django-include-apps add-app djangorestframework
django-include-apps status
Contributing
Contributions are welcome! To add a new package mapping:
- Fork the repository
- Add the mapping to
package_configs.json - Submit a pull request
Have a feature idea? Open an issue.
License
MIT License — see LICENSE for details.
Author
Contributors
- Rohan Shirude — remove-app functionality and feature enhancements
Links
- Repository: https://github.com/Rohan7654/django-include-apps
- PyPI: https://pypi.org/project/django-include-apps/
- Issues: https://github.com/Rohan7654/django-include-apps/issues
- Changelog: CHANGELOG.md
- Demo Project: examples/
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_include_apps-1.1.1.tar.gz.
File metadata
- Download URL: django_include_apps-1.1.1.tar.gz
- Upload date:
- Size: 48.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ce6807052df4ef803f81f1c33f348ca555d3b517b830a9bce489acb9cf8195c
|
|
| MD5 |
ea13a6be14675c037a4861063ac45b82
|
|
| BLAKE2b-256 |
0ccbd056ed94f3572861e24c2b7b58036f4cba62a411aaa4e58073c743e34c32
|
File details
Details for the file django_include_apps-1.1.1-py3-none-any.whl.
File metadata
- Download URL: django_include_apps-1.1.1-py3-none-any.whl
- Upload date:
- Size: 45.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50d9a08e20e5226ef2c305a668ef12719781990651f619353acf46eb7684b424
|
|
| MD5 |
2d67de60ebd3ab35263a1d2ce944fc7e
|
|
| BLAKE2b-256 |
0013d11ec7dc1e12ffa81603f8d17a50981006a85696ae6aa49482448c26eb42
|