<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: K R Rohan</title>
    <description>The latest articles on DEV Community by K R Rohan (@k_rrohan_50fe7f64e44a6fc).</description>
    <link>https://dev.to/k_rrohan_50fe7f64e44a6fc</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3876141%2F7d30e182-9896-4ec4-82ab-0ae8567de6a6.jpg</url>
      <title>DEV Community: K R Rohan</title>
      <link>https://dev.to/k_rrohan_50fe7f64e44a6fc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/k_rrohan_50fe7f64e44a6fc"/>
    <language>en</language>
    <item>
      <title>I Got Tired of Manually Managing INSTALLED_APPS in Django, So I Built a CLI Tool</title>
      <dc:creator>K R Rohan</dc:creator>
      <pubDate>Mon, 13 Apr 2026 08:28:45 +0000</pubDate>
      <link>https://dev.to/k_rrohan_50fe7f64e44a6fc/i-got-tired-of-manually-managing-installedapps-in-django-so-i-built-a-cli-tool-3i74</link>
      <guid>https://dev.to/k_rrohan_50fe7f64e44a6fc/i-got-tired-of-manually-managing-installedapps-in-django-so-i-built-a-cli-tool-3i74</guid>
      <description>&lt;p&gt;Every Django developer knows this moment.&lt;/p&gt;

&lt;p&gt;You just installed a new package. You open &lt;code&gt;settings.py&lt;/code&gt;, scroll down to &lt;code&gt;INSTALLED_APPS&lt;/code&gt;, and then you pause — "wait, is it &lt;code&gt;djangorestframework&lt;/code&gt; or &lt;code&gt;rest_framework&lt;/code&gt;?" You google it. You add it. You go back to the terminal, manually add it to &lt;code&gt;requirements.txt&lt;/code&gt; with the right version. Then you do this same thing for the next package. And the next.&lt;/p&gt;

&lt;p&gt;It's not painful enough to complain about loudly — but it's annoying enough that I kept thinking &lt;em&gt;there has to be a better way&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;So I built one: &lt;strong&gt;django-include-apps&lt;/strong&gt;, a CLI tool that handles all of this for you.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;If you've worked with Django long enough, you know that pip package names and &lt;code&gt;INSTALLED_APPS&lt;/code&gt; names are often completely different things:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What you &lt;code&gt;pip install&lt;/code&gt;
&lt;/th&gt;
&lt;th&gt;What you add to &lt;code&gt;INSTALLED_APPS&lt;/code&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;djangorestframework&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;rest_framework&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;django-cors-headers&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;corsheaders&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;django-filter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;django_filters&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;django-debug-toolbar&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;debug_toolbar&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;django-allauth&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;allauth&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;django-crispy-forms&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;crispy_forms&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;There's zero standardization here. Every package author picks whatever they want. And if you're new to Django, this is genuinely confusing. If you're experienced, it's just friction that adds up every single day.&lt;/p&gt;

&lt;p&gt;On top of that, there's &lt;code&gt;requirements.txt&lt;/code&gt; to keep updated. And if you're removing a package — do you remember which pip name maps back to which app? Probably not off the top of your head.&lt;/p&gt;




&lt;h2&gt;
  
  
  What django-include-apps Does
&lt;/h2&gt;

&lt;p&gt;It automates the whole flow. Install the package, add it to &lt;code&gt;INSTALLED_APPS&lt;/code&gt;, update &lt;code&gt;requirements.txt&lt;/code&gt; — all from one command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;django-include-apps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Adding a single package
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;django-include-apps add-app djangorestframework
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Installing package 'djangorestframework'...
Package 'djangorestframework' has been installed.
Using 'rest_framework' as the app name for INSTALLED_APPS.
App 'rest_framework' has been added to INSTALLED_APPS.
? Add 'djangorestframework==3.14.0' to requirements.txt? Yes
Added 'djangorestframework==3.14.0' to requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. No context switching, no googling, no manual edits.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adding multiple packages at once
&lt;/h3&gt;

&lt;p&gt;Starting a new project? You can batch install everything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;django-include-apps add-apps djangorestframework django-cors-headers django-filter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Installing package 'djangorestframework'...
App 'rest_framework' has been added to INSTALLED_APPS.

Installing package 'django-cors-headers'...
App 'corsheaders' has been added to INSTALLED_APPS.

Installing package 'django-filter'...
App 'django_filters' has been added to INSTALLED_APPS.

? Add all packages to requirements.txt? Yes
Added 3 packages to requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One command, everything wired up.&lt;/p&gt;




&lt;h2&gt;
  
  
  How the Package Mapping Works
&lt;/h2&gt;

&lt;p&gt;This was the trickiest part to build. The tool ships with 75+ pre-configured mappings for the most common Django packages, so it already knows that &lt;code&gt;djangorestframework&lt;/code&gt; maps to &lt;code&gt;rest_framework&lt;/code&gt;, and so on.&lt;/p&gt;

&lt;p&gt;For packages not in the list, it prompts you interactively:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;django-include-apps add-app my-custom-package
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Package 'my-custom-package' has been installed.
? Do you want to use the same name or a different one?
  &amp;gt; Use same
    Use different
    None/Skip

Enter app name to add to INSTALLED_APPS: my_custom_app
App 'my_custom_app' has been added to INSTALLED_APPS.
? Save this mapping (my-custom-package → my_custom_app) for future use? Yes
Saved mapping: my-custom-package → my_custom_app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It saves the mapping so next time you don't have to think about it again. You can also manage mappings directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# View all 75+ mappings&lt;/span&gt;
django-include-apps view-mappings

&lt;span class="c"&gt;# Filter by name pattern&lt;/span&gt;
django-include-apps view-mappings &lt;span class="nt"&gt;--filter&lt;/span&gt; &lt;span class="s2"&gt;"django-*"&lt;/span&gt;

&lt;span class="c"&gt;# Add a custom mapping manually&lt;/span&gt;
django-include-apps mapping add my-package my_app_name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Removing Apps
&lt;/h2&gt;

&lt;p&gt;Removing is just as clean:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;django-include-apps remove-app rest_framework
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;? Are you sure you want to remove 'rest_framework' from INSTALLED_APPS? Yes
App 'rest_framework' has been removed from INSTALLED_APPS.
? Remove 'djangorestframework' from requirements.txt? Yes
Removed 'djangorestframework' from requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It handles the reverse mapping automatically — so you don't need to remember that &lt;code&gt;rest_framework&lt;/code&gt; came from &lt;code&gt;djangorestframework&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For multiple apps:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;django-include-apps remove-apps rest_framework corsheaders django_filters
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Core Django apps (&lt;code&gt;django.contrib.*&lt;/code&gt;) are protected from removal, so you can't accidentally nuke something critical.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  My Favourite Feature: Unused App Detection
&lt;/h2&gt;

&lt;p&gt;This one I didn't even plan originally — it just made sense once I started thinking about the removal flow.&lt;/p&gt;

&lt;p&gt;Run &lt;code&gt;remove-app&lt;/code&gt; with no arguments and it scans every &lt;code&gt;.py&lt;/code&gt; file in your project, looking for apps in &lt;code&gt;INSTALLED_APPS&lt;/code&gt; that aren't actually imported anywhere:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;django-include-apps remove-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Scanning project for unused apps...

Found 3 unused app(s):
  • rest_framework
  • corsheaders
  • debug_toolbar

? Select apps to remove (use space to select, enter to confirm)
  ◉ rest_framework
  ◯ corsheaders
  ◉ debug_toolbar

App 'rest_framework' has been removed from INSTALLED_APPS.
App 'debug_toolbar' has been removed from INSTALLED_APPS.

? Remove selected packages from requirements.txt? Yes
Removed 2 packages from requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You get a checkbox UI so you can pick exactly what to clean up. It won't touch Django defaults.&lt;/p&gt;

&lt;p&gt;This is genuinely useful for projects that have grown over time and accumulated packages that nobody uses anymore.&lt;/p&gt;




&lt;h2&gt;
  
  
  Version Specifiers Work Too
&lt;/h2&gt;

&lt;p&gt;If you need a specific version, just pass it in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Exact version&lt;/span&gt;
django-include-apps add-app &lt;span class="nv"&gt;djangorestframework&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;3.14.0

&lt;span class="c"&gt;# Minimum version&lt;/span&gt;
django-include-apps add-app django-filter&amp;gt;&lt;span class="o"&gt;=&lt;/span&gt;2.0

&lt;span class="c"&gt;# Compatible version&lt;/span&gt;
django-include-apps add-app django-cors-headers~&lt;span class="o"&gt;=&lt;/span&gt;4.0.0

&lt;span class="c"&gt;# Multiple with versions&lt;/span&gt;
django-include-apps add-apps &lt;span class="nv"&gt;djangorestframework&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;3.14.0 django-filter&amp;gt;&lt;span class="o"&gt;=&lt;/span&gt;2.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It strips the version specifier for mapping lookups, then uses the full spec for pip and &lt;code&gt;requirements.txt&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  requirements.txt Handling
&lt;/h2&gt;

&lt;p&gt;The tool is smart about what state your &lt;code&gt;requirements.txt&lt;/code&gt; is in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If it exists&lt;/strong&gt; — it appends or updates the package.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If it doesn't exist yet&lt;/strong&gt; — it gives you options:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;? requirements.txt not found. What would you like to do?
  &amp;gt; Create requirements.txt with this package
    Create requirements.txt with all project packages
    Skip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The second option is handy — it scans your &lt;code&gt;INSTALLED_APPS&lt;/code&gt; and generates a full &lt;code&gt;requirements.txt&lt;/code&gt; from everything currently installed.&lt;/p&gt;




&lt;h2&gt;
  
  
  Installing from requirements.txt
&lt;/h2&gt;

&lt;p&gt;If you clone a project and want to install dependencies &lt;em&gt;and&lt;/em&gt; auto-configure &lt;code&gt;INSTALLED_APPS&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;django-include-apps install-requirements &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Found 15 package(s) in requirements.txt
Installing packages...
Successfully installed packages from requirements.txt

Detecting Django-related packages...
Found 5 Django package(s):
  • djangorestframework → rest_framework
  • django-cors-headers → corsheaders
  • django-filter → django_filters
  • django-allauth → allauth
  • celery (not mapped)

? Select packages to add to INSTALLED_APPS:
  ◉ djangorestframework (rest_framework)
  ◉ django-cors-headers (corsheaders)
  ◯ django-filter (django_filters)
  ◉ django-allauth (allauth)

✓ Added 'rest_framework' to INSTALLED_APPS
✓ Added 'corsheaders' to INSTALLED_APPS
✓ Added 'allauth' to INSTALLED_APPS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Shell Completion
&lt;/h2&gt;

&lt;p&gt;Auto-complete for bash, zsh, and fish is built in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install for bash&lt;/span&gt;
django-include-apps completion bash &lt;span class="nt"&gt;--install&lt;/span&gt;

&lt;span class="c"&gt;# Install for zsh&lt;/span&gt;
django-include-apps completion zsh &lt;span class="nt"&gt;--install&lt;/span&gt;

&lt;span class="c"&gt;# Install for fish&lt;/span&gt;
django-include-apps completion fish &lt;span class="nt"&gt;--install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then restart your terminal and tab completion just works.&lt;/p&gt;




&lt;h2&gt;
  
  
  Working with Multiple Projects
&lt;/h2&gt;

&lt;p&gt;Every command supports &lt;code&gt;--start-dir&lt;/code&gt; (or &lt;code&gt;-d&lt;/code&gt;) if you're running from outside the project root or working with a monorepo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;django-include-apps add-app djangorestframework &lt;span class="nt"&gt;-d&lt;/span&gt; /path/to/my/django/project
django-include-apps install-requirements &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt &lt;span class="nt"&gt;-d&lt;/span&gt; /path/to/project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Some Packages That Are Already Mapped
&lt;/h2&gt;

&lt;p&gt;Here's a small sample of the 75+ packages that are pre-configured:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;th&gt;App Name&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;djangorestframework&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;rest_framework&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;django-cors-headers&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;corsheaders&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;django-allauth&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;allauth&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;channels&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;channels&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;django-storages&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;storages&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;django-redis&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;django_redis&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;django-taggit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;taggit&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;django-guardian&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;guardian&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;django-oauth-toolkit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;oauth2_provider&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;django-import-export&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;import_export&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;django-jazzmin&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;jazzmin&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;celery&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;celery&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;daphne&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;daphne&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;Packages like &lt;code&gt;pillow&lt;/code&gt;, &lt;code&gt;psycopg2&lt;/code&gt;, &lt;code&gt;gunicorn&lt;/code&gt;, and &lt;code&gt;mysqlclient&lt;/code&gt; are also mapped — but correctly marked as dependency-only, so they won't be added to &lt;code&gt;INSTALLED_APPS&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://github.com/Rohan7654/django-include-apps/blob/main/django-include-apps/django_include_apps/package_mappings.json" rel="noopener noreferrer"&gt;See the full list of mappings on GitHub →&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Coming Next
&lt;/h2&gt;

&lt;p&gt;There's a lot I want to add. Things on the roadmap:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Middleware management&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;URL config suggestions&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Settings detection&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;.env&lt;/code&gt; file generation&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Package update checker&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project scaffolding&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If any of these sound useful — or you have ideas I haven't thought of — open an issue and I'll add it to the roadmap.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try It Out
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;django-include-apps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/Rohan7654/django-include-apps" rel="noopener noreferrer"&gt;github.com/Rohan7654/django-include-apps&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PyPI&lt;/strong&gt;: &lt;a href="https://pypi.org/project/django-include-apps/" rel="noopener noreferrer"&gt;pypi.org/project/django-include-apps&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you run into any issues or a package mapping is missing, PRs are very welcome. Adding a new mapping is literally just one line in a JSON file — it's a great first contribution if you're looking for one.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;If this saved you some time, a ⭐ on &lt;a href="https://github.com/Rohan7654/django-include-apps" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; would mean a lot — it helps others find the project too!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Built this out of frustration during a project setup. It's crossed 7,800+ downloads since release — turns out a lot of people have the same frustration. Hope it saves you some time too.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>django</category>
      <category>python</category>
      <category>opensource</category>
      <category>cli</category>
    </item>
  </channel>
</rss>
