Skip to content

Build parameters

llms.txt lists every page for a coding agent.

The stacks read their settings as build parameters declared once in chant.config.ts (buildParams). Each parameter has an environment variable; chant takes a value from --param name=value, then a --params-file, then that variable, then the default. A variable that no parameter maps is ignored, so a misspelled name changes nothing. src/build-params.test.ts holds every parameter to its mapping, and scripts/lint-docs.mjs holds this page to chant.config.ts.

Empty in the Default column means unset: the stack uses its tier’s value, or leaves the feature off. Seams are explained in Provision, reference or omit.

VariableParameterTypeDefaultSets
LOOM_PROJECTprojectstringloomFirst segment of every name and stack name
LOOM_ENVenvstringdevEnvironment segment, and the chant environment
LOOM_INSTANCEinstancestringaWhich Loom this is; two values are two separate deployments
LOOM_TIERtierstring: light, production, production-halightThe tier
AWS_REGIONregionstringus-east-1Deploy region
AWS_ACCOUNT_IDaccountIdstringAccount id for ARNs and the bucket and Cognito domain name suffix
LOOM_OWNERownerstringplatformThe owner cost tag
VariableParameterTypeDefaultSets
LOOM_DB_MODEdbModestring: provision, reference-existing, omitprovisionThe database seam
LOOM_DB_ALLOWED_CIDRdbAllowedCidrstringCIDR allowed to reach Postgres; 10.0.0.0/8 when unset, as in Loom’s template
LOOM_DB_SOURCE_SGdbSourceSgbooleanfalseAllow the ECS task security group instead of a CIDR
LOOM_DB_NAMEdbNamestringDatabase name (also read by loom-backend)
LOOM_DB_USERNAMEdbUsernamestringMaster username (also read by loom-backend)
LOOM_DB_PASSWORDdbPasswordstringMaster password; set it from a secret store, never a file
LOOM_DB_INSTANCE_CLASSdbInstanceClassstringRDS instance class
LOOM_DB_ALLOCATED_STORAGEdbAllocatedStoragenumberStorage in GiB
LOOM_DB_ENDPOINTdbReferenceEndpointstringWith reference-existing: your Postgres endpoint
LOOM_DB_PORTdbReferencePortnumberWith reference-existing: its port
LOOM_DB_CREDENTIALS_SECRET_ARNdbReferenceCredentialsSecretArnstringWith reference-existing: the secret holding its credentials
LOOM_DB_CONNECTION_SECRET_ARNdbReferenceConnectionSecretArnstringWith reference-existing: an optional secret holding the connection URL
VariableParameterTypeDefaultSets
LOOM_DOMAIN_NAMEdomainNamestringCustom domain; required on the production tiers
LOOM_HOSTED_ZONE_IDhostedZoneIdstringReference an existing Route53 zone
LOOM_ROUTE53route53Modestring: omit, provisionDrop or create the zone
LOOM_CERTIFICATE_ARNcertificateArnstringReference an existing ACM certificate
LOOM_ACMacmModestring: omit, provisionDrop or create the certificate
LOOM_KMS_KEY_ARNkmsKeyArnstringReference an existing KMS key for the ECR repositories
LOOM_KMSkmsModestring: omit, provisionDrop or create the key
LOOM_FRONTEND_REPOSITORY_URIfrontendRepositoryUristringReference an existing frontend repository (with the other three)
LOOM_FRONTEND_REPOSITORY_ARNfrontendRepositoryArnstring
LOOM_BACKEND_REPOSITORY_URIbackendRepositoryUristring
LOOM_BACKEND_REPOSITORY_ARNbackendRepositoryArnstring
LOOM_ECRecrModestring: omit, provisionDrop or create the repositories
LOOM_AGENT_ROLE_ARNagentRoleArnstringReference an existing shared agent execution role
LOOM_AGENT_ROLEagentRoleModestring: omit, provisionDrop or create it
LOOM_ALB_INGRESS_CIDRalbIngressCidrstringCIDR allowed to reach the ALB; 0.0.0.0/0 when unset
LOOM_LOGGING_BUCKET_NAMEloggingBucketNamestringAn existing bucket for ALB, NLB and artifact bucket access logs
LOOM_PRIVATELINKprivateLinkModestring: provision, omitPrivateLink; on by default on the production tiers

The network itself (LOOM_VPC_ID, LOOM_PUBLIC_SUBNET_IDS, LOOM_PRIVATE_SUBNET_IDS) is read when shared-foundation builds, alongside these (Bring your own network and IAM).

VariableParameterTypeDefaultSets
LOOM_COGNITO_MODEcognitoModestring: provision, reference-existing, omitprovisionThe identity seam
LOOM_COGNITO_CALLBACK_URLScognitoCallbackUrlsstringHosted-UI callback URLs. Unset: https://<LOOM_DOMAIN_NAME> when set, else https://localhost
LOOM_COGNITO_RESOURCE_SERVER_IDcognitoResourceServerIdstringResource server identifier
LOOM_COGNITO_SCOPES_JSONcognitoScopesJsonstringScopes, as JSON
LOOM_COGNITO_UI_TIER_GROUPS_JSONcognitoUiTierGroupsJsonstringType groups (t-admin, t-user), as JSON
LOOM_COGNITO_RESOURCE_GROUPS_JSONcognitoResourceGroupsJsonstringResource groups (g-admins-*, g-users-*), as JSON. Default: g-admins-super only
LOOM_COGNITO_DEMO_SEED_USERS_JSONcognitoDemoSeedUsersJsonstringDemo users, as JSON; none by default
LOOM_COGNITO_ABAC_APPLICATIONcognitoAbacApplicationstringloom:application tag value
LOOM_COGNITO_ABAC_GROUPcognitoAbacGroupstringloom:group tag value
LOOM_COGNITO_ABAC_OWNERcognitoAbacOwnerstringloom:owner tag value
LOOM_COGNITO_MANAGED_LOGIN_BRANDINGcognitoManagedLoginBrandingbooleanManaged Login branding on the end-user client (production tiers)
LOOM_COGNITO_MFAcognitoMfaOFF, OPTIONAL, ONThe pool’s MFA. Unset: OFF on light, OPTIONAL on the production tiers. ON locks users out of the web app, which can’t answer an MFA challenge
LOOM_COGNITO_USER_POOL_IDcognitoUserPoolIdstringWith reference-existing: the pool
LOOM_COGNITO_USER_POOL_ARNcognitoUserPoolArnstringIts ARN; derived when unset
LOOM_COGNITO_DOMAINcognitoDomainstringIts hosted-UI domain
LOOM_COGNITO_M2M_CLIENT_IDcognitoM2mClientIdstringIts machine-to-machine client
LOOM_COGNITO_USER_CLIENT_IDcognitoUserClientIdstringIts end-user client; the frontend image is built with it, so without it the web app can’t sign anyone in
LOOM_COGNITO_ISSUERcognitoIssuerstringIts issuer; derived when unset
LOOM_COGNITO_DISCOVERY_URLcognitoDiscoveryUrlstringIts discovery URL; derived when unset
LOOM_COGNITO_TOKEN_URLcognitoTokenUrlstringIts token URL; derived when unset
VariableParameterTypeDefaultSets
LOOM_CPU_ARCHITECTUREcpuArchitecturestring: X86_64, ARM64Fargate CPU architecture; must match the built images (ARM64 on Apple Silicon)
LOOM_BACKEND_CPUbackendCpustringBackend task CPU units
LOOM_BACKEND_MEMORYbackendMemorystringBackend task memory
LOOM_BACKEND_DESIRED_COUNTbackendDesiredCountnumberBackend task floor
LOOM_BACKEND_MAX_COUNTbackendMaxCountnumberBackend autoscaling ceiling
LOOM_BACKEND_LOG_RETENTION_DAYSbackendLogRetentionDaysnumberBackend log retention
LOOM_BACKEND_EXECUTION_ROLE_ARNbackendExecutionRoleArnstringReference an existing backend execution role (with the task role)
LOOM_BACKEND_TASK_ROLE_ARNbackendTaskRoleArnstringReference an existing backend task role
LOOM_FRONTEND_CPUfrontendCpustringFrontend task CPU units
LOOM_FRONTEND_MEMORYfrontendMemorystringFrontend task memory
LOOM_FRONTEND_DESIRED_COUNTfrontendDesiredCountnumberFrontend task count
LOOM_FRONTEND_LOG_RETENTION_DAYSfrontendLogRetentionDaysnumberFrontend log retention
LOOM_FRONTEND_EXECUTION_ROLE_ARNfrontendExecutionRoleArnstringReference an existing frontend execution role
LOOM_COGNITO_REGIONcognitoRegionstringRegion of the Cognito pool, when it differs from the deploy region
LOOM_ALLOWED_ORIGINSallowedOriginsstringCORS origins for the backend, comma-separated
LOOM_REGISTRY_IDregistryIdstringThe AgentCore Agent Registry Loom binds to
LOOM_USE_SYSTEM_TRUST_STOREuseSystemTrustStorebooleanVerify TLS against the OS trust store, for a TLS-inspecting proxy
LOOM_LITELLM_PROXY_BASE_URLlitellmProxyBaseUrlstringA LiteLLM proxy agents reach models through
LOOM_LITELLM_DISCOVERY_BASE_URLlitellmDiscoveryBaseUrlstringWhere the backend discovers the proxy’s models, when it differs
LOOM_LITELLM_PROXY_API_KEY_SECRET_ARNlitellmProxyApiKeySecretArnstringSecret holding the proxy’s key
LOOM_LITELLM_PROXY_API_KEY_SECRET_KMS_KEY_ARNlitellmProxyApiKeySecretKmsKeyArnstringKMS key of that secret, when customer-managed
VariableParameterTypeDefaultSets
LOOM_ASSISTANT_CODE_PREFIXassistantCodePrefixstringstrands_agent/agent.zipS3 key of the assistant’s code zip in the artifact bucket
LOOM_AGENTS_BEDROCK_MODEL_ARNSagentsBedrockModelArnsstringModels the assistant may invoke, comma-separated
LOOM_AGENTS_MEMORY_EVENT_EXPIRY_DAYSagentsMemoryEventExpiryDaysnumberAgentCore Memory event retention; 30 days on light, 90 on the production tiers when unset

Read by the loom-agent-role Op, one stack per agent (Create an execution role per agent).

VariableParameterTypeDefaultSets
LOOM_AGENT_ROLE_AGENTagentRoleAgentstringThe agent the role is for; its credential providers are scoped to loom-<agent>-*
LOOM_AGENT_ROLE_GROUPagentRoleGroupstringThe loom:group the role is registered under in Loom
LOOM_AGENT_ROLE_MEMORY_ARNagentRoleMemoryArnstringAdds the memory policy for this memory
LOOM_AGENT_ROLE_CODE_INTERPRETERagentRoleCodeInterpreterbooleanAdds the Code Interpreter policy
LOOM_AGENT_ROLE_BEDROCK_MODEL_ARNSagentRoleBedrockModelArnsstringModels it may invoke, comma-separated; this account’s inference profiles and every foundation model when unset

Read by the loom-tunnel-host Op. Each is resolved from the stacks when unset (Open a tunnel to the database).

VariableParameterTypeDefaultSets
LOOM_TUNNEL_VPC_IDtunnelVpcIdstringVPC for the host; shared-foundation’s when unset
LOOM_TUNNEL_SUBNET_IDStunnelSubnetIdsstringPrivate subnets for the host, comma-separated
LOOM_TUNNEL_DB_SG_IDtunnelDbSecurityGroupIdstringThe database security group to open to the host
LOOM_TUNNEL_DB_PORTtunnelDbPortnumberThe database port
LOOM_TUNNEL_INSTANCE_TYPEtunnelInstanceTypestringInstance type; t3.micro when unset, a Graviton type gets the arm64 image
LOOM_TUNNEL_SSM_ENDPOINTStunnelSsmEndpointsbooleanCreate the ssm, ssmmessages and ec2messages endpoints, for subnets with no NAT

These aren’t build parameters. The Ops and scripts read them when they run: LOOM_API_BASE_URL, LOOM_API_TOKEN, LOOM_SEED_PROFILE, LOOM_SEED_GROUP, LOOM_SEED_MODEL_ID, LOOM_DEMO_A2A_URL, LOOM_UPGRADE_SCRIPTS, LOOM_RESTORE_SNAPSHOT_ID, LOOM_RESTORE_TIME, LOOM_DR_REGION, LOOM_DR_KMS_KEY_ID, LOOM_BACKUP_BUCKET, LOOM_IMPORT_SQLITE, LOOM_IMPORT_SKIP_EXISTING, LOOM_MEMORY_QUERY, LOOM_MEMORY_ID, LOOM_MEMORY_ACTOR_ID, LOOM_MEMORY_NAMESPACE, LOOM_COGNITO_PASSWORD, LOOM_COGNITO_USERS, LOOM_TUNNEL_LOCAL_PORT and LOOM_LEDGER_PUSH. Each is described on the Ops page or the guide for its Op.