Skip to Content
ReferenceCLIMultiple targets

Multiple targets

One veris.yaml can declare multiple targets, each mapping to a separate Veris environment. Each veris env create appends a new target. The target name is the backend environment name.

Set up multiple targets

# First agent veris env create --name billing-assistant-env --agent-name "Billing Assistant" # Second agent, same .veris/ directory veris env create --name customer-support-env --agent-name "Customer Support"

--name is used verbatim as the target name; --agent-name is the display name written to agent.name in veris.yaml.

Each env create appends a skeleton target block to .veris/veris.yaml with placeholders for services, actor channels, and the agent entry point (most fields commented out). You fill in the specifics for each agent — which services it calls, how it’s reached, how it starts — either by editing veris.yaml directly or by handing the work to a coding agent with the agent-integration skill.

Once you’ve filled in both target blocks (directly or via the integration skill), .veris/veris.yaml looks like this:

.veris/veris.yaml
version: "1.0" billing-assistant-env: # first target agent: name: Billing Assistant entry_point: uv run app port: 8008 services: - name: postgres actor: channels: - type: http url: http://localhost:8008/chat customer-support-env: # second target agent: name: Customer Support entry_point: uv run support port: 8009 services: - name: zendesk-support dns_aliases: - help.example.com actor: channels: - type: email email_address: support@ea.veris.ai

Active target

Rather than passing --target on every command, set an active target once:

veris env targets set customer-support-env

After this, all commands automatically use customer-support-env:

veris env push # pushes customer-support-env veris run # runs customer-support-env veris env vars set API_KEY=sk-... # for customer-support-env veris env config push # uploads customer-support-env block

Managing it:

veris env targets get # show active veris env targets list # list all targets from veris.yaml veris env targets clear # revert to auto-detect

Override with --target

For one-off commands, pass --target directly instead of changing the active target:

veris env push --target billing-assistant-env veris run --target customer-support-env

--target is accepted on veris run and the veris env commands that act on a specific target (push, submit, config push, config pull, vars set/list/rm).

Per-target Dockerfile

Each target can specify a custom Dockerfile. If omitted, .veris/Dockerfile.sandbox is used.

customer-support-env: dockerfile: .veris/Dockerfile.support agent: name: Customer Support ...

Resolution order

PrioritySource
1--target flag
2Active target (veris env targets set)
3Auto-detect: sole target in veris.yaml
4Error if ambiguous

When only one target is defined, it’s always auto-detected — no --target or active target needed.