Download the PHP package jeffersongoncalves/laravel-package-cli without Composer
On this page you can find all versions of the php package jeffersongoncalves/laravel-package-cli. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download jeffersongoncalves/laravel-package-cli
More information about jeffersongoncalves/laravel-package-cli
Files in jeffersongoncalves/laravel-package-cli
Package laravel-package-cli
Short Description Scaffold new open-source Laravel packages with git already configured, built with Laravel Zero. Designed to be driven non-interactively (by an AI agent or a script) via arguments and flags.
License MIT
Homepage https://github.com/jeffersongoncalves/laravel-package-cli
Informations about the package laravel-package-cli
Laravel Package CLI
Scaffold new open-source Laravel packages with git already configured, built with Laravel Zero. Fully non-interactive — every input is an argument or a flag, so it's meant to be driven by an AI agent (e.g. Claude Code's laravel-package-creator skill) as much as by a human.
What it does
laravel-package create vendor/package "Description" generates the mechanical, repeatable part of a new Spatie-style Laravel package:
- Directory skeleton (
src/,config/,database/migrations/,resources/lang/{en,pt_BR}/,tests/,art/,.github/workflows/) composer.jsonwithspatie/laravel-package-tools, Pest, Larastan, Pint wired up- Service Provider (
PackageServiceProvider) and Facade stubs phpstan.neon.dist,phpunit.xml.dist,.editorconfig,.gitattributes,.gitignore,LICENSE.md,CHANGELOG.md,README.md- CI workflows:
tests.yml,pint.yml,phpstan.yml,update-changelog.yml git init, first commit onmain
It deliberately does not write the package's actual logic (Service Provider bindings, config values, README body, tests, banner) — that's judgment work left to whoever (human or agent) is building the package on top of this scaffold.
Requirements
- PHP 8.2+
- Git
Installation
Or clone and build locally:
Usage
Arguments
| Argument | Required | Description |
|---|---|---|
vendor-package |
yes | vendor/package slug, e.g. jeffersongoncalves/laravel-cep. Split on / to derive vendor, package, namespace (Vendor\Package), Service Provider name, Facade name, and config/<package>.php filename. |
description |
no | Short one-line package description. Used in composer.json and the generated README.md. Defaults to empty string when omitted. |
Options
| Option | Description |
|---|---|
--path=DIR |
Target directory to scaffold into. Default: ./<package> under the current working directory. |
--namespace=NS |
PSR-4 root namespace override, e.g. "JeffersonGoncalves\PostHog". Its last segment also drives the Service Provider, Facade and README title. Defaults to <VendorRoot>\<StudlyName> (see below) — pass it whenever the name's casing isn't a plain studly of the slug (posthog → Posthog, never PostHog). |
--keywords=LIST |
Comma-separated composer.json keywords. Default: laravel,<package>. |
--require=LIST |
Extra runtime dependencies, comma-separated name:constraint. When any illuminate/* entry is given, the default illuminate/contracts is dropped so it isn't dragged in alongside. |
--author="Name" |
Author name for composer.json and LICENSE.md. Default: git config user.name, falling back to Jefferson Gonçalves if unset. |
--email=EMAIL |
Author email for composer.json. Default: git config user.email. |
--no-git |
Skip git init and the first commit — scaffold files only. |
--dry-run |
Print the planned file list (write vs. skip-if-exists) without writing anything or touching git. |
Every argument/option is designed for scripted, non-interactive invocation — no prompts are ever shown.
Examples
Basic package, everything defaulted (author/email from git config, written to ./laravel-cep):
No description (left blank in composer.json/README):
Custom target directory:
Explicit author/email (overrides git config, e.g. CI or a different identity):
Namespace
The laravel- prefix is dropped, mirroring spatie/laravel-package-tools' shortName() — which is also what names the published config file.
| Package | Namespace | Classes | Config |
|---|---|---|---|
jeffersongoncalves/laravel-cep |
JeffersonGoncalves\Cep |
CepServiceProvider, Facades\Cep |
config/cep.php |
acme/laravel-widget |
Acme\Widget |
WidgetServiceProvider, Facades\Widget |
config/widget.php |
Both halves are studly-cased, which cannot see camel-case boundaries inside a single lowercase word (jeffersongoncalves → Jeffersongoncalves, posthog → Posthog). Teach it once in ~/.package/vendornamespace.json, shared with filament-plugin-cli:
With those two entries, jeffersongoncalves/laravel-posthog derives JeffersonGoncalves\PostHog (and PostHogServiceProvider, Facades\PostHog, config/posthog.php) with no flags at all. Lookups are per whole slug and case-insensitive; unlisted slugs fall back to studly. See laravel-zero-package-scaffold for the file's full contract.
--namespace remains for one-offs you don't want in the shared file.
Explicit namespace casing, keywords and dependencies (nothing the slug can reveal):
Scaffold files only, no git repo (e.g. dropping into an already-initialized repo):
Preview what would be created without writing anything:
Full invocation, all options combined:
Testing
Changelog
Please see CHANGELOG for more information on what has changed recently.
Security
If you discover any security related issues, please see SECURITY.
Credits
- Jefferson Goncalves
- All Contributors
License
The MIT License (MIT). Please see License File for more information.