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

Terminal Style Laravel Package

bvanhoekelen/terminal-style

Terminal Style is a simple PHP package for styling command-line output with colors, background colors, and text options like bold, underline, and blink. Its chainable API makes it easy to format CLI messages, tables, and Laravel artisan commands with consistent, readable terminal styling.

Deep Wiki
Context7

Product Decisions This Supports

  • Developer-tooling investment sizing. This is a small, tactical dependency decision — not a customer-facing feature. It informs whether we spend engineering hours hand-rolling ANSI escape codes or adopt a fluent wrapper so CLI output stays readable as our command surface grows.
  • CLI output conventions. Deciding how we signal severity in console output (red = failure, yellow = warning, green = success, bold = action required) across Artisan commands, deployment scripts, and data-import jobs. Standardizing this reduces misread alerts during incident response and onboarding time for new engineers.
  • Build vs. buy for a trivial-but-repetitive concern. Color/formatting logic is ~50 lines of escape sequences. The decision is really "do we want a maintained API or an in-house helper?" — the package is only worth adopting if it saves more time than owning a 20-line utility costs.
  • Use-case fit for internal tooling. Best suited to: bespoke Artisan commands, one-off migration/backfill scripts, CI helper scripts, and standalone PHP CLIs outside a full Laravel or Symfony Console context. It is a legitimate accelerator for throwaway or low-stakes tooling.
  • Roadmap signal, not roadmap item. If our developer-experience roadmap includes richer CLI surfaces (interactive prompts, progress bars, tables, spinners), this package covers only a slice of that; the decision should be framed as a stopgap, not a platform choice.
  • Dependency-policy precedent. Adopting an unmaintained package sets a precedent. If we accept it here, we should be explicit that we accept the same for all leaf-level dev-only dependencies — or make this the exception that triggers a vendoring policy.

When to Consider This Package

Adopt when:

  • The consumer is internal or developer-facing (Artisan commands, scripts, ops tooling) where an unmaintained dependency carries no customer risk.
  • The team wants a fluent, chainable API rather than memorizing Symfony Console's <fg=green;options=bold> tag syntax or raw \033[...m codes.
  • We need styling in standalone PHP scripts where pulling in Symfony Console's full output layer is disproportionate.
  • License compatibility is confirmed (Apache-2.0 is permissive and low-friction for commercial use).
  • We are willing to pin, vendor, or copy the source into our codebase — given no release since January 2020 and 19 stars, treat it as a snippet library, not a supported dependency.

Look elsewhere when:

  • We are Laravel-only. $this->info(), $this->error(), $this->warn(), and inline <fg=...> tags in Symfony Console already solve 80% of this with zero added dependencies. This is the default answer and the package must beat it on ergonomics to justify itself.
  • We need composed output: tables, progress bars, spinners, interactive questions → Symfony Console helpers, laravel/prompts, or nunomaduro/termwind.
  • Our product CLI output is a brand surface (customer-visible CLIs, CLIs shipped to external developers) — that warrants a maintained, tested, actively-styled solution.
  • We require security patching SLAs, PHP 8.3+/future-version guarantees, or a maintained dependency for compliance/audit reasons. No release since 2020 is a disqualifier here.
  • Non-TTY/CI behavior matters and we have not verified --no-ansi/NO_COLOR handling and Windows terminal compatibility.

How to Pitch It (Stakeholders)

To executives (30 seconds): This is a zero-cost, low-risk developer-ergonomics utility. It makes our internal command-line output easier to read and debug, which slightly speeds up incident triage and onboarding. There is no customer impact, no data exposure, and the license is permissive. The trade-off is maturity: the project has been dormant since 2020 and has a small user base — so we recommend using it as a pinned, dev-only convenience, not as a strategic dependency. If it becomes load-bearing, we absorb the ~50 lines of code into our own utilities at negligible cost. Decision required: approve as a dev-only convenience, or direct the team to use Laravel's built-in console styling instead. Both are acceptable; the second is the conservative default.

To engineering: Lightweight, no heavy transitive dependencies, Apache-2.0, drop-in for Artisan commands and standalone PHP CLIs, with a fluent chainable API that covers foreground/background colors, bold, underline, and multi-line blocks. Caveat: last release January 2020 and very low adoption — pin the version, avoid it in customer-facing paths, and if PHP-version compatibility bites, vendor the source rather than waiting for a patch. Before adopting, confirm it beats the native $this->line('<fg=green;options=bold>...') path on readability; if it does not, skip it.

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.
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle