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

Cli Laravel Package

puli/cli

The command-line interface for Puli, the PHP package discovery and management system. Inspect packages, resolve resource paths, manage repositories, and integrate package discovery into your PHP projects from the terminal.

Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for resource/asset resolution. Puli (and its CLI) is an early attempt at giving PHP packages a shared, URI-like namespace for non-PHP assets. The CLI's command surface — publish, list, inspect, type — is effectively a requirements document for any internal asset-publishing tool you might build. Review it before greenlighting a custom solution; it will save you a discovery sprint, but not a dependency decision.
  • Legacy modernization scope. If a portfolio product is pinned to Puli (typically Symfony 2.x/Laravel 4–5-era code), the CLI defines the operational workflow your team must replace: publishing package assets into web/, listing installed packages and their resource paths. Use it to size migration tickets.
  • Use-case validation, not feature roadmap. Useful as evidence that PHP developers genuinely wanted per-package asset ownership without committing vendor directories to the web root. That need is now met by Vite/asset-packagist/Flex recipes — so the roadmap conclusion is "needs exists, this implementation is superseded," not "adopt."
  • Dependency-audit / M&A due diligence. A concrete example of ecosystem rot: a 51-star, last-released-2016 MIT tool still reachable via Composer. Good calibration case for supply-chain review criteria.
  • Not a decision it supports: anything greenfield. Do not let the CLI's existence imply a maintained path forward.

When to Consider This Package

Consider only when all of the following hold:

  • You are inheriting or maintaining an existing Puli-enabled codebase and need the CLI to publish assets or inspect the repository during a migration.
  • Your runtime is PHP 5.5–7.x with no near-term upgrade plan (Puli predates PHP 8; expect incompatibilities).
  • You need to read its behavior as a reference for how path resolution, publish targets, and package discovery were modeled.
  • The work is time-boxed and internal — an archaeology task, not a shipped dependency.

Look elsewhere — decisively — when:

  • The project is greenfield Laravel or Symfony. Use Vite, Laravel Mix, Symfony Flex recipes, or asset-packagist + Composer plugins. These are maintained, PHP 8-compatible, and have active security response.
  • You need security patching, PHP 8.x support, PSR/Symfony version currency, or an SLA. Last release 2016-01-14; the parent project Puli is itself retired and its concepts relocated to successor packages. There is no maintainer to escalate to.
  • You need CI reproducibility across modern PHP matrices. Composer resolution will likely fail or require --ignore-platform-reqs hacks.
  • You are evaluating it because it "looks like a fit" from star count or keyword match. 51 stars and a 2016 release is a disqualified signal, not a qualified one.

How to Pitch It (Stakeholders)

To executives: This is a historical artifact, not a candidate technology. It is a 2016 command-line tool for a retired PHP asset-management system, with no maintainer and no PHP 8 support. Recommending it would create a security and upgrade liability for zero differentiating capability — the same job is now done by tooling we already run. My recommendation is a formal "do not adopt," and a bounded remediation plan if it is already somewhere in our dependency graph.

To engineering: Treat it as documentation. Its command set (publish package assets to a public directory, list packages and their resource paths) is a clean statement of the problem the modern bundler ecosystem solves. If you find it in a repo, the migration is mechanical: Puli paths are declared in puli.json/Composer metadata, so you can enumerate them and remap to Vite entry points or public asset directories. Budget this as tech-debt paydown, not feature work. If you are considering building internal resource-resolution tooling, spend an hour reading this CLI's interface — then build against current tooling.

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/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
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