Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Artisan Menu Laravel Package

jord-jd/artisan-menu

jord-jd/artisan-menu is a Laravel package for building interactive Artisan console menus. Define options and actions with a simple API to create selectable CLI prompts for commands, setup scripts, and developer tools, turning complex terminal workflows into navigable menus.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for interactive CLI/Artisan UX. Rather than hand-rolling prompt loops for internal tooling, ops scripts, or admin commands, this package supplies optional-argument prompts, command-specific flags, values, and repeatable options out of the box. That converts "write and maintain our own input layer" into "adopt and configure."
  • Roadmap for operator-facing tooling. The optional-argument and repeatable-option coverage is the specific capability that makes guided artisan workflows viable for real commands (bulk operations, multi-target deploys, importers) instead of only trivial one-line prompts. This unlocks a roadmap item — "self-service guided commands for support/ops" — that would otherwise require a spike.
  • Support-matrix and platform policy. Laravel 5.1 → 13 and PHP 7.1 → 8.5 in one line means a single dependency can serve both a legacy fleet and a current Laravel app. That directly informs whether we consolidate internal packages or keep forked prompt code per app.
  • Safe-cancel semantics as a product requirement. Escape-to-cancel during required input is a destructive-action guardrail. It supports decisions about which commands are safe to expose to non-engineering operators without a "are you sure?" wrapper.
  • Upgrade sequencing. The PHP floor correction (7.0 → 7.1) and the removal of an accidental PHP 8-only call mean previously "supported" PHP 7.0 environments were never actually working. Any decision that assumed 7.0 compatibility needs revisiting; conversely, 7.1 compatibility is now credible rather than nominal.

When to Consider This Package

Adopt when:

  • You have (or must keep) applications spread across old and new Laravel versions and want one prompt dependency rather than per-version implementations.
  • You are building internal or operator-facing Artisan commands where arguments, flags, and repeatable options are currently documented in a wiki instead of prompted for.
  • You want interactive flows to degrade safely — the Escape-cancel path matters for commands that touch data.
  • Your CI already runs a version matrix; the upstream 7.1/5.1 and 8.5/13 test coverage means you are not the first to discover breakage.

Look elsewhere or defer when:

  • You are PHP 8.1+ only and want a modern, actively evolving API surface — a broader ecosystem package may give you richer widgets and community momentum, at the cost of legacy reach.
  • Your commands are primarily invoked non-interactively (CI, cron, container entrypoints). Prompts must never block; verify every new prompt has a sensible non-TTY fallback before standardising on it.
  • You need localisation, theming, or accessibility guarantees beyond basic terminal output.
  • Supporting PHP 7.1 imposes real cost on your own CI (old runner images, pinned tooling). The package's compatibility is a gift, not an obligation to keep testing 7.1 yourself.

How to Pitch It (Stakeholders)

For executives: This is a low-cost, low-risk dependency that makes our internal command-line tools self-explanatory instead of tribal knowledge. One release supports everything from our oldest Laravel applications to the newest, so we avoid maintaining parallel versions. The headline user-facing win is that a command can now ask for optional inputs and repeatable targets, and can be cancelled safely mid-entry — fewer half-finished operations and fewer "how do I run this?" tickets. No new infrastructure, no vendor contract.

For engineering: v4.0.0 fills the real gap — prompting for optional arguments, command-specific flags/values, and repeatable options — with Escape-to-cancel safety during required input. It also corrects two integrity issues: the PHP minimum is honestly 7.1 (runtime deps already required it), and an accidental PHP 8-only str_contains call is gone, so 7.1 support is now real rather than aspirational. The test matrix spans PHP 7.1/Laravel 5.1 and PHP 8.5/Laravel 13, which is unusually strong evidence of backwards compatibility. Treat it as a major-version bump: pin it, run the matrix in our own CI, and audit every prompted command for a non-interactive fallback before rollout.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route