Skip to main content

config.toml Reference

TalkOps reads declarative TOML configuration from two locations—merging project-level overrides on top of user-level defaults (src/talkops/config/toml_config.py and src/talkops/config/manifest.py):

  1. User-global config: ~/.talkops/config.toml
  2. Project-workspace config: .talkops/config.toml

Any string value in config.toml can reference an environment variable using the "env:VAR_NAME" prefix (for example, secret = "env:TALKOPS_WEBHOOK_SECRET").


Complete config.toml template​

# ── 1. Multi-Cloud & Kubernetes Context ──────────────────────────────────────
[cloud]
default_provider = "aws" # "aws" | "azure" | "gcp" | "multi"

[aws]
profile = "prod-admin"
region = "us-east-1"
# endpoint_url = "http://localhost:4566" # Optional LocalStack / custom endpoint

[azure]
subscription_id = "00000000-0000-0000-0000-000000000000"
tenant_id = "11111111-1111-1111-1111-111111111111"
resource_group = "rg-production-eastus"
location = "eastus"

[gcp]
project_id = "my-prod-gcp-project"
region = "us-central1"
zone = "us-central1-a"
# credentials_file = "/path/to/service-account.json"

[k8s]
kubeconfig = "~/.kube/config"
context = "arn:aws:eks:us-east-1:123456789012:cluster/prod-eks"
namespace = "production"
helm_binary = "helm"

# ── 2. Full-Spectrum DevOps Tooling & Platform Endpoints ─────────────────────
[devops]
terraform_binary = "terraform" # Or "tofu" for OpenTofu
terragrunt_binary = "terragrunt"
ansible_binary = "ansible-playbook"
docker_host = "unix:///var/run/docker.sock"
github_host = "github.com"
gitlab_url = "https://gitlab.com"
argocd_server = "argocd.internal.company.com"
prometheus_url = "http://prometheus.monitoring.svc:9090"
grafana_url = "https://grafana.internal.company.com"
loki_url = "http://loki.monitoring.svc:3100"
datadog_site = "datadoghq.com"
pagerduty_url = "https://api.pagerduty.com"
jira_url = "https://company.atlassian.net"
vault_addr = "https://vault.internal.company.com:8200"
jenkins_url = "https://jenkins.internal.company.com"
servicenow_url = "https://company.service-now.com"
sonarqube_url = "https://sonarqube.internal.company.com"

# ── 3. Models & Jev Smart Mode 3-Tier Pool ───────────────────────────────────
[models]
default = "anthropic:claude-sonnet-4-6"
reasoning_effort = "medium" # "off" | "low" | "medium" | "high" | "xhigh" | "max"
pool = [
"anthropic:claude-haiku-4-5", # Tier 0 (fast) -> effort = "off"
"anthropic:claude-sonnet-4-6", # Tier 1 (standard) -> effort = "medium"
"anthropic:claude-opus-4-6" # Tier 2 (powerful) -> effort = "max"
]

# ── 4. Security & Jev System One Approval Guardrails ─────────────────────────
[security]
approval_mode = "smart" # "manual" | "smart" | "auto" | "yolo"
environment = "production" # "development" | "staging" | "production"
shell_allow_list = ["kubectl", "helm", "terraform", "aws", "az", "gcloud", "git", "jq"]
blocked_commands = ["rm -rf /", "mkfs"]
dangerous_patterns = ["terraform destroy", "kubectl delete namespace"]

# ── 5. Execution Sandbox ─────────────────────────────────────────────────────
[sandbox]
type = "none" # "none" | "local" | "docker" | "k8s"
image = "ghcr.io/talkops/talkops-sandbox:latest"
memory_limit = "2g"
cpu_limit = 2.0
network_enabled = true
# setup_script = ".talkops/sandbox-init.sh"

# ── 6. Programmatic Tool Call (PTC) Interpreter ──────────────────────────────
[interpreter]
timeout_seconds = 30
memory_limit_mb = 64
max_ptc_calls = 50
max_result_chars = 50000
ptc = "safe" # "safe" | "all" | comma-separated tool list
ptc_acknowledge_unsafe = false

# ── 7. Inbound Webhooks & Outbound RCA Write-Back Sinks ──────────────────────
[webhooks]
host = "0.0.0.0"
port = 2024
dedupe_ttl_seconds = 300
max_concurrent_runs = 5
sns_auto_confirm = true
secret = "env:TALKOPS_WEBHOOK_SECRET"
pagerduty_secret = "env:TALKOPS_WEBHOOK_PAGERDUTY_SECRET"
github_secret = "env:TALKOPS_WEBHOOK_GITHUB_SECRET"
gitlab_token = "env:TALKOPS_WEBHOOK_GITLAB_TOKEN"
jenkins_token = "env:TALKOPS_WEBHOOK_JENKINS_TOKEN"
slack_url = "env:TALKOPS_WEBHOOK_SLACK_URL"
pagerduty_api_key = "env:TALKOPS_WEBHOOK_PAGERDUTY_API_KEY"
pagerduty_from_email = "talkops-bot@company.com"
github_token = "env:TALKOPS_WEBHOOK_GITHUB_TOKEN"
callback_url = "https://events.internal.company.com/talkops/rca"

# ── 8. Terminal UI & Display ─────────────────────────────────────────────────
[ui]
theme = "dark"
show_timestamps = true
auto_scroll = true
show_turn_duration = true
notifications_enabled = true
verbose_output = false
auto_compact = false

Section-by-section reference​

[cloud], [aws], [azure], [gcp], and [k8s]​

Configures the active multi-cloud and Kubernetes context injected into subagents (aws-agent, azure-agent, gcp-agent, k8s-agent, helm-agent) and displayed in the TUI status bar.

Canonical KeyTOML PathEnv VarDefaultDescription
cloud.default_provider[cloud].default_providerTALKOPS_CLOUD_PROVIDER"aws"Primary cloud provider (aws, azure, gcp, multi).
aws.profile[aws].profileAWS_PROFILENoneAWS CLI named profile.
aws.region[aws].regionAWS_REGION"us-east-1"Default AWS region.
aws.endpoint_url[aws].endpoint_urlAWS_ENDPOINT_URLNoneCustom endpoint URL (e.g., LocalStack).
azure.subscription_id[azure].subscription_idAZURE_SUBSCRIPTION_IDNoneDefault Azure Subscription ID.
azure.tenant_id[azure].tenant_idAZURE_TENANT_IDNoneAzure Active Directory / Entra Tenant ID.
azure.resource_group[azure].resource_groupAZURE_RESOURCE_GROUPNoneDefault Azure Resource Group.
azure.location[azure].locationAZURE_LOCATIONNoneDefault Azure region (e.g., eastus).
gcp.project_id[gcp].project_idGCP_PROJECT_IDNoneGoogle Cloud Project ID.
gcp.region[gcp].regionGCP_REGIONNoneDefault GCP region (e.g., us-central1).
gcp.zone[gcp].zoneGCP_ZONENoneDefault GCP compute zone.
gcp.credentials_file[gcp].credentials_fileGOOGLE_APPLICATION_CREDENTIALSNonePath to GCP Service Account JSON key.
k8s.kubeconfig[k8s].kubeconfigKUBECONFIG"~/.kube/config"Path to kubeconfig file.
k8s.context[k8s].contextKUBE_CONTEXTActive contextTarget Kubernetes context name.
k8s.namespace[k8s].namespaceKUBE_NAMESPACE"default"Default Kubernetes namespace.
k8s.helm_binary[k8s].helm_binaryHELM_BINARY"helm"Helm CLI binary name or path.

[devops]​

Configures binaries and API endpoints for Infrastructure as Code, GitOps, CI/CD, observability, and ITSM integrations.

Canonical KeyTOML PathEnv VarDefaultDescription
devops.terraform_binary[devops].terraform_binaryTERRAFORM_BINARY"terraform"Terraform or OpenTofu (tofu) binary.
devops.terragrunt_binary[devops].terragrunt_binaryTERRAGRUNT_BINARY"terragrunt"Terragrunt binary name or path.
devops.ansible_binary[devops].ansible_binaryANSIBLE_BINARY"ansible-playbook"Ansible playbook binary.
devops.docker_host[devops].docker_hostDOCKER_HOSTNoneDocker daemon socket or TCP host.
devops.github_host[devops].github_hostGITHUB_HOST"github.com"GitHub or GitHub Enterprise hostname.
devops.gitlab_url[devops].gitlab_urlGITLAB_URL"https://gitlab.com"GitLab instance base URL.
devops.argocd_server[devops].argocd_serverARGOCD_SERVERNoneArgoCD API server address.
devops.prometheus_url[devops].prometheus_urlPROMETHEUS_URLNonePrometheus HTTP API base URL.
devops.grafana_url[devops].grafana_urlGRAFANA_URLNoneGrafana base URL.
devops.loki_url[devops].loki_urlLOKI_URLNoneGrafana Loki log aggregation URL.
devops.datadog_site[devops].datadog_siteDD_SITE"datadoghq.com"Datadog regional site domain.
devops.pagerduty_url[devops].pagerduty_urlPAGERDUTY_URL"https://api.pagerduty.com"PagerDuty REST API base URL.
devops.jira_url[devops].jira_urlJIRA_URLNoneAtlassian Jira base URL.
devops.vault_addr[devops].vault_addrVAULT_ADDRNoneHashiCorp Vault server URL.
devops.jenkins_url[devops].jenkins_urlJENKINS_URLNoneJenkins CI server base URL.
devops.servicenow_url[devops].servicenow_urlSERVICENOW_URLNoneServiceNow instance base URL.
devops.sonarqube_url[devops].sonarqube_urlSONARQUBE_URLNoneSonarQube server base URL.

[models] and [security]​

Configures LLM selection, the 3-tier Jev Smart Mode pool, and System One safety guardrails.

Canonical KeyTOML PathEnv VarDefaultDescription
model.default[models].defaultTALKOPS_MODELAuto-detectedDefault baseline model (provider:model).
model.pool[models].poolTALKOPS_MODEL_POOLAuto 3-tier3-tier model list [fast, standard, powerful] used by Smart Mode <70ms routing.
model.reasoning_effort[models].reasoning_effortTALKOPS_REASONING_EFFORT"medium"Default thinking budget (off, low, medium, high, xhigh, max).
security.approval_mode[security].approval_modeTALKOPS_APPROVAL_MODE"manual"Active approval mode (manual, smart, auto, yolo).
security.environment[security].environmentTALKOPS_ENVIRONMENT"development"Target environment (development, staging, production). Production forces fail-closed approval on mutating actions.
security.shell_allow_list[security].shell_allow_listTALKOPS_SHELL_ALLOW_LIST[]Explicitly permitted shell command prefixes.

[webhooks]​

Configures the talkops serve / talkops webhooks listener, inbound verification secrets, alert storm deduplication, and outbound RCA write-back sinks.

Canonical KeyTOML PathEnv VarDefaultDescription
webhooks.host[webhooks].hostTALKOPS_WEBHOOK_HOST"0.0.0.0"Default bind host for talkops serve.
webhooks.port[webhooks].portTALKOPS_WEBHOOK_PORT2024Default bind port for talkops serve.
webhooks.secret[webhooks].secretTALKOPS_WEBHOOK_SECRETNoneFallback shared secret / bearer token for inbound webhooks.
webhooks.pagerduty_secret[webhooks].pagerduty_secretTALKOPS_WEBHOOK_PAGERDUTY_SECRETNonePagerDuty v3 HMAC-SHA256 signing secret.
webhooks.github_secret[webhooks].github_secretTALKOPS_WEBHOOK_GITHUB_SECRETNoneGitHub X-Hub-Signature-256 HMAC secret.
webhooks.gitlab_token[webhooks].gitlab_tokenTALKOPS_WEBHOOK_GITLAB_TOKENNoneGitLab X-Gitlab-Token verification secret.
webhooks.jenkins_token[webhooks].jenkins_tokenTALKOPS_WEBHOOK_JENKINS_TOKENNoneJenkins webhook bearer/header token.
webhooks.dedupe_ttl_seconds[webhooks].dedupe_ttl_secondsTALKOPS_WEBHOOK_DEDUPE_TTL_SECONDS300Alert storm deduplication window in seconds.
webhooks.max_concurrent_runs[webhooks].max_concurrent_runsTALKOPS_WEBHOOK_MAX_CONCURRENT_RUNS5Max simultaneous webhook-triggered LangGraph runs.
webhooks.sns_auto_confirm[webhooks].sns_auto_confirmTALKOPS_WEBHOOK_SNS_AUTO_CONFIRMtrueAutomatically confirm AWS SNS SubscriptionConfirmation requests.
webhooks.slack_url[webhooks].slack_urlTALKOPS_WEBHOOK_SLACK_URLNoneSlack Incoming Webhook URL for RCA write-backs.
webhooks.pagerduty_api_key[webhooks].pagerduty_api_keyTALKOPS_WEBHOOK_PAGERDUTY_API_KEYNonePagerDuty REST API token for posting incident RCA notes.
webhooks.pagerduty_from_email[webhooks].pagerduty_from_emailTALKOPS_WEBHOOK_PAGERDUTY_FROM_EMAILNonePagerDuty From email header required when posting incident notes.
webhooks.github_token[webhooks].github_tokenTALKOPS_WEBHOOK_GITHUB_TOKENNoneGitHub token for posting RCA comments on PRs and commits.
webhooks.callback_url[webhooks].callback_urlTALKOPS_WEBHOOK_CALLBACK_URLNoneGeneric outbound HTTP callback URL for webhook RCA results.

Next steps​