Reference

CLI Commands Reference

10 min read

> **What you'll learn:** All available artisan commands for managing TallCMS, plugins, themes, and content.

TallCMS provides a comprehensive set of CLI commands for installation, maintenance, and development workflows.


TallCMS Core Commands

tallcms:install

Install TallCMS with migrations, roles, and permissions.

php artisan tallcms:install
OptionDescription
--skip-checksSkip prerequisite checks
--skip-migrationsSkip running migrations
--skip-setupSkip roles and permissions setup
--forceForce installation even if already installed

Example:

# Fresh install
php artisan tallcms:install

# Reinstall without running migrations
php artisan tallcms:install --force --skip-migrations

tallcms:setup

Setup TallCMS with initial roles, permissions, and admin user.

php artisan tallcms:setup
OptionDescription
--forceForce setup even if already configured
--name=NAMEAdmin full name
--email=EMAILAdmin email address
--password=PASSWORDAdmin password (min 8 chars)

Example:

# Interactive setup
php artisan tallcms:setup

# Non-interactive setup (CI/CD)
php artisan tallcms:setup --name="Admin" --email="admin@example.com" --password="secret123"

tallcms:update

Update TallCMS to the latest version.

php artisan tallcms:update
OptionDescription
--target=VERSIONSpecific version to update to (default: latest)
--forceSkip confirmation prompts
--skip-backupSkip file and database backups
--skip-db-backupSkip database backup only
--dry-runShow what would happen without making changes

Example:

# Update to latest
php artisan tallcms:update

# Update to specific version
php artisan tallcms:update --target=2.12.0

# Preview changes without applying
php artisan tallcms:update --dry-run

tallcms:version

Display TallCMS version information.

php artisan tallcms:version
OptionDescription
--checkCheck for available updates

Example:

# Show current version
php artisan tallcms:version

# Check for updates
php artisan tallcms:version --check

tallcms:search-index

Rebuild the search_content column for all CMS content.

php artisan tallcms:search-index
OptionDescription
--model=MODELOnly index specific model (page or post)

Example:

# Rebuild all content
php artisan tallcms:search-index

# Rebuild posts only
php artisan tallcms:search-index --model=post

tallcms:backfill-author-slugs

Generate slugs for existing users who have authored posts.

php artisan tallcms:backfill-author-slugs
OptionDescription
--dry-runShow what would be updated without making changes
--forceSkip confirmation prompt

Example:

# Preview changes
php artisan tallcms:backfill-author-slugs --dry-run

# Apply changes
php artisan tallcms:backfill-author-slugs --force

Plugin Commands

plugin:list

List all installed plugins.

php artisan plugin:list
OptionDescription
--detailedShow detailed information
--tag=TAGFilter by tag
--vendor=VENDORFilter by vendor

Example:

# List all plugins
php artisan plugin:list

# Show detailed info
php artisan plugin:list --detailed

# Filter by vendor
php artisan plugin:list --vendor=acme

plugin:install

Install a plugin from a ZIP file.

php artisan plugin:install <path>
ArgumentDescription
pathPath to the plugin ZIP file
OptionDescription
--no-migrateSkip running migrations

Example:

# Install plugin
php artisan plugin:install ~/Downloads/acme-gallery.zip

# Install without migrations
php artisan plugin:install ~/Downloads/acme-gallery.zip --no-migrate

plugin:uninstall

Uninstall a plugin.

php artisan plugin:uninstall <plugin>
ArgumentDescription
pluginPlugin slug (vendor/slug)
OptionDescription
--forceSkip confirmation

Example:

# Uninstall with confirmation
php artisan plugin:uninstall acme/gallery

# Force uninstall
php artisan plugin:uninstall acme/gallery --force

plugin:migrate

Run or rollback migrations for plugins.

php artisan plugin:migrate [plugin]
ArgumentDescription
pluginPlugin slug (vendor/slug) or omit to migrate all
OptionDescription
--rollbackRollback migrations instead of running them
--statusShow migration status

Example:

# Migrate all plugins
php artisan plugin:migrate

# Migrate specific plugin
php artisan plugin:migrate acme/gallery

# Check migration status
php artisan plugin:migrate acme/gallery --status

# Rollback migrations
php artisan plugin:migrate acme/gallery --rollback

plugin:cleanup-backups

Clean up old plugin backups.

php artisan plugin:cleanup-backups [plugin]
ArgumentDescription
pluginPlugin slug (vendor/slug) or omit to clean all
OptionDescription
--keep=NNumber of backups to keep per plugin (default: 3)
--forceSkip confirmation

Example:

# Clean all backups (keep 3)
php artisan plugin:cleanup-backups

# Keep only 1 backup per plugin
php artisan plugin:cleanup-backups --keep=1 --force

make:plugin

Create a new plugin scaffold.

php artisan make:plugin <name>
ArgumentDescription
namePlugin name (e.g., "Pro Blocks")
OptionDescription
--vendor=VENDORVendor name (defaults to "tallcms")
--description=DESCPlugin description
--author=AUTHORPlugin author name
--with-migrationInclude example migration
--with-filamentInclude Filament plugin integration
--with-routesInclude route files

Example:

# Basic plugin
php artisan make:plugin "Image Gallery"

# Full-featured plugin
php artisan make:plugin "Pro Gallery" \
  --vendor=acme \
  --author="Acme Inc." \
  --with-migration \
  --with-filament \
  --with-routes

Theme Commands

theme:list

List all available TallCMS themes.

php artisan theme:list
OptionDescription
--detailedShow detailed theme information

Example:

# List themes
php artisan theme:list

# Show details
php artisan theme:list --detailed

theme:activate

Activate a TallCMS theme.

php artisan theme:activate <slug>
ArgumentDescription
slugThe theme slug to activate
OptionDescription
--forceForce activation even if theme is not installed

Example:

php artisan theme:activate corporate

theme:build

Build TallCMS theme assets.

php artisan theme:build [slug]
ArgumentDescription
slugTheme slug (optional, builds active theme if not specified)
OptionDescription
--forceForce rebuild even if assets exist

Example:

# Build active theme
php artisan theme:build

# Build specific theme
php artisan theme:build corporate --force

theme:install

Install a theme (publish assets and build).

php artisan theme:install <slug>
ArgumentDescription
slugThe theme slug to install

Example:

php artisan theme:install corporate

theme:cache:clear

Clear the theme discovery cache.

php artisan theme:cache:clear

make:theme

Create a new TallCMS theme with daisyUI integration.

php artisan make:theme [name]
ArgumentDescription
nameThe name of the theme
OptionDescription
--preset=PRESETDaisyUI preset (light, dark, cupcake, etc.) or "custom"
--prefers-dark=PRESETDark mode preset (optional)
--all-presetsInclude all daisyUI presets for theme-controller
--customCreate a custom daisyUI theme with your own color palette
--author=AUTHORTheme author name
--description=DESCTheme description
--theme-version=VERTheme version
--interactiveForce interactive mode even with arguments

Example:

# Interactive theme creation
php artisan make:theme

# Create with preset
php artisan make:theme "Corporate" --preset=corporate --author="Acme Inc."

# Create with dark mode
php artisan make:theme "Modern" --preset=light --prefers-dark=dark

# Create custom theme
php artisan make:theme "Brand" --custom --interactive

Block Commands

make:tallcms-block

Create a new TallCMS custom block with CSS custom properties integration.

php artisan make:tallcms-block <name>
ArgumentDescription
nameThe name of the custom block

Example:

php artisan make:tallcms-block Testimonials
php artisan make:tallcms-block ImageCarousel

This creates:

  • app/Filament/Blocks/{Name}Block.php - Block class
  • resources/views/blocks/{name}.blade.php - Block view

Shield Commands (Permissions)

TallCMS integrates with Filament Shield for role-based access control.

shield:generate

Generate permissions and/or policies for Filament entities.

php artisan shield:generate
OptionDescription
--allGenerate for all entities
--resource=NAMEOne or many resources (comma-separated)
--page=NAMEOne or many pages (comma-separated)
--widget=NAMEOne or many widgets (comma-separated)
--panel=IDPanel ID to get components from
--excludeExclude the given entities
--ignore-existing-policiesSkip policies that already exist

Example:

# Generate all permissions
php artisan shield:generate --all

# Generate for specific resources
php artisan shield:generate --resource=CmsPageResource,CmsPostResource

# Generate for admin panel
php artisan shield:generate --all --panel=admin

shield:super-admin

Assign the super admin role to a user.

php artisan shield:super-admin
OptionDescription
--user=IDID of user to be made super admin
--panel=IDPanel ID to get configuration from
--tenant=IDTeam/Tenant ID to assign role to user

Example:

# Interactive
php artisan shield:super-admin

# Assign to specific user
php artisan shield:super-admin --user=1

Maintenance Commands

Clear All Caches

php artisan view:clear && php artisan cache:clear && php artisan config:clear && php artisan route:clear

Rebuild Assets

php artisan filament:assets && php artisan livewire:publish --assets

Full Reset (Development)

php artisan migrate:fresh --seed && php artisan tallcms:setup --force

Common Pitfalls

"Command not found"Run composer dump-autoload and php artisan package:discover.

"Permission denied"Check file permissions on storage/ and bootstrap/cache/.

"Plugin migrations failed"Run php artisan plugin:migrate --status to check migration state.

"Theme not loading"Clear theme cache with php artisan theme:cache:clear.


Next Steps

Choose Theme