# Deployment config lives in kloe.json (see kloe.example.json + kloe.schema.json). # Everything below is an ENV OVERRIDE of a kloe.json value — env wins over the # file. Any "$NAME" interpolations in kloe.json (e.g. provider apiKeys) also read # their values from here. # Path to the config file itself (default ./kloe.json) #KLOE_CONFIG=kloe.json # --- overrides of kloe.json fields --- # server.port / server.dbPath #PORT=3000 #KLOE_DB=data/kloe.db # blobs.backend (fs|s3), blobs.path, blobs.s3.prefix #KLOE_BLOB_BACKEND=fs #KLOE_BLOBS=data/blobs #KLOE_S3_PREFIX=blobs/ # S3 credentials (Bun's S3Client reads these; used when blobs.backend=s3 and # they're not set explicitly in kloe.json). AWS_* are also accepted. #S3_ACCESS_KEY_ID= #S3_SECRET_ACCESS_KEY= #S3_ENDPOINT= #S3_BUCKET= #S3_REGION= # Model catalog source (charmbracelet's catwalk) → catwalk.{url,cachePath,seedPath}. # All optional: live fetch falls back to the disk cache, then vendor/catwalk.seed.json. #CATWALK_URL= #CATWALK_CACHE= #CATWALK_SEED= # Delay between echo-model chunks (ms). Only affects the built-in mock. #ECHO_DELAY_MS=5 # --- provider / tool secrets referenced by kloe.json "$NAME" interpolations --- #ANTHROPIC_API_KEY= #OPENROUTER_API_KEY= #HYPER_API_KEY= # Web-search tool (search.provider = "ceramic") #CERAMIC_API_KEY=