Skip to content

Orchestrator Settings (settings.yaml)

This document describes the configuration for the Scion orchestrator, managed through settings.yaml files. These settings control the behavior of the CLI, local agent execution, and connections to the Scion Hub.

Scion loads settings from the following locations, merging them in order (later sources override earlier ones):

  1. Global Settings: ~/.scion/settings.yaml (User-wide defaults)
  2. Grove Settings: .scion/settings.yaml (Project-specific overrides)
  3. Environment Variables: SCION_* overrides.

Settings files use a versioned format identified by the schema_version field. The current version is 1.

schema_version: "1"
active_profile: local
default_template: gemini
FieldTypeDescription
schema_versionstringRequired. Must be "1".
active_profilestringThe name of the profile to use by default (e.g., local, remote).
default_templatestringThe default template to use when creating agents (e.g., gemini, claude).
image_registrystringRegistry prefix for all standard harness images. Rewrites the registry portion of scion-* images (e.g., ghcr.io/myorg). See Building Custom Images.
default_max_turnsintDefault maximum number of turns an agent can take before termination.
default_max_model_callsintDefault maximum number of LLM model calls an agent can make.
default_max_durationstringDefault maximum execution time (e.g., "2h", "45m") for an agent.
default_resourcesobjectDefault resource constraints (CPU, memory, disk). See Resource Specification below.

General behavior settings for the command-line interface.

cli:
autohelp: true
interactive_disabled: false
FieldTypeDescription
autohelpboolWhether to print usage help on every error. Default: true.
interactive_disabledboolIf true, disables all interactive prompts (useful for scripts).

Settings for connecting the CLI to a Scion Hub.

hub:
enabled: true
endpoint: "https://hub.example.com"
grove_id: "uuid-or-slug"
local_only: false
FieldTypeDescription
enabledboolWhether to enable Hub integration for this grove.
endpointstringThe Hub API endpoint URL. Can be overridden per-agent in scion-agent.yaml.
grove_idstringThe unique identifier for this grove on the Hub.
local_onlyboolIf true, forces local-only operation even if the Hub is configured.

Defines the execution backends available to Scion.

runtimes:
docker:
type: docker
host: "unix:///var/run/docker.sock"
podman:
type: podman
host: "unix:///run/user/1000/podman/podman.sock"
remote-k8s:
type: kubernetes
context: "my-cluster"
namespace: "scion-agents"
FieldTypeDescription
typestringThe runtime type: docker, podman, container (Apple), or kubernetes.
hoststring(Docker/Podman) The daemon socket or TCP address. Optional for Podman (defaults to CLI).
contextstring(Kubernetes) The kubectl context name.
namespacestring(Kubernetes) The target namespace.
syncstringFile sync strategy (e.g., tar).
gkebool(Kubernetes) Enable GKE-specific features (e.g., Workload Identity). Default: false.
envmapEnvironment variables to set for the runtime.

Named configurations for agent harnesses. This replaces the legacy harnesses map.

harness_configs:
gemini:
harness: gemini
image: "us-central1-docker.pkg.dev/.../scion-gemini:latest"
user: scion
model: "gemini-1.5-pro"
claude-beta:
harness: claude
image: "custom-claude:beta"
env:
ANTHROPIC_BETA: "true"
FieldTypeDescription
harnessstringRequired. The harness type (e.g., gemini, claude, opencode).
imagestringContainer image to use.
userstringUnix username inside the container.
modelstringDefault model identifier.
task_flagstringCLI flag name for passing the task (e.g., --input). When set, the task is delivered as a flag value instead of a positional argument.
argslistAdditional CLI arguments for the harness.
envmapEnvironment variables injected into the container.
volumeslistVolume mounts.
auth_selected_typestringAuthentication method selection (harness-specific).
secretslistRequired secrets for this harness configuration (see below).
resourcesobjectResource limits (CPU, memory, disk) for this harness.

Defines the hardware constraints for an agent’s execution environment.

resources:
cpu: "2"
memory: "4Gi"
disk: "20Gi"
gpu: 0
FieldTypeDefaultDescription
cpustring"1"CPU cores (can be fractional, e.g., "0.5").
memorystring"2Gi"Memory limit (e.g., "1Gi", "512Mi").
diskstring"10Gi"Ephemeral disk space request.
gpuint0Number of GPUs to request (requires compatible runtime).

Define secrets that must be provided to the agent. During agent creation, Scion utilizes an interactive secrets-gather pipeline to prompt for missing values if they are not already securely stored on the backend, ensuring sensitive credentials are never written to plain text configuration files.

secrets:
- key: GEMINI_API_KEY
description: "Gemini API key"
type: environment
- key: service_account
description: "Service account JSON"
type: file
target: /run/secrets/sa.json
FieldTypeDescription
keystringRequired. The secret key name.
descriptionstringHuman-readable description.
typestringProjection type: environment (default), variable, or file.
targetstringFor file type, the path where the secret is mounted.

Profiles bind a Runtime to a set of Harness Configs and overrides. They allow you to switch between environments (e.g., “Local Docker” vs “Remote Kubernetes”) easily.

profiles:
local:
runtime: docker
default_template: gemini
default_harness_config: gemini
harness_overrides:
gemini:
image: "gemini:dev"
FieldTypeDescription
runtimestringRequired. Name of a runtime defined in runtimes.
default_templatestringDefault template for agents created under this profile.
default_harness_configstringDefault harness config to use.
image_registrystringProfile-level registry override. Takes precedence over the top-level image_registry.
envmapEnvironment variables merged into the runtime environment.
harness_overridesmapPer-harness-config overrides. Keys match harness_configs names.
secretslistRequired secrets for agents created under this profile.

Controls agent telemetry collection, forwarding, privacy filtering, and debug output. Telemetry settings can be defined at global or grove scope and are merged across the hierarchy (last write wins). They can also be overridden per-template or per-agent in scion-agent.yaml.

See the Metrics & OpenTelemetry guide for operational details.

telemetry:
enabled: true
cloud:
enabled: true
endpoint: "monitoring.googleapis.com:443"
protocol: grpc
filter:
events:
exclude:
- "agent.user.prompt"

Settings for forwarding telemetry to a cloud OTLP backend.

FieldTypeDefaultDescription
enabledbooltrueEnable cloud forwarding.
endpointstringCloud OTLP endpoint URL.
protocolstringgrpcTransport protocol: grpc or http.
headersmapAdditional headers for OTLP export (e.g., Authorization).
tls.enabledbooltrueEnable TLS for the connection.
tls.insecure_skip_verifyboolfalseSkip TLS certificate verification (development only).
batch.max_sizeint512Maximum spans per batch export.
batch.timeoutstring5sMaximum wait time before flushing a partial batch.

Settings for reporting telemetry summaries to the Scion Hub.

FieldTypeDefaultDescription
enabledbooltrueEnable Hub telemetry reporting. Auto-enabled in hosted mode.
report_intervalstring30sInterval between Hub reports.

Settings for local debug telemetry output.

FieldTypeDefaultDescription
enabledboolfalseEnable local debug output.
filestringPath for JSONL telemetry file output.
consoleboolfalseWrite debug telemetry to stderr.

Controls event filtering, attribute redaction, and sampling.

FieldTypeDefaultDescription
enabledbooltrueEnable event filtering.
respect_debug_modebooltrueBypass filters when debug mode is active.
events.includelist[]Event types to include (empty = all).
events.excludelist["agent.user.prompt"]Event types to exclude.
attributes.redactlistSee belowAttribute names to replace with [REDACTED].
attributes.hashlist["session_id"]Attribute names to SHA256 hash.
sampling.defaultfloat1.0Default sampling rate (0.0–1.0).
sampling.ratesmap{}Per-event-type sampling rate overrides.

Default redacted attributes: prompt, user.email, tool_output, tool_input.

Static key-value pairs added to all telemetry events. Useful for tagging deployments.

telemetry:
resource:
service.name: "scion-agent"
deployment.env: "staging"

When running the scion server (Hub or Broker), configuration is read from the server section of settings.yaml.

See the Server Configuration Reference for details.

Settings can be overridden using environment variables with the SCION_ prefix.

SettingEnvironment Variable
active_profileSCION_ACTIVE_PROFILE
default_templateSCION_DEFAULT_TEMPLATE
hub.endpointSCION_HUB_ENDPOINT
hub.grove_idSCION_HUB_GROVE_ID
cli.autohelpSCION_CLI_AUTOHELP
telemetry.enabledSCION_TELEMETRY_ENABLED
telemetry.cloud.enabledSCION_TELEMETRY_CLOUD_ENABLED
telemetry.cloud.endpointSCION_OTEL_ENDPOINT
telemetry.cloud.protocolSCION_OTEL_PROTOCOL
telemetry.cloud.tls.insecure_skip_verifySCION_OTEL_INSECURE
telemetry.hub.enabledSCION_TELEMETRY_HUB_ENABLED
telemetry.local.enabledSCION_TELEMETRY_DEBUG

See Local Governance for more on variable substitution.