Download the PHP package jeffersongoncalves/filament-plugin-cli without Composer
On this page you can find all versions of the php package jeffersongoncalves/filament-plugin-cli. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download jeffersongoncalves/filament-plugin-cli
More information about jeffersongoncalves/filament-plugin-cli
Files in jeffersongoncalves/filament-plugin-cli
Package filament-plugin-cli
Short Description Scaffold new open-source Filament plugins with multi-branch git already configured (branch-to-Filament-major mapping controlled by --filament-version/--to-filament-version), 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/filament-plugin-cli
Informations about the package filament-plugin-cli
Filament Plugin CLI
Scaffold new open-source Filament plugins with multi-branch 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 filament-plugin-creator skill) as much as by a human.
What it does
filament-plugin create vendor/package "Description" generates the mechanical, repeatable part of a new Spatie-style Filament plugin, on the version branch(es) it belongs on — never main:
- Directory skeleton, boilerplate files (
.editorconfig,.gitattributes,.gitignore,LICENSE.md,CHANGELOG.md,README.md,phpstan.neon.dist,phpunit.xml.dist) composer.jsoncorrect per branch (filament/filament, PHP floor,orchestra/testbenchrange — see the branch table below)- Service Provider (
PackageServiceProvider) andFilament\Contracts\Pluginclass stubs tests/TestCase.php+tests/Fixtures/TestPanelProvider.php+tests/Pest.php- CI workflows: branch-scoped
tests.yml, pluspint.yml/phpstan.yml/update-changelog.ymlcovering every branch scaffolded git init, branch checkout(s), and a commit per branch
It deliberately does not write the plugin's actual logic (Plugin/Service Provider bindings, components, README body, tests, banner) — that's judgment work left to whoever (human or agent) is building the plugin on top of this scaffold.
Branch naming is always sequential (1.x, 2.x, 3.x, ...) — which Filament major each one targets is controlled separately via --filament-version/--to-filament-version, so a plugin doesn't have to start at Filament 3:
| Filament major | filament/filament |
PHP | orchestra/testbench |
|---|---|---|---|
| 3 | ^3.0 |
^8.1 |
^8.0\|^9.0 |
| 4 | ^4.0 |
^8.2 |
^9.0\|^10.0 |
| 5 | ^5.0 |
^8.2 |
^10.0\|^11.0 |
Requirements
- PHP 8.2+
- Git
Installation
Or clone and build locally:
Usage
Scaffold a single starting branch targeting Filament 3 (the defaults — branch 1.x, --filament-version=3):
Scaffold a single branch that starts straight at a later Filament major (e.g. the plugin never supported v3):
Scaffold every branch from Filament 3 through 5 in one go — 1.x→v3, 2.x→v4, 3.x→v5 (2.x built off 1.x, 3.x off 2.x):
Narrow the range — e.g. only 1.x→v3 and 2.x→v4 (stop before v5), or only 1.x→v4 and 2.x→v5 (skip v3 entirely):
Keywords and dependencies (the namespace already comes out right by default):
Namespace
The default is the nested shape: the filament- prefix moves into its own segment, so the classes don't repeat it.
| Package | Namespace | Classes |
|---|---|---|
jeffersongoncalves/filament-ban |
JeffersonGoncalves\Filament\Ban |
BanServiceProvider, BanPlugin |
jeffersongoncalves/filament-cep-field |
JeffersonGoncalves\Filament\CepField |
CepFieldServiceProvider, CepFieldPlugin |
Both halves are studly-cased, which cannot see camel-case boundaries inside a single lowercase word (jeffersongoncalves → Jeffersongoncalves). Teach it once in ~/.package/vendornamespace.json, shared with laravel-package-cli:
With that entry, jeffersongoncalves/filament-ban derives JeffersonGoncalves\Filament\Ban 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.
The config filename stays the full slug (config/filament-ban.php) to match spatie/laravel-package-tools' shortName().
Pass --namespace only to opt out — an older plugin on the flat JeffersonGoncalves\FilamentBan shape, or a one-off you don't want in the shared file.
Add a version branch to a plugin repo that already exists (the existing composer.json is kept — only the php, filament/filament and orchestra/testbench constraints move):
create options
| Option | Description |
|---|---|
--branch=1.x |
Branch name for the single-branch case (default 1.x); ignored when --all-branches is set |
--filament-version=3 |
Filament major (3, 4 or 5) for the starting/single branch (default 3) |
--to-filament-version=5 |
Filament major to end at when --all-branches is set (default 5); must be >= --filament-version |
--all-branches |
Scaffold sequential branches (1.x, 2.x, ...) spanning --filament-version..--to-filament-version |
--path=DIR |
Target directory (default: ./<package> under the current directory) |
--namespace=NS |
PSR-4 root namespace override, e.g. "JeffersonGoncalves\Filament\Ban". Its last segment also drives the Service Provider, Plugin class and README title. Defaults to the standard nested shape (see below) — only pass it for a repo that predates the convention |
--keywords=LIST |
Comma-separated composer.json keywords (default: laravel,filament,filament-plugin,<package>) |
--require=LIST |
Extra runtime dependencies, comma-separated name:constraint |
--author="Name" |
Defaults to git config user.name |
--email=EMAIL |
Defaults to git config user.email |
--no-git |
Skip git init/commit |
--dry-run |
Print the planned file list and git commands, write nothing |
branch options
| Option | Description |
|---|---|
--branch=2.x |
Name of the branch to create (required) |
--filament-version=4 |
Filament major (3, 4 or 5) this branch targets (required) |
--path=DIR |
Existing plugin repo (required) |
--from=1.x |
Branch to branch off (default: current HEAD) |
--dry-run |
Print the planned actions, write nothing |
Every argument/option is designed for scripted, non-interactive invocation — no prompts are ever shown.
Update the CLI to the latest release (PHAR installs only — Git/Composer installs must update via git pull/composer update):
self-update options
| Option | Description |
|---|---|
--check |
Only check for updates without installing |
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.