Task commands
Look up the supported local commands for runtime profiles, logs, containers, databases, tests, packages, and destructive resets.
Task commands
This reference is for Nexia maintainers who already have authorized access to the private host environment. Core is not distributed to external developers. These host commands are not prerequisites for the public CLI and cloud sandbox; start with the quickstart.
Run host commands from the Core root. Find a task or start ordinary App development:
task help
task dev:up:coreThe reference below covers arguments, profiles and reset scope.
Signature
Run Task from the Core repository root:
task <task-name> [VARIABLE=value] [-- <forwarded arguments>]Taskfile.yml includes the recipes under tasks/. Colon-separated parts are
part of the command name; for example, task dev:up:typesense is one command.
Print the live catalog grouped by work area at any time:
task helpMinimal example
The shortest normal development cycle is:
task up
task status
task logs -- app # Ctrl+C to stop following logs
task downtask up is the only short start alias. It means task dev:up:core. The
explicit profile names are preferable in scripts and documentation.
Parameters
Forwarded arguments
Use -- to stop Task from parsing the remaining arguments. The selected recipe
passes them to its underlying tool.
| Form | Forwarded to | Example |
|---|---|---|
task logs -- <service> | docker compose logs -f | task logs -- typesense |
task artisan -- <command> | php artisan in app | task artisan -- route:list --no-ansi |
task composer -- <arguments> | Composer in app | task composer -- show amuzcorp/nexia-app-sdk-laravel |
task pnpm -- <arguments> | pnpm in app | task pnpm -- why react |
task test -- <path-or-options> | the PHP test runner | task test -- tests/Feature/Agent |
task frontend:test -- <options> | Vitest | task frontend:test -- --run |
Task variables
Task variables are NAME=value tokens, not forwarded arguments.
Package tasks work with SDK and App source folders under packages/. The
local package selection is the separate package-key list stored from
PACKAGES=...; it decides which source folders generated local Composer
configuration uses.
| Variable | Used by | Behavior |
|---|---|---|
MODE=core|agent|runtime|typesense|full | dev:rebuild, dev:reset, dev:restore | Selects the final runtime profile; default core |
PACKAGES=key,... | setup, dev:rebuild, apps:checkout, apps:status, apps:update, apps:add, apps:remove | Supplies an initial selection or a status/update subset. After setup, apps:add and apps:remove are the only selection mutations; setup/rebuild/checkout reject replacement |
TENANT=<id> | db:tenant:migrate, db:tenant:seed, nexia-db:audit | Selects one tenant |
SNAPSHOT=<name> | dev:snapshot, dev:restore | Names a manual-QA checkpoint; default baseline |
SCENARIO=<name> | perf:scenario | Selects one performance scenario |
PERF_TENANT=<id> | nexia-perf:provision-fixture | Overrides the perf-wave1 fixture tenant |
Runtime profiles
Each start command converges on a final profile: selected services start, unselected optional services stop, and existing Compose containers are reused. Running core and then runtime does not create a second app or database.
| Profile | Command | Running services | Use it for |
|---|---|---|---|
| core | task dev:up:core or task up | app, vite, postgres, redis | Ordinary Core, SDK, and App work |
| agent | task dev:up:agent | core + agent-gateway, agent-gateway-edge, horizon | Agent Gateway work, including queued file attachments |
| runtime | task dev:up:runtime | core + horizon, scheduler, reverb | Queues, scheduled work, and WebSockets |
| typesense | task dev:up:typesense | core + typesense | Typesense-backed Search |
| full | task dev:up:full | core + Agent Edge and Gateway, runtime services, mailpit, clamav, typesense | Cross-service end-to-end verification |
These are baseline service sets. A configured Reverb backend or browser key
adds reverb to any selected profile and removes it from that profile's stop
set. Agent response streaming remains SSE; Reverb carries Shell realtime
invalidation, including Agent task changes.
There is deliberately no bare task dev:up, task full, or task agent:up.
Use the profile name so the resulting service set is visible in the command.
Environment and inspection
| Command | Alias | Purpose |
|---|---|---|
task setup [PACKAGES=key,...] | — | Bootstrap a fresh Core source folder; defaults to no local package sources when no stored selection exists; later omission reuses the saved selection |
task dev:down | task down | Stop all local services and preserve volumes |
task dev:status | task status, task ps | Show service state |
task dev:logs | task logs | Follow all logs or the services passed after -- |
task dev:reload-app | task app:reload | Restart only the local Octane app container and wait until it is healthy |
task dev:doctor | task doctor | Diagnose the runtime and seeded baseline |
task dev:doctor-container | — | Run container-side environment diagnostics |
task dev:rebuild | task rebuild | Refresh dependencies and rebuild the selected runtime profile and frontend assets; it retains the stored package selection |
task dev:snapshot | — | Save databases and tenant files under a named checkpoint |
task dev:restore | — | Restore a checkpoint, flush derived state, and apply MODE |
task dev:snapshots | — | List saved checkpoints |
Backend and frontend
| Command | Short alias | Purpose |
|---|---|---|
task backend:shell | task shell | Open Bash in app |
task backend:artisan | task artisan | Run an Artisan command |
task backend:composer | task composer | Run Composer with the local package manifest |
task backend:test | task test | Run Core and discovered package PHP tests |
task backend:format | task format | Apply Laravel Pint formatting |
task backend:format-check | — | Check Pint formatting without writing |
task backend:php-compat | — | Check PHP compatibility rules |
task backend:cache-clear | task cache-clear | Clear Laravel application caches |
task backend:runtime-warm | task runtime:warm | Generate the App map and warm contribution and route caches |
task backend:runtime-live | task runtime:live | Clear route cache while retaining warm contribution discovery |
task frontend:pnpm | task pnpm | Run pnpm in app |
task frontend:dev | — | Restart Vite and follow its logs |
task frontend:build | — | Build the SDK, client, and SSR assets |
task frontend:test | — | Run Vitest |
task frontend:typecheck | — | Type-check the frontend without emitting files |
Database
| Command | Purpose |
|---|---|
task db:migrate (task migrate) | Run central migrations |
task db:seed (task seed) | Seed the current environment baseline |
task db:tenant:migrate TENANT=<id> | Migrate one tenant |
task db:tenant:seed TENANT=<id> | Run the production-safe baseline seeder for one tenant |
task db:tenants:migrate | Migrate every registered tenant |
task db:tenants:seed | Seed every registered tenant after confirmation |
task nexia-db:audit [TENANT=<id>] | Run the read-only schema audit globally or for one tenant |
task db:test:reset | Recreate test databases after confirmation |
Quality and tests
| Command | Purpose |
|---|---|
task qa:lint-changed (task lint-changed) | Run governance checks for changed files |
task qa:lint-all (task lint-all) | Run governance checks across the repository |
task qa:translations | Validate application translation catalogs |
task lint | Run every non-mutating repository check |
task check | Run the full Core and Composer-resolved App gate |
Use the smallest relevant test while developing. task check is the local
promotion gate, not the default response to every edit.
Packages, Agent, and services
| Area | Commands |
|---|---|
| App Packages | task apps:list, task apps:add, task apps:remove, task apps:status, task apps:checkout, task apps:update, task apps:update-all, task apps:lock, task apps:lock:verify, task apps:coupling |
| Agent Edge and Gateway | task agent:restart, task agent:shell, task agent:logs, task agent:sync, task agent:test |
| Performance | task perf:scenarios, task nexia-perf:provision-fixture, task perf:measure, task perf:scenario SCENARIO=<name> |
| Langfuse | task langfuse:up, task langfuse:down, task langfuse:logs |
task apps:list shows the keys accepted by PACKAGES before setup.
On a fresh setup, PACKAGES=all selects SDK and all App sources while
PACKAGES=none selects no local sources. After setup, add or remove keys with task apps:add PACKAGES=...
or task apps:remove PACKAGES=...; a replacement list is refused. apps:update and
apps:update-all refuse existing work branches rather than switching them to
develop; finish the task and switch intentionally before synchronizing.
Start the Agent Edge and Gateway with task dev:up:agent. When Reverb is
configured, the same convergence also retains its WebSocket server for Agent
task and Shell invalidation events. agent:restart and agent:logs operate the
two Agent services; shell, sync, and test commands target the Gateway's Python
workspace.
Options and safety
| Command | Effect |
|---|---|
task db:reset | Deletes local central, tenant, and test data, then reseeds; with local SCOUT_DRIVER=typesense, also rebuilds Nexia's Typesense indexes |
task dev:reset [MODE=...] | Rebuilds the selected profile and deletes local application and test data |
task dev:destroy | Deletes every Compose-managed volume |
task apps:status -- --offline | Inspects the selected local package source folders without fetching remotes |
task apps:lock:verify -- [key...] | Read-only verification that committed lock references match their remote branch or tag |
The three reset and destroy commands prompt before deletion. A profile switch,
task down, and task logs do not delete volumes or application data.
Output or return
Task returns the exit status of the underlying command. task status prints the
Compose service table, task logs stays attached until interrupted, and
task help lists only public recipes and their aliases. Profile commands print
Compose start/stop results and the Agent screen-search or Resource Dataset
Import Ollama configuration checks required by that profile.
Errors
| Symptom | Cause | Resolution |
|---|---|---|
task: Task "dev:up" does not exist | The old ambiguous start command was removed | Use task up for core or an explicit task dev:up:<profile> |
task: Missing required variable: TENANT | A one-tenant recipe has no target | Add TENANT=<id> |
service "app" is not running | A container wrapper ran before the runtime | Start task up, then retry |
| Fresh backend code is visible in CLI output but the browser still shows the previous behavior | The running Octane worker or open Shell still has old state | Run task app:reload, then reload the browser |
| Logs contain every service | No service followed -- | Use task logs -- app or another Compose service name |
Related
- Run Nexia — understand the services before selecting a profile
- Artisan commands — look up commands forwarded through
task artisan - Quickstart — bootstrap the local environment once
- Fix installation errors — recover when a Task command cannot start the runtime