Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Server Flags

Flag reference for the orlojd (API server) and orlojworker (task worker) daemon binaries.

Both binaries share the same flag groups for tool isolation, model secret resolution, and message bus configuration. Flags that differ between the two are noted in the Condition / Notes column.

See Configuration for the full environment-variable matrix and precedence rules.

orlojd

Print full flags:

go run ./cmd/orlojd -h

Core, auth, and storage

FlagDefaultDescriptionCondition / Notes
--versionfalsePrint version and exit.n/a
--log-levelinfoMinimum log level.`debug
--debugfalseEnable debug logging.Equivalent to --log-level=debug; takes precedence over --log-level.
--addr:8080Server listen address.n/a
--ui-path/Base URL path for the web console.Env fallback: ORLOJ_UI_PATH. Set to a subpath (e.g. /console/) when sharing a hostname via reverse proxy.
--cors-allowed-originsemptyComma-separated CORS allowed origins.Env fallback: ORLOJ_CORS_ALLOWED_ORIGINS. Empty means same-origin only.
--tls-cert-fileemptyTLS certificate file for HTTPS.Env fallback: ORLOJ_TLS_CERT_FILE. Requires --tls-key-file.
--tls-key-fileemptyTLS private key file for HTTPS.Env fallback: ORLOJ_TLS_KEY_FILE. Requires --tls-cert-file.
--api-keyemptyBearer token auth key.Env fallback: ORLOJ_API_TOKEN; see also ORLOJ_API_TOKENS. Prefer env over flag (flag values are visible in process listings).
--auth-modeoffAPI auth mode.`off
--auth-session-ttl24hSession TTL for local auth mode.Env fallback: ORLOJ_AUTH_SESSION_TTL.
--auth-reset-admin-usernameemptyOne-shot admin reset username.Env fallback: ORLOJ_AUTH_RESET_ADMIN_USERNAME.
--auth-reset-admin-passwordemptyOne-shot admin reset password and exit.Env fallback: ORLOJ_AUTH_RESET_ADMIN_PASSWORD. Prefer env over flag.
--trusted-proxiesemptyComma-separated CIDRs of reverse proxies whose X-Forwarded-For / X-Real-IP headers are trusted for client IP extraction.Env fallback: ORLOJ_TRUSTED_PROXIES. Required for correct per-client auth rate limiting behind a proxy. See Security — Trusted proxy configuration.
--secret-encryption-keyemptyAES-256-GCM key for Secret encryption at rest.Env fallback: ORLOJ_SECRET_ENCRYPTION_KEY. Prefer env over flag. On orlojd, also wraps the DB-stored SealedSecret private key.
--storage-backendmemoryState backend.`memory
--postgres-dsnemptyPostgres DSN.Required when --storage-backend=postgres; env ORLOJ_POSTGRES_DSN.
--sql-driverpgxdatabase/sql driver for Postgres backend.Postgres backend only.
--postgres-max-open-conns20Max open Postgres connections.Postgres backend only.
--postgres-max-idle-conns10Max idle Postgres connections.Postgres backend only.
--postgres-conn-max-lifetime30mMax Postgres connection lifetime.Postgres backend only.

A2A protocol

FlagDefaultDescriptionCondition / Notes
--a2a-public-base-urlemptyPublic base URL for Agent Card url fields.Env ORLOJ_A2A_PUBLIC_BASE_URL. Required for externally-reachable Agent Cards.
--a2a-protocol-versionemptyA2A protocol version to advertise.Env ORLOJ_A2A_PROTOCOL_VERSION.
--a2a-card-cache-ttl5mTTL for cached remote Agent Cards.Env ORLOJ_A2A_CARD_CACHE_TTL.
--a2a-allow-private-endpointsfalseAllow outbound A2A requests to private/loopback IPs.Env ORLOJ_A2A_ALLOW_PRIVATE_ENDPOINTS. See Security — A2A Security.
--a2a-remote-agentsemptyJSON-encoded list of static remote A2A agents.Env ORLOJ_A2A_REMOTE_AGENTS.
--a2a-rate-limit-enabledtrueEnable per-IP rate limiting for A2A endpoints.Env ORLOJ_A2A_RATE_LIMIT_ENABLED.
--a2a-rate-limit-rpm30Max A2A JSON-RPC requests per minute per IP.Env ORLOJ_A2A_RATE_LIMIT_RPM.
--a2a-rate-limit-max-subscribe10Max concurrent SSE subscribe connections globally (server-wide).Env ORLOJ_A2A_RATE_LIMIT_MAX_SUBSCRIBE.

CRD conflict policy

FlagDefaultDescriptionCondition / Notes
--crd-conflict-policywarnHow orlojd handles REST API writes to CRD-managed resources.`off

Modes:

  • off — No conflict detection. REST writes proceed normally even if the resource is CRD-managed.
  • warn (default) — REST writes succeed, but orlojd logs a warning and sets the X-Orloj-CRD-Managed: true response header. The operator will overwrite the change on its next reconcile.
  • reject — REST writes to CRD-managed resources return 409 Conflict with a message directing the user to update via kubectl apply or Git.

See Kubernetes CRD Operator for full operator documentation.

Task execution and embedded worker

FlagDefaultDescriptionCondition / Notes
--reconcile-interval2sAgent reconcile interval.n/a
--task-execution-modesequentialTask execution mode.`sequential
--run-task-workerfalseRun embedded task worker in orlojd.Alias exists: --embedded-worker.
--embedded-workerfalseAlias for --run-task-worker.n/a
--task-worker-idembedded-workerEmbedded worker identity.n/a
--task-worker-regiondefaultEmbedded worker region.Env fallback: ORLOJ_TASK_WORKER_REGION.
--embedded-worker-max-concurrent-tasks1Embedded worker max concurrent tasks.Env fallback: ORLOJ_EMBEDDED_WORKER_MAX_CONCURRENT_TASKS.
--task-lease-duration30sEmbedded worker task lease duration.Embedded worker only.
--task-heartbeat-interval10sEmbedded worker lease heartbeat interval.Embedded worker only.

Event bus and runtime message bus

FlagDefaultDescriptionCondition / Notes
--event-bus-backendmemoryControl-plane event bus backend.`memory
--nats-urlnats://127.0.0.1:4222NATS URL for control-plane event bus.Used when --event-bus-backend=nats; env ORLOJ_NATS_URL.
--nats-subject-prefixorloj.controlplaneNATS subject prefix for control-plane events.NATS event bus only; env ORLOJ_NATS_SUBJECT_PREFIX.
--agent-message-bus-backendnoneRuntime agent message bus backend.`none
--agent-message-nats-urlnats://127.0.0.1:4222NATS URL for runtime agent messages.Used when nats-jetstream; env ORLOJ_AGENT_MESSAGE_NATS_URL (falls back to ORLOJ_NATS_URL).
--agent-message-subject-prefixorloj.agentmsgSubject prefix for runtime agent messages.Env ORLOJ_AGENT_MESSAGE_SUBJECT_PREFIX.
--agent-message-stream-nameORLOJ_AGENT_MESSAGESJetStream stream name for runtime messages.Env ORLOJ_AGENT_MESSAGE_STREAM.
--agent-message-history-max2048In-memory runtime message history capacity.In-memory runtime message backend behavior.
--agent-message-dedupe-window2mIn-memory runtime message dedupe window.In-memory runtime message backend behavior.

Model secret resolution

FlagDefaultDescriptionCondition / Notes
--model-secret-env-prefixORLOJ_SECRET_Env prefix for model secretRef resolution.Env fallback: ORLOJ_MODEL_SECRET_ENV_PREFIX.

Model routing (provider, base URL, default model, API key, timeout) is configured exclusively via ModelEndpoint resources. Agents reference endpoints through spec.model_ref. See Configure Model Routing.

Tool isolation runtime

FlagDefaultDescriptionCondition / Notes
--tool-isolation-backendnoneContainer isolation backend for tool sandboxing.`none
--tool-container-runtimedockerContainer runtime binary.Container backend; env ORLOJ_TOOL_CONTAINER_RUNTIME.
--tool-container-imagecurlimages/curl:8.8.0Container image for isolated tool calls.Container backend; env ORLOJ_TOOL_CONTAINER_IMAGE.
--tool-container-networknoneContainer network mode.Container backend; env ORLOJ_TOOL_CONTAINER_NETWORK.
--tool-container-memory128mDefault container memory limit. Per-tool spec.cli.resources.memory and per-McpServer spec.resources.memory take precedence when set.Container backend; env ORLOJ_TOOL_CONTAINER_MEMORY.
--tool-container-cpus0.50Default container CPU limit. Per-tool spec.cli.resources.cpus and per-McpServer spec.resources.cpus take precedence when set.Container backend; env ORLOJ_TOOL_CONTAINER_CPUS.
--tool-container-pids-limit64Default container PID limit. Per-tool spec.cli.resources.pids_limit and per-McpServer spec.resources.pids_limit take precedence when set.Container backend; env ORLOJ_TOOL_CONTAINER_PIDS_LIMIT.
--tool-container-user65532:65532Container user.Container backend; env ORLOJ_TOOL_CONTAINER_USER.
--tool-container-max-memoryemptyOperator ceiling for per-tool/McpServer resources.memory. Empty means unbounded. Manifests exceeding this are rejected at apply time.orlojd only; env ORLOJ_TOOL_CONTAINER_MAX_MEMORY.
--tool-container-max-cpusemptyOperator ceiling for per-tool/McpServer resources.cpus. Empty means unbounded.orlojd only; env ORLOJ_TOOL_CONTAINER_MAX_CPUS.
--tool-container-max-pids-limit0Operator ceiling for per-tool/McpServer resources.pids_limit. 0 means unbounded.orlojd only; env ORLOJ_TOOL_CONTAINER_MAX_PIDS_LIMIT.
--tool-secret-env-prefixORLOJ_SECRET_Env prefix for tool secretRef resolution.Env fallback: ORLOJ_TOOL_SECRET_ENV_PREFIX.
--tool-wasm-moduleemptyDefault WASM module path (per-tool spec.wasm.module takes precedence).Always available; env ORLOJ_TOOL_WASM_MODULE.
--tool-wasm-entrypointrunDefault WASM entrypoint function.Always available; env ORLOJ_TOOL_WASM_ENTRYPOINT.
--tool-wasm-memory-bytes67108864Default max WASM memory bytes.Always available; env ORLOJ_TOOL_WASM_MEMORY_BYTES.
--tool-wasm-fuel1000000Default WASM execution fuel limit.Always available; env ORLOJ_TOOL_WASM_FUEL.
--tool-wasm-wasitrueDefault: enable WASI host functions.Always available; env ORLOJ_TOOL_WASM_WASI.
--tool-wasm-cache-dir~/.orloj/wasm-cacheDisk cache directory for remote WASM modules (HTTPS/OCI).Always available; env ORLOJ_TOOL_WASM_CACHE_DIR.
--tool-k8s-enabledfalseEnable Kubernetes tool isolation runtime.Env ORLOJ_TOOL_K8S_ENABLED. When true, tools with isolation_mode: kubernetes run as K8s Jobs.
--tool-k8s-namespacepod namespace or defaultNamespace for tool Jobs.Env ORLOJ_TOOL_K8S_NAMESPACE.
--tool-k8s-service-accountemptyService account for tool Pods.Env ORLOJ_TOOL_K8S_SERVICE_ACCOUNT.
--tool-k8s-job-ttl300TTL seconds after Job finishes (ttlSecondsAfterFinished).Env ORLOJ_TOOL_K8S_JOB_TTL.
--tool-k8s-default-imagecurlimages/curl:8.8.0Fallback image for HTTP tools without an explicit image.Env ORLOJ_TOOL_K8S_DEFAULT_IMAGE.

Agent Kubernetes execution

FlagDefaultDescriptionCondition / Notes
--agent-k8s-enabledfalseRun agents as ephemeral K8s Jobs.Env ORLOJ_AGENT_K8S_ENABLED. Agents with Docker-dependent tools fall back to in-process.
--agent-k8s-namespacepod namespace or defaultNamespace for agent Jobs.Env ORLOJ_AGENT_K8S_NAMESPACE.
--agent-k8s-service-accountemptyService account for agent Pods.Env ORLOJ_AGENT_K8S_SERVICE_ACCOUNT.
--agent-k8s-imageown imageContainer image for agent Jobs.Env ORLOJ_AGENT_K8S_IMAGE. Defaults to the running binary's own image.
--agent-k8s-job-ttl600TTL seconds after Job finishes (ttlSecondsAfterFinished).Env ORLOJ_AGENT_K8S_JOB_TTL.
--agent-k8s-default-memory512MiDefault memory limit for agent Pods.Env ORLOJ_AGENT_K8S_DEFAULT_MEMORY.
--agent-k8s-default-cpu500mDefault CPU limit for agent Pods.Env ORLOJ_AGENT_K8S_DEFAULT_CPU.

orlojworker

Print full flags:

go run ./cmd/orlojworker -h

Core, storage, and identity

FlagDefaultDescriptionCondition / Notes
--versionfalsePrint version and exit.n/a
--log-levelinfoMinimum log level.`debug
--debugfalseEnable debug logging.Equivalent to --log-level=debug; takes precedence over --log-level.
--worker-idworker-1Worker identity.n/a
--healthz-addremptyOptional /healthz listener address.Empty disables; env ORLOJ_WORKER_HEALTHZ_ADDR.
--regiondefaultWorker region.n/a
--gpufalseDeclare GPU capability.n/a
--supported-modelsemptyComma-separated supported model IDs.n/a
--max-concurrent-tasks1Worker concurrency capacity.n/a
--storage-backendpostgresState backend.`postgres
--postgres-dsnemptyPostgres DSN.Required when --storage-backend=postgres; env ORLOJ_POSTGRES_DSN.
--sql-driverpgxdatabase/sql driver for Postgres backend.Postgres backend only.
--postgres-max-open-conns20Max open Postgres connections.Postgres backend only.
--postgres-max-idle-conns10Max idle Postgres connections.Postgres backend only.
--postgres-conn-max-lifetime30mMax Postgres connection lifetime.Postgres backend only.
--secret-encryption-keyemptyAES-256-GCM key for Secret encryption at rest.Env fallback: ORLOJ_SECRET_ENCRYPTION_KEY. Workers do not use the SealedSecret private key.

Task execution and runtime inbox consumers

FlagDefaultDescriptionCondition / Notes
--reconcile-interval1sClaim/reconcile interval.n/a
--lease-duration30sTask lease duration.n/a
--heartbeat-interval10sLease heartbeat interval.n/a
--task-execution-modesequentialTask execution mode.`sequential
--agent-message-bus-backendnoneRuntime agent message bus backend.`none
--agent-message-nats-urlnats://127.0.0.1:4222NATS URL for runtime agent messages.Used when nats-jetstream; env ORLOJ_AGENT_MESSAGE_NATS_URL (fallback ORLOJ_NATS_URL).
--agent-message-subject-prefixorloj.agentmsgSubject prefix for runtime messages.Env ORLOJ_AGENT_MESSAGE_SUBJECT_PREFIX.
--agent-message-stream-nameORLOJ_AGENT_MESSAGESJetStream stream name for runtime messages.Env ORLOJ_AGENT_MESSAGE_STREAM.
--agent-message-history-max2048In-memory runtime message history capacity.In-memory runtime message backend behavior.
--agent-message-dedupe-window2mIn-memory runtime message dedupe window.In-memory runtime message backend behavior.
--agent-message-consumefalseEnable runtime inbox consumers in worker.Env fallback: ORLOJ_AGENT_MESSAGE_CONSUME.
--agent-message-consumer-namespaceemptyNamespace filter for runtime inbox consumers.Env fallback: ORLOJ_AGENT_MESSAGE_CONSUMER_NAMESPACE.
--agent-message-consumer-refresh10sConsumer reconciliation interval.n/a
--agent-message-consumer-dedupe-window10mInbox processing dedupe window.n/a

Model secret resolution

FlagDefaultDescriptionCondition / Notes
--model-secret-env-prefixORLOJ_SECRET_Env prefix for model secretRef resolution.Env fallback: ORLOJ_MODEL_SECRET_ENV_PREFIX.

Model routing (provider, base URL, default model, API key, timeout) is configured exclusively via ModelEndpoint resources. Agents reference endpoints through spec.model_ref. See Configure Model Routing.

Tool isolation runtime

FlagDefaultDescriptionCondition / Notes
--tool-isolation-backendnoneContainer isolation backend for tool sandboxing.`none
--tool-container-runtimedockerContainer runtime binary.Container backend; env ORLOJ_TOOL_CONTAINER_RUNTIME.
--tool-container-imagecurlimages/curl:8.8.0Container image for isolated tool calls.Container backend; env ORLOJ_TOOL_CONTAINER_IMAGE.
--tool-container-networknoneContainer network mode.Container backend; env ORLOJ_TOOL_CONTAINER_NETWORK.
--tool-container-memory128mDefault container memory limit. Per-tool spec.cli.resources.memory takes precedence when set.Container backend; env ORLOJ_TOOL_CONTAINER_MEMORY.
--tool-container-cpus0.50Default container CPU limit. Per-tool spec.cli.resources.cpus takes precedence when set.Container backend; env ORLOJ_TOOL_CONTAINER_CPUS.
--tool-container-pids-limit64Default container PID limit. Per-tool spec.cli.resources.pids_limit takes precedence when set.Container backend; env ORLOJ_TOOL_CONTAINER_PIDS_LIMIT.
--tool-container-user65532:65532Container user.Container backend; env ORLOJ_TOOL_CONTAINER_USER.
--tool-secret-env-prefixORLOJ_SECRET_Env prefix for tool secretRef resolution.Env fallback: ORLOJ_TOOL_SECRET_ENV_PREFIX.
--tool-wasm-moduleemptyDefault WASM module path (per-tool spec.wasm.module takes precedence).Always available; env ORLOJ_TOOL_WASM_MODULE.
--tool-wasm-entrypointrunDefault WASM entrypoint function.Always available; env ORLOJ_TOOL_WASM_ENTRYPOINT.
--tool-wasm-memory-bytes67108864Default max WASM memory bytes.Always available; env ORLOJ_TOOL_WASM_MEMORY_BYTES.
--tool-wasm-fuel1000000Default WASM execution fuel limit.Always available; env ORLOJ_TOOL_WASM_FUEL.
--tool-wasm-wasitrueDefault: enable WASI host functions.Always available; env ORLOJ_TOOL_WASM_WASI.
--tool-wasm-cache-dir~/.orloj/wasm-cacheDisk cache directory for remote WASM modules (HTTPS/OCI).Always available; env ORLOJ_TOOL_WASM_CACHE_DIR.
--tool-k8s-enabledfalseEnable Kubernetes tool isolation runtime.Env ORLOJ_TOOL_K8S_ENABLED. When true, tools with isolation_mode: kubernetes run as K8s Jobs.
--tool-k8s-namespacepod namespace or defaultNamespace for tool Jobs.Env ORLOJ_TOOL_K8S_NAMESPACE.
--tool-k8s-service-accountemptyService account for tool Pods.Env ORLOJ_TOOL_K8S_SERVICE_ACCOUNT.
--tool-k8s-job-ttl300TTL seconds after Job finishes (ttlSecondsAfterFinished).Env ORLOJ_TOOL_K8S_JOB_TTL.
--tool-k8s-default-imagecurlimages/curl:8.8.0Fallback image for HTTP tools without an explicit image.Env ORLOJ_TOOL_K8S_DEFAULT_IMAGE.

Agent Kubernetes execution

FlagDefaultDescriptionCondition / Notes
--agent-k8s-enabledfalseRun agents as ephemeral K8s Jobs.Env ORLOJ_AGENT_K8S_ENABLED. Agents with Docker-dependent tools fall back to in-process.
--agent-k8s-namespacepod namespace or defaultNamespace for agent Jobs.Env ORLOJ_AGENT_K8S_NAMESPACE.
--agent-k8s-service-accountemptyService account for agent Pods.Env ORLOJ_AGENT_K8S_SERVICE_ACCOUNT.
--agent-k8s-imageown imageContainer image for agent Jobs.Env ORLOJ_AGENT_K8S_IMAGE. Defaults to the running binary's own image.
--agent-k8s-job-ttl600TTL seconds after Job finishes (ttlSecondsAfterFinished).Env ORLOJ_AGENT_K8S_JOB_TTL.
--agent-k8s-default-memory512MiDefault memory limit for agent Pods.Env ORLOJ_AGENT_K8S_DEFAULT_MEMORY.
--agent-k8s-default-cpu500mDefault CPU limit for agent Pods.Env ORLOJ_AGENT_K8S_DEFAULT_CPU.
--single-agentfalseRun a single agent execution (used by K8s agent Jobs).Internal flag; not for manual use.
--task-idemptyTask ID for single-agent mode.Used with --single-agent.
--agent-nameemptyAgent name for single-agent mode.Used with --single-agent.
--attempt0Attempt number for single-agent mode.Used with --single-agent.
--message-idemptyMessage ID for single-agent mode.Used with --single-agent.

Command Discovery

Use help output as the authoritative source for your current build:

go run ./cmd/orlojd -h
go run ./cmd/orlojworker -h

Related