Exclude Vendor &amp; Default Commands in php artisan dev | Mohamed Said       [Skip to content](#main)  [ ![](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png) Mohamed SaidLaravel Backend Engineer ](https://www.msaied.com/public) - [Home](https://www.msaied.com/public)
- [Projects](https://www.msaied.com/public/projects)
- [Articles](https://www.msaied.com/public/articles)
- [Certificates](https://www.msaied.com/public/certificates)
- [About](https://www.msaied.com/public#about)

           [  Contact](https://www.msaied.com/public#contact) Menu 

Menu
----

Close 

 - [HomeStart here](https://www.msaied.com/public)
- [ProjectsCase studies](https://www.msaied.com/public/projects)
- [ArticlesEngineering notes](https://www.msaied.com/public/articles)
- [CertificatesCredentials](https://www.msaied.com/public/certificates)
- [AboutHow I work](https://www.msaied.com/public#about)
- [ContactGet in touch](https://www.msaied.com/public#contact)

  [Start a conversation](https://www.msaied.com/public#contact) [WhatsApp](https://wa.me/201094619204) [Email](mailto:hello@msaied.com) 

 1. [Home](https://www.msaied.com/public)
2. /
3. [Articles](https://www.msaied.com/public/articles)
4. /
5. [Laravel](https://www.msaied.com/public/articles?category=laravel)
6. /
7. Exclude Vendor and Default Commands in php artisan dev (Laravel 13.30)

   [Laravel](https://www.msaied.com/public/articles?category=laravel) [Tips &amp; Tricks](https://www.msaied.com/public/articles?category=tips-tricks) 

 Exclude Vendor and Default Commands in php artisan dev (Laravel 13.30)
=======================================================================

 Laravel 13.30 adds withoutVendorCommands() and withoutDefaultCommands() to the DevCommands class, giving you precise control over which processes run when you execute php artisan dev.

 ![](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp) [Mohamed Said](https://www.msaied.com/public#person) Published 4 Sep 2026 · Updated 5 Sep 2026 · 3 min read

ShareCopy linkCopied

 ![Exclude Vendor and Default Commands in php artisan dev (Laravel 13.30)](https://cdn.msaied.com/631/ba9b50ef4b7355a32c378f404d978b90.png) 

  On this page +1. [Taking Control of php artisan dev in Laravel 13.30](#taking-control-of-codephp-artisan-devcode-in-laravel-1330)
2. [New Methods: withoutVendorCommands() and withoutDefaultCommands()](#new-methods-codewithoutvendorcommandscode-and-codewithoutdefaultcommandscode)
3. [Granular Control with only() and except()](#granular-control-with-codeonlycode-and-codeexceptcode)
4. [What Are the Default Commands?](#what-are-the-default-commands)
5. [Inspecting the Process List with dev:list](#inspecting-the-process-list-with-codedevlistcode)
6. [Key Takeaways](#key-takeaways)

 Taking Control of `php artisan dev` in Laravel 13.30
----------------------------------------------------

The `php artisan dev` command is a convenient way to spin up all your development processes in one shot — the local server, queue worker, log watcher, and Vite. But as your project grows, you may not want every vendor package or framework default injecting its own process into that list.

Laravel 13.30 ships two new methods on the `DevCommands` class that let you opt out of those automatic registrations entirely.

New Methods: `withoutVendorCommands()` and `withoutDefaultCommands()`
---------------------------------------------------------------------

```php
use Illuminate\Foundation\DevCommands;

DevCommands::withoutVendorCommands();
DevCommands::withoutDefaultCommands();

```

Calling both methods strips the process list down to nothing, leaving you free to define exactly what runs:

```php
namespace App\Providers;

use Illuminate\Foundation\DevCommands;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
        DevCommands::withoutVendorCommands();
        DevCommands::withoutDefaultCommands();

        DevCommands::artisan('serve', 'server');
        DevCommands::artisan('queue:work --queue=notifications', 'queue:notifications');
        DevCommands::node('dev', 'vite');
    }
}

```

Granular Control with `only()` and `except()`
---------------------------------------------

If you want something in between — for example, keep all framework defaults but drop the log watcher, while still blocking vendor commands — you can combine the new methods with the existing `except()` helper:

```php
DevCommands::withoutVendorCommands();
DevCommands::except('logs');

```

What Are the Default Commands?
------------------------------

The framework registers four processes by default via `registerDefaults()`:

- **server** — `php artisan serve`
- **queue** — `php artisan queue:listen --tries=1 --timeout=0`
- **logs** — `php artisan pail --timeout=0` (only when `pcntl_fork()` is available)
- **vite** — `npm run dev` (only when a `package.json` exists)

Inspecting the Process List with `dev:list`
-------------------------------------------

Before committing to a configuration, use `php artisan dev:list` to see exactly what will run and where each entry was registered:

```typescript
php artisan dev:list

  server  php artisan serve ................................. Illuminate\Foundation\Providers\ArtisanServiceProvider@boot
  queue   php artisan queue:listen --tries=1 --timeout=0 .... Illuminate\Foundation\Providers\ArtisanServiceProvider@boot
  logs    php artisan pail --timeout=0 ...................... Illuminate\Foundation\Providers\ArtisanServiceProvider@boot
  vite    npm run dev ....................................... Illuminate\Foundation\Providers\ArtisanServiceProvider@boot

```

Need machine-readable output? Add `--json`:

```bash
php artisan dev:list --json | jq

```

This is especially useful when feeding process metadata to AI agents or custom tooling.

Key Takeaways
-------------

- `DevCommands::withoutVendorCommands()` prevents third-party service providers from adding processes to `php artisan dev`.
- `DevCommands::withoutDefaultCommands()` removes the four framework-registered defaults.
- Use `except('name')` for surgical removal of a single default process.
- `php artisan dev:list` (with optional `--json`) shows the full resolved process list before you run it.
- Both methods were contributed by Jack Bayliss in PR #61344 and shipped in Laravel 13.30.

---

*Source: [Laravel News — Exclude Vendor and Default Commands in `php artisan dev`](https://laravel-news.com/artisan-dev-exclude-vendor-commands)*

- [Laravel](https://www.msaied.com/public/articles?search=Laravel)
- [Artisan](https://www.msaied.com/public/articles?search=Artisan)
- [Laravel 13.30](https://www.msaied.com/public/articles?search=Laravel%2013.30)
- [DevCommands](https://www.msaied.com/public/articles?search=DevCommands)
- [PHP](https://www.msaied.com/public/articles?search=PHP)

 Frequently asked questions 
---------------------------

  How do I stop vendor packages from adding processes to php artisan dev?Call DevCommands::withoutVendorCommands() inside your AppServiceProvider boot method. This prevents any third-party service provider from registering its own processes with the dev command.

   Can I keep some framework defaults while removing others?Yes. Instead of calling withoutDefaultCommands(), use DevCommands::except('name') to remove a specific default process by name — for example, DevCommands::except('logs') removes only the log watcher while keeping server, queue, and vite.

   How can I see which processes will run before executing php artisan dev?Run php artisan dev:list to get a formatted table of all registered processes and their source. Add the --json flag for machine-readable output suitable for scripts or AI agents.

   ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)About the author
----------------

[Mohamed Said](https://www.msaied.com/public#person)Senior Backend Engineer specializing in Laravel, scalable SaaS platforms, APIs, and cloud infrastructure. I build secure, high-performance web applications that help businesses grow.

[About](https://www.msaied.com/public#about) [GitHub ↗](https://github.com/EG-Mohamed) [LinkedIn ↗](https://www.linkedin.com/in/msaiedm/) [WhatsApp ↗](https://wa.me/201094619204) [Email Address ↗](mailto:hello@msaied.com) [My CV ↗](https://drive.google.com/file/u/0/d/1MF20IPRJyzfy32mhEutjL5EpSls0w2Q8/view)  

   [Previous articleLaravel August 2026 Product Updates: Framework, Cloud, and Forge](https://www.msaied.com/public/articles/laravel-august-2026-product-updates-framework-cloud-and-forge) [Next articleTaylor Otwell Disabled GitHub Issues on Most Laravel Open-Source Packages](https://www.msaied.com/public/articles/taylor-otwell-disabled-github-issues-on-most-laravel-open-source-packages)  

   On this page
-------------

1. [Taking Control of php artisan dev in Laravel 13.30](#taking-control-of-codephp-artisan-devcode-in-laravel-1330)
2. [New Methods: withoutVendorCommands() and withoutDefaultCommands()](#new-methods-codewithoutvendorcommandscode-and-codewithoutdefaultcommandscode)
3. [Granular Control with only() and except()](#granular-control-with-codeonlycode-and-codeexceptcode)
4. [What Are the Default Commands?](#what-are-the-default-commands)
5. [Inspecting the Process List with dev:list](#inspecting-the-process-list-with-codedevlistcode)
6. [Key Takeaways](#key-takeaways)

 ###  Have a technical challenge?

 Tell me what you’re building. I reply within two working days.

[Start a conversation](https://www.msaied.com/public#contact) 

   Related articles
-----------------

 [ ![](https://cdn.msaied.com/740/cce86edc21eddcbdd2f2454fadaf9c70.png)  · 3 min read### The Pipeline Pattern in Laravel: Custom Pipelines Beyond Middleware

5 Oct 2026 ](https://www.msaied.com/public/articles/the-pipeline-pattern-in-laravel-custom-pipelines-beyond-middleware-1) [ ![](https://cdn.msaied.com/739/2d6897fdcdcf090613f96f72a64b8a78.png)  · 4 min read### MySQL Full-Text Search in Laravel: Indexes, Relevance Scoring, and Boolean Mode

4 Oct 2026 ](https://www.msaied.com/public/articles/mysql-full-text-search-in-laravel-indexes-relevance-scoring-and-boolean-mode) [ ![](https://cdn.msaied.com/738/073696a3fefe18bec825beec5ac658f5.png)  · 4 min read### Laravel Queue Rate-Limited Middleware: Throttling Jobs Without Losing Work

4 Oct 2026 ](https://www.msaied.com/public/articles/laravel-queue-rate-limited-middleware-throttling-jobs-without-losing-work) 

  Have a technical challenge?
----------------------------

Tell me what you’re building. I reply within two working days.

 [Discuss your project ↗](https://www.msaied.com/public#contact) 

  © 2026 Mohamed Said · Built with Laravel, meant to last.Senior Backend Engineer specializing in Laravel, scalable SaaS platforms, APIs, and cloud infrastructure. I build secure, high-performance web applications that help businesses grow.

 - [Home](https://www.msaied.com/public)
- [Articles](https://www.msaied.com/public/articles)
- [Certificates](https://www.msaied.com/public/certificates)
- [GitHub](https://github.com/EG-Mohamed)
- [LinkedIn](https://www.linkedin.com/in/msaiedm/)
- [WhatsApp](https://wa.me/201094619204)
- [Email Address](mailto:hello@msaied.com)
- [My CV](https://drive.google.com/file/u/0/d/1MF20IPRJyzfy32mhEutjL5EpSls0w2Q8/view)
- [Sitemap](https://www.msaied.com/public/sitemap.xml)
