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:
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.aiActive target
Rather than passing --target on every command, set an active target once:
veris env targets set customer-support-envAfter 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 blockManaging it:
veris env targets get # show active
veris env targets list # list all targets from veris.yaml
veris env targets clear # revert to auto-detectOverride 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
| Priority | Source |
|---|---|
| 1 | --target flag |
| 2 | Active target (veris env targets set) |
| 3 | Auto-detect: sole target in veris.yaml |
| 4 | Error if ambiguous |
When only one target is defined, it’s always auto-detected — no --target or active target needed.