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

Tailcli Laravel Package

nunomaduro/tailcli

A Laravel package from Nuno Maduro that adds an elegant Artisan tail command for streaming application logs in real time. View live log output in your terminal with a clean, developer-friendly CLI experience, making debugging and monitoring simpler.

View on GitHub
Deep Wiki
Context7

It's like Tailwind CSS, but for the console.

Frequently asked questions about Tailcli
What is Termwind, and is nunomaduro/tailcli the same package?
Termwind is a presentation layer for PHP CLI applications: you write an HTML-like string with Tailwind-style utility classes and it renders ANSI-formatted output to the terminal, so console screens look designed instead of plonked out with echo statements. Be careful with the Composer name, though. This listing reports nunomaduro/tailcli while pointing at the nunomaduro/termwind repository, and the description matches Termwind, so confirm the real package name and constraint set on Packagist before adding a dependency. Treat the tail-command framing in the blurb as a metadata error until that is resolved.
How do I install Termwind in a Laravel application?
Once you have confirmed the correct Packagist name, install it with Composer and require it in composer.json as a regular dependency. There is no service provider or config file to publish for basic use, so you can call the render helper immediately inside an Artisan command or a plain PHP script. If you are pinning a version for a long-lived project, prefer an explicit constraint over a floating range so a transitive Symfony bump cannot silently change what resolves.
Which Laravel and PHP versions does this package support?
Termwind tracks Symfony Console majors rather than Laravel releases, so its compatibility window is wider than a typical Laravel package and it works on any framework version that ships a supported Symfony Console. The v2.4.0 release simply widened the Symfony Console constraint to admit Symfony 8 components, with no API or rendering changes. Since Symfony 8 targets a newer PHP baseline and underpins the next Laravel major, that bump is a forward-compatibility signal. It also means a permissive range can float you onto Symfony 8 transitively on newer PHP runners, so review your lockfile diff after updates.
Is Termwind a replacement for Tailwind CSS in my Laravel frontend?
No. Termwind is a subset of CSS utilities aimed at the console, not the browser: spacing, 256/truecolor, bold/dim/underline, alignment, percentage widths, list styling and borders. Do not expect flexbox semantics to behave like the browser, and do not expect tables, scroll regions or interactivity. Use it for human-facing surfaces such as installers, about and status screens, report renderers and upgrade wizards, and avoid it for anything machine-consumed.
How do I render styled output inside an Artisan command?
Build your markup string with utility classes and pass it to the render helper, which writes ANSI output to the terminal. It composes with Symfony Console's OutputInterface rather than replacing it, so you do not have to rewrite existing command classes. One rule worth enforcing: pick either Termwind styling or Symfony's info/comment tags per command, because mixing produces inconsistent palettes. Also sequence it with interactive helpers rather than interleaving writes to the same TTY.
How do I test Termwind output in PHPUnit or Pest?
Capture the rendered output into a string instead of letting it hit the TTY, then assert against that. Termwind lets you swap the renderer, which is the cleanest way to test components in isolation, and Symfony's ANSI stripping helper gives you stable snapshots without raw escape codes. Assert on structure and content rather than exact byte-for-byte ANSI sequences, and add at least one test that covers a narrow terminal width.
Does Termwind output work when piped to a file or captured in CI?
Non-TTY contexts are the classic failure mode: piped output, CI capture and log shippers receive raw escape sequences or collapsed layouts. Handle this by design, not as an afterthought. Respect --no-ansi, NO_COLOR and isDecorated() checks, and provide a plain-text fallback path for every screen you render. If your logs are shipped to an aggregator, assume the decorated version will be unreadable there.
Why does my Termwind layout break on narrow or very wide terminals?
Termwind computes layout from Symfony's terminal width detection, so percentage widths and spacing shift with the window. Layouts authored at 80 columns tend to break below roughly 40 columns and stretch awkwardly above 160. Define an explicit supported-width contract and a small test matrix covering narrow, standard and wide terminals, and avoid hard-coded padding that assumes a specific column count.
Can I use Termwind outside Laravel, and how does it pair with laravel/prompts?
Yes. It has no framework lock-in and runs in plain PHP CLI, Laravel and Laravel Zero. It pairs naturally with laravel/prompts, since both come from the same lineage and write to the same terminal: use prompts for input and Termwind for static rendering, sequenced rather than interleaved. If you only need a couple of coloured lines, Symfony Console's own tags are a lighter alternative than adding a styling layer.
Is it safe to interpolate user or remote data into Termwind markup?
No, escape it at every boundary. User- or remote-sourced strings interpolated into markup can malform the tree or throw an exception, and error messages that echo unescaped input are a real hazard in CLI tooling. Treat any value not authored in your own code as untrusted, wrap it through an escaping helper, and keep the markup structure itself static.
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.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo