I want to create a set of CLi commands for development puposes. I would like to remove the default commands from Artisan so only my custom commands are left. Does anyone know how I can accomplish this?
Why would you want to do that? I don't think you can as I'm sure they are outside of the project scope. It looks like they are in the illuminate/foundation namespace, so whenever you update Laravel, any changes you make will be overwritten.
I'm not sure exactly where they are, but you can always check the API.
In Laravel 5.4, the default artisan commands are registered in Illuminate\Foundation\Providers\ArtisanServiceProvider which, in turn, is registered by Illuminate\Foundation\Providers\ConsoleSupportServiceProvider.
If you extend the ArtisanServiceProvider and provide your own values for protected $commands = [];, then also extend ConsoleSupportServiceProvider to register your provider instead, you will be able to set default command.