Development Tools
These commands bridge the gap between your local host machine and the professional containers running inside your cluster.
shell {service?}
The "Remote Terminal." Opens a secure, interactive shell directly inside a running pod.
- Interactive Menu: Run
larakube shellwithout arguments to see a menu of all active services in your project. - Service Mapping: Automatically maps your architecture (e.g.,
web,reverb,horizon,mysql) to the correct pod and container. - Rich Interface: Prioritizes
bashfor a full terminal experience, falling back toshfor minimal images.
art {command*}
The "Remote Artisan." Run any Laravel Artisan command directly in your cluster. No setup or tunnel required.
- Usage:
larakube art migrate - Automatic Context: Automatically targets your
localenvironment by default.
tinker
The "Interactive Lab." Interact with your application via an interactive shell. This is a convenient shortcut to larakube art tinker.
Proxy commands (art, php, exec, composer, npm, node, yarn, pnpm, bun) feature Transparent Flag Capture. Pass any flag — including --help, complex args like tinker --execute='echo \App\Models\User::count();', or unusual shell metacharacters — and it's forwarded exactly as-is to the container. larakube art migrate --help now shows artisan's migrate help, not LaraKube CLI's.
test
The "Test Runner." Run phpunit/pest inside the web pod safely. This is the recommended way to run tests under LaraKube CLI.
- Safe by default: Tests run against in-memory SQLite regardless of the project's actual DB driver.
RefreshDatabasecan't touch your dev data. --dbflag: Provisions and runs against<app>_testingon the project's real DB engine. Idempotent — re-running is a no-op when the test DB already exists. Auto-persists"provisionTestDb": trueto.larakube.jsonon first use, so future runs are flag-free.- Driver coverage: MySQL, MariaDB, PostgreSQL are auto-provisioned for
--db. SQLite and MongoDB fall back to in-memory SQLite with an informative notice. - Native feel: All phpunit/pest flags pass through (
--filter,--testsuite,--coverage,--parallel, etc.). - Auto-delegation:
larakube art test,larakube php artisan test,larakube php vendor/bin/pest,larakube exec vendor/bin/phpunitall route through this command's safe flow — users who instinctively reach for those forms get the same protection.
LaraKube CLI pods inject DB credentials (DB_CONNECTION, DB_DATABASE, etc.) via ConfigMap at container start. PHP reads those before consulting phpunit.xml, so phpunit.xml's <env> blocks are silently ignored — and any test using RefreshDatabase would wipe your dev database. larakube test strips those env vars before invoking phpunit, restoring phpunit.xml's authority and adding safe SQLite defaults.
reload
The "Worker Recycle" tool. Recycle long-running PHP processes (Octane workers, Horizon, queue workers) to pick up code changes — without restarting the pod.
- Octane (FrankenPHP) →
php artisan octane:reload(instant, no socket drop). - Horizon →
php artisan horizon:terminate(graceful drain; current jobs finish). - Queues →
php artisan queue:restart(graceful drain). - Service discovery: Iterates the
featuresarray in your.larakube.json— only reloads what's actually enabled.
watch
The "File Watcher." Polls the project directory and triggers larakube reload when files change. Pure PHP, no fswatch/inotify dependency.
- Watch paths: Configurable via the
watchPathsfield in.larakube.json(defaults toapp,bootstrap,config,database,public,resources,routes,composer.lock,.env). - Interval: Defaults to 500ms; tune with
--interval=N(milliseconds). - Pairs with reload: Edit a Blade template or PHP class → ~500ms later, Octane workers cycle, no manual reload needed.
exec {command*}
The "Remote Command." Run a one-off command inside a running pod.
- Direct Action: Perfect for running DB dumps, checking files, or verifying configurations.
- Usage:
larakube exec ls -la
node {command*}, npm, yarn, pnpm, bun
The "Frontend Bridge." Manage your frontend assets without having Node.js installed on your host.
- Zero-Host: All commands run inside the
laravel-nodecontainer. - Usage:
larakube npm install,larakube bun run build. - Persistence: Installs are persisted to your project's
node_modulesvia volume mounts.
composer {command*}
The "PHP Package Bridge." Run any composer command inside the web container — no host PHP/composer needed.
- Usage:
larakube composer require spatie/laravel-permission,larakube composer update. - Pairs with
larakube up: First-time installs are auto-handled; this command is for ongoing maintenance.
php {command*}
The "Remote PHP." Execute PHP scripts or check your environment directly in the web container.
- Example:
larakube php -v,larakube php script.php.
update
The "Self-Update" tool. Pulls the latest CLI release from GitHub and installs it in place. Use after a new version is announced.
MCP (Model Context Protocol)
LaraKube CLI supports the Model Context Protocol to provide AI tools with deep knowledge of your project.
mcp:register
The "AI Connector." Register the LaraKube CLI MCP server with AI tools like Gemini or Claude.
- Options:
--gemini: Register with Gemini CLI.--claude: Register with Claude Desktop.--all: Register with all supported AI tools.
mcp:start
The "MCP Engine." Start the MCP Server for a given handle. Usually invoked indirectly by AI clients via the registration step above — you rarely need to run this by hand.