Skip to content
Reference

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:

Code example
Shell
task help
task dev:up:core

The reference below covers arguments, profiles and reset scope.

Signature

Run Task from the Core repository root:

Code example
Shell
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:

Code example
Shell
task help

Minimal example

The shortest normal development cycle is:

Code example
Shell
task up
task status
task logs -- app  # Ctrl+C to stop following logs
task down

task 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.

FormForwarded toExample
task logs -- <service>docker compose logs -ftask logs -- typesense
task artisan -- <command>php artisan in apptask artisan -- route:list --no-ansi
task composer -- <arguments>Composer in apptask composer -- show amuzcorp/nexia-app-sdk-laravel
task pnpm -- <arguments>pnpm in apptask pnpm -- why react
task test -- <path-or-options>the PHP test runnertask test -- tests/Feature/Agent
task frontend:test -- <options>Vitesttask 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.

VariableUsed byBehavior
MODE=core|agent|runtime|typesense|fulldev:rebuild, dev:reset, dev:restoreSelects the final runtime profile; default core
PACKAGES=key,...setup, dev:rebuild, apps:checkout, apps:status, apps:update, apps:add, apps:removeSupplies 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:auditSelects one tenant
SNAPSHOT=<name>dev:snapshot, dev:restoreNames a manual-QA checkpoint; default baseline
SCENARIO=<name>perf:scenarioSelects one performance scenario
PERF_TENANT=<id>nexia-perf:provision-fixtureOverrides 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.

ProfileCommandRunning servicesUse it for
coretask dev:up:core or task upapp, vite, postgres, redisOrdinary Core, SDK, and App work
agenttask dev:up:agentcore + agent-gateway, agent-gateway-edge, horizonAgent Gateway work, including queued file attachments
runtimetask dev:up:runtimecore + horizon, scheduler, reverbQueues, scheduled work, and WebSockets
typesensetask dev:up:typesensecore + typesenseTypesense-backed Search
fulltask dev:up:fullcore + Agent Edge and Gateway, runtime services, mailpit, clamav, typesenseCross-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

CommandAliasPurpose
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:downtask downStop all local services and preserve volumes
task dev:statustask status, task psShow service state
task dev:logstask logsFollow all logs or the services passed after --
task dev:reload-apptask app:reloadRestart only the local Octane app container and wait until it is healthy
task dev:doctortask doctorDiagnose the runtime and seeded baseline
task dev:doctor-container—Run container-side environment diagnostics
task dev:rebuildtask rebuildRefresh 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

CommandShort aliasPurpose
task backend:shelltask shellOpen Bash in app
task backend:artisantask artisanRun an Artisan command
task backend:composertask composerRun Composer with the local package manifest
task backend:testtask testRun Core and discovered package PHP tests
task backend:formattask formatApply Laravel Pint formatting
task backend:format-check—Check Pint formatting without writing
task backend:php-compat—Check PHP compatibility rules
task backend:cache-cleartask cache-clearClear Laravel application caches
task backend:runtime-warmtask runtime:warmGenerate the App map and warm contribution and route caches
task backend:runtime-livetask runtime:liveClear route cache while retaining warm contribution discovery
task frontend:pnpmtask pnpmRun 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

CommandPurpose
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:migrateMigrate every registered tenant
task db:tenants:seedSeed 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:resetRecreate test databases after confirmation

Quality and tests

CommandPurpose
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:translationsValidate application translation catalogs
task lintRun every non-mutating repository check
task checkRun 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

AreaCommands
App Packagestask 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 Gatewaytask agent:restart, task agent:shell, task agent:logs, task agent:sync, task agent:test
Performancetask perf:scenarios, task nexia-perf:provision-fixture, task perf:measure, task perf:scenario SCENARIO=<name>
Langfusetask 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

CommandEffect
task db:resetDeletes 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:destroyDeletes every Compose-managed volume
task apps:status -- --offlineInspects 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

SymptomCauseResolution
task: Task "dev:up" does not existThe old ambiguous start command was removedUse task up for core or an explicit task dev:up:<profile>
task: Missing required variable: TENANTA one-tenant recipe has no targetAdd TENANT=<id>
service "app" is not runningA container wrapper ran before the runtimeStart task up, then retry
Fresh backend code is visible in CLI output but the browser still shows the previous behaviorThe running Octane worker or open Shell still has old stateRun task app:reload, then reload the browser
Logs contain every serviceNo service followed --Use task logs -- app or another Compose service name
Source of truth: docs/developers/content/en/getting-started/task-commands.md