sven/artisan-shortcuts
Add short, memorable aliases for your Laravel Artisan commands. Artisan Shortcuts lets you register custom shortcuts in a config file, so frequently used commands are faster to type and easier to remember.
Architecture fit. This is a thin, console-layer convenience wrapper: an auto-discovered service provider that reads a config map of shortcut name → artisan command and registers those shortcuts at Artisan bootstrap. It does not touch HTTP handling, persistence, queues, or external services, and it does not alter domain architecture. Fit is high for any Laravel application where the team wants standardized command ergonomics (e.g., artisan fresh, artisan deploy), but it is a "nice to have" rather than load-bearing infrastructure. Its natural home is require-dev.
Integration feasibility. Mechanically trivial: composer require --dev, publish the config, define shortcuts. The only material feasibility question is currency — the last tagged release is 2020-08-16, so compatibility with current Laravel (10/11/12) and PHP 8.2/8.3 must be verified empirically. Because the package is small, even a full fork or reimplementation is roughly a day's work, so feasibility is not gated by upstream responsiveness.
Technical risk. Stale maintenance dominates, not architectural risk. Blast radius is small if it simply fails to load, but if it misbehaves during Artisan bootstrap it can break every console command, which cascades into CI, deploy scripts, and scheduler invocations. Zero dependents and 55 stars means little community battle-testing. The highest-risk behaviors to validate are config-cache compatibility and shortcut resolution when names collide with existing commands. Risk is minimal if confined to local development; materially higher if it leaks into deployment paths.
Key questions.
ArtisanStarting listener vs. generated command classes), and does it fail open or hard?php artisan config:cache and optimize?$aliases, Composer scripts) that avoids the dependency entirely?Stack fit. Laravel-only, Composer-managed, no infrastructure, database, queue, or service dependencies. Fits any Laravel monolith or modular app; irrelevant to non-Laravel services.
Migration path. Purely additive and reversible — no schema or data migration. Install as a dev dependency unless CI or deployment scripts must consume the shortcuts, in which case promote to runtime deps and pin. Removal is composer remove plus deleting the config. If upstream proves incompatible, vendor the source into the application (it is small) or substitute native alternatives: custom Artisan commands with $aliases, Composer scripts, or a Makefile.
Compatibility. Pin the exact version, confirm Composer constraints (PHP and illuminate/console) against our matrix, and add the package to the CI matrix if shortcuts are used in pipelines. Include it in the Laravel-upgrade checklist. If the code predates PHP 8 typed-property conventions, test on the target PHP runtime rather than assuming.
Sequencing.
artisan list, config:cache, and a deliberate name-collision test.Maintenance. Effectively unmaintained since 2020 — plan to own it. The codebase is small, so the burden is low: budget roughly half a day to a day to fork or vendor once, then near-zero ongoing effort. Assign an internal owner and track upstream for compatibility breaks rather than assuming fixes will land.
Support. No vendor SLA expected and no active maintainer responsiveness. The community is tiny (55 stars, 0 dependents), so troubleshooting must rely on internal expertise and the source itself.
Scaling. Non-issue. It runs only in the console context and has no effect on web throughput, request latency, or worker pools. Overhead is a config read during Artisan boot and scales trivially.
Failure modes.
Ramp-up. Very low for developers — minutes to read the README, publish config, and add shortcuts. The real cost is organizational: agreeing on which shortcuts to standardize, documenting them, and performing the compatibility diligence above. Recommend a small initial dev-scoped set with a documented fallback to native commands.
How can I help you explore Laravel packages today?