Skip to main content
ChatCLI is extensively configurable through environment variables. Create a .env file in the project root or in your HOME directory.

Priority Order

1

Command-line flags

E.g.: --provider, --model (highest priority)
2

System Environment Variables

export LLM_PROVIDER=OPENAI
3

Variables in the .env file

LLM_PROVIDER=OPENAI
4

Default Values

ChatCLI internal defaults (lowest priority)

General Configuration

VariableDescriptionDefault
CHATCLI_ENVLogging mode: dev (colored console + file), prod (file-only JSON). Backward-compatible with legacy ENV.prod
LLM_PROVIDERSets the default AI provider to use. Valid values: OPENAI, OPENAI_ASSISTANT, CLAUDEAI, BEDROCK, GOOGLEAI, XAI, ZAI, MINIMAX, MOONSHOT, OPENROUTER, STACKSPOT, OLLAMA, COPILOT, GITHUB_MODELS."OPENAI"
CHATCLI_LANGSets the interface language. Values: pt-BR, en-US. If not set, it will attempt to detect the system language.en-US
LOG_LEVELLog level. Options: debug, info, warn, error."info"
LOG_FILEPath to the log file. Default: $HOME/.chatcli/app.log"$HOME/.chatcli/app.log"
LOG_MAX_SIZEMaximum log file size before rotation. Accepts 100MB, 50KB, etc."100MB"
HISTORY_MAX_SIZEMaximum history file (.chatcli_history) size before rotation."100MB"
HISTORY_FILECustom path for the history file (supports ~; by default it creates the history where chatcli was executed).".chatcli_history"
CHATCLI_DOTENVCustom path for your .env file.".env"
CHATCLI_IGNOREPath to ignore file (e.g., .chatignore). When set, it takes priority over project/global ignore.""
CHATCLI_CODER_UITimeline style for /coder and /agent modes (cross-mode since v1.119): full · compact · minimal. See UI Styles."full"
CHATCLI_CODER_BANNERDisplay the /coder quick cheat sheet when entering the session (true/false)."true"
CHATCLI_THEMEColor theme for the whole interface (chat, cards, markdown, spinners). 11 themes: dark, light + 9 community palettes. Switch at runtime via /config ui theme. See the Color Theme section."dark"

Color Theme

CHATCLI_THEME selects the color palette that re-skins the entire interface — chat, /coder and /agent cards, borders, markdown, code blocks, and spinners. Unlike CHATCLI_CODER_UI, the theme is process-global state, so a switch applies on the next render, with no restart. There are 11 themes: dark and light (ChatCLI’s calibrated variants) + nine community palettes — dracula, nord, tokyo-night, solarized-dark, solarized-light, gruvbox, catppuccin-mocha, monokai, one-dark. Real-color previews of each are in the Theme System.
/config ui                     # show the active theme + detected color profile
/config ui theme dark          # switch to the dark theme
/config ui theme dracula       # switch by name (any of the 11)
/config theme tokyo-night      # shorthand equivalent
Autocomplete: /config ui theme <TAB> (or /config theme <TAB>) offers all 11 themes.
The switch applies only to the current process. To persist it, add CHATCLI_THEME=light to your .env — the mutator prints this hint after every switch and never rewrites your .env on its own. In pipes, CI, or colorless terminals (NO_COLOR, dumb), output degrades to clean plain text. Full details in the Theme System.

UI Styles

CHATCLI_CODER_UI controls how /coder and /agent modes render tool calls, reasoning and results in the timeline. Before v1.119 it only affected /coder; from that version onward it applies to /agent too — anyone with CHATCLI_CODER_UI=compact already set will see /agent go compact as well.
ValueAppearanceWhen to use
full (default)Full bordered cards ╭── ICON TITLE ─────╮ … ╰─────╯. Each action is a visible block./agent supervised — plan-and-approve.
compactInline lines ↻ Read(main.go) / ✓ Read(main.go) 0.3s. Short messages, no cards./coder with long sessions (20+ tool calls).
minimalSmaller cards with truncated content. Middle ground.Mixed sessions in narrow terminals.

Switch the UI at runtime

Since v1.119 you can swap the style without restarting ChatCLI, right from the prompt:
/config agent ui              # show current style + options
/config agent ui compact      # switch to compact (takes effect on the next /coder or /agent)
/config agent ui full         # back to the default
/config agent ui minimal      # middle ground
Full autocomplete — type /config agent <TAB> and then /config agent ui <TAB> to see full | compact | minimal.
The change applies only to the current process. To persist across sessions, add CHATCLI_CODER_UI=compact (or any other value) to your .env — the mutator prints that hint right after every switch.

Parallel visual changes (v1.119)

  • Card footers now end at the content width (╰────╯) instead of stretching to the terminal edge.
  • Errors in true red (, ❌ EXECUTION FAILED) instead of purple. If your terminal maps ANSI 31 to a non-red color via theme, adjust the palette.
  • Unified banner for /coder and /agent: same entry card with Objective/Task, Workspace and Policy.
  • /agent menu reorganized into 3 columns (Execution · Edit & Context · View) — was a 12-line vertical list before.
  • Prompt prefix groups all badges ([🌐 ⏵ ▶2⏳1 🅿1]) instead of listing [remote] [watch] [jobs:…] [🅿️ resume:…] separately.
  • Chat turn header: new envelope ╭─ model ─── 1.4s · 312↑ 1800↓ ─╮ … ╰─╯ in chat mode, with latency and estimated tokens.

OAuth Authentication

In addition to traditional API keys, ChatCLI supports OAuth authentication for OpenAI, Anthropic, and GitHub Copilot. With OAuth, you can use your existing plan (ChatGPT Plus, Codex, Claude Pro, GitHub Copilot) without generating API keys.
VariableDescriptionDefault
CHATCLI_AUTH_DIRDirectory where OAuth credentials are stored.~/.chatcli/
CHATCLI_OPENAI_CLIENT_IDAllows overriding the OpenAI OAuth client ID.(internal)
CHATCLI_COPILOT_CLIENT_IDAllows overriding the GitHub Copilot OAuth client ID.(internal)
Credentials are stored with AES-256-GCM encryption in ~/.chatcli/auth-profiles.json. The encryption key is automatically generated and saved in ~/.chatcli/.auth-key (permission 0600).
Use /auth login openai-codex, /auth login anthropic, or /auth login github-copilot in interactive mode to start the OAuth flow. See the full OAuth documentation for more details.

Provider Configuration

OpenAI

VariableDescriptionRequired?
OPENAI_API_KEYYour secret OpenAI API key. Alternative: use /auth login openai-codex for OAuth.Yes*
OPENAI_MODELThe model to use. E.g.: gpt-5.4, gpt-4o, gpt-4o-mini.No
OPENAI_ASSISTANT_MODELThe model to use specifically for the Assistants API.No
OPENAI_USE_RESPONSESSet to true to use the v1/responses API instead of v1/chat/completions.No
OPENAI_MAX_TOKENSSets the maximum tokens to use in the session (depends on model)No

Anthropic (Claude)

VariableDescriptionRequired?
ANTHROPIC_API_KEYYour secret Anthropic API key. Alternative: use /auth login anthropic for OAuth.Yes*
ANTHROPIC_MODELThe model to use. E.g.: claude-opus-4-8, claude-opus-4-7, claude-sonnet-4-6.No
ANTHROPIC_API_VERSIONThe Anthropic API version to use in headers.No
ANTHROPIC_MAX_TOKENSSets the maximum tokens to use in the session (depends on model)No
ANTHROPIC_SPEEDSet to fast to opt in to Opus 4.8 fast mode (research preview, premium pricing).No

Google (Gemini)

VariableDescriptionRequired?
GOOGLEAI_API_KEYYour Google AI Studio API key.Yes
GOOGLEAI_MODELThe model to use. E.g.: gemini-2.5-pro, gemini-2.5-flash.No
GOOGLEAI_MAX_TOKENSSets the maximum tokens to use in the session (depends on model)No

xAI (Grok)

VariableDescriptionRequired?
XAI_API_KEYYour secret xAI API key.Yes
XAI_MODELThe model to use. E.g.: grok-4-1, grok-4-fast, grok-3.No
XAI_MAX_TOKENSSets the maximum tokens to use in the session (depends on model)No

Ollama (Local)

VariableDescriptionRequired?
OLLAMA_ENABLEDSet to true to enable the Ollama provider.Yes
OLLAMA_BASE_URLBase URL of your local Ollama server.No
OLLAMA_MODELThe name of the local model to use (e.g., llama3, codellama).No
OLLAMA_FILTER_THINKINGFilters intermediate reasoning in responses (e.g., for Qwen3, llama3 default true…).No
OLLAMA_MAX_TOKENSSets the maximum tokens for the Ollama provider.No

StackSpot

VariableDescriptionRequired?
CLIENT_IDStackSpot client ID credential.Yes
CLIENT_KEYStackSpot client key credential.Yes
STACKSPOT_REALMYour organization’s realm (tenant) on StackSpot.Yes
STACKSPOT_AGENT_IDThe ID of the specific agent to use.Yes

ZAI (Zhipu AI)

VariableDescriptionRequired?
ZAI_API_KEYYour ZAI (Zhipu AI) API key. Accepts plain Bearer token or id.secret format for automatic JWT.Yes
ZAI_MODELThe model to use. E.g.: glm-5, glm-4.7, glm-4.5, codegeex-4.No
ZAI_MAX_TOKENSSets the maximum tokens to use in the session (depends on model)No
Automatic JWT rotation: Keys in id.secret format automatically enable JWT token generation (HMAC-SHA256) with custom header {"alg": "HS256", "sign_type": "SIGN"}. Tokens are cached for 30 minutes and regenerated with a 5-minute safety margin. Keys without ”.” continue to work as traditional Bearer tokens. Fully automatic, no additional configuration needed.

MiniMax

VariableDescriptionRequired?
MINIMAX_API_KEYYour MiniMax API key.Yes
MINIMAX_MODELThe model to use. E.g.: MiniMax-M2.7, MiniMax-M2.5 (case-sensitive).No
MINIMAX_MAX_TOKENSSets the maximum tokens to use in the session (depends on model)No
MINIMAX_API_COMPATCompatibility mode: anthropic to use MiniMax’s Anthropic Messages endpoint.No
Anthropic-compatible endpoint: Set MINIMAX_API_COMPAT=anthropic to use https://api.minimax.io/anthropic/v1/messages with Anthropic Messages format (system as top-level field, content blocks). The anthropic-version: 2023-06-01 header is added automatically. Same Bearer token auth is used. Native tool calling is disabled in this mode (falls back to XML). Also available via Helm (secrets.minimaxApiCompat: "anthropic") or Docker (MINIMAX_API_COMPAT=anthropic).
Alternative approach (recommended by MiniMax): Per the official MiniMax documentation, you can use MiniMax models directly through the CLAUDEAI provider without needing MINIMAX_API_COMPAT. Simply configure the Anthropic base URL to point to MiniMax:
LLM_PROVIDER=CLAUDEAI
ANTHROPIC_API_KEY=your-minimax-key
ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic
ANTHROPIC_MODEL=MiniMax-M2.7
This works because MiniMax’s api.minimax.io/anthropic endpoint is 100% compatible with the Anthropic API. Use this approach to leverage Anthropic’s native tool calling with MiniMax models.

Moonshot (Kimi)

VariableDescriptionRequired?
MOONSHOT_API_KEYBearer token API key from Moonshot AI.Yes
MOONSHOT_MODELModel to use (kimi-k2.6, kimi-k2.5, kimi-latest, kimi-thinking-preview, moonshot-v1-128k, moonshot-v1-32k, moonshot-v1-8k).No
MOONSHOT_MAX_TOKENSSets the maximum response tokens.No
MOONSHOT_THINKINGReasoning mode: enabled, disabled, auto. Models without the thinking capability ignore the flag.No
MOONSHOT_API_URLCustom endpoint. Default: https://api.moonshot.ai/v1/chat/completions.No
Thinking vs Instant mode: Default auto lets the model choose; enabled forces explicit reasoning (higher latency, more tokens); disabled forces direct response. Useful for switching between tasks that benefit from chain-of-thought and fast responses (extraction, classification). The flag is injected via extra_body.thinking.type in the OpenAI-compatible payload.

OpenRouter

VariableDescriptionRequired?
OPENROUTER_API_KEYYour OpenRouter API key from openrouter.ai.Yes
OPENROUTER_API_URLCustom API endpoint URL.No
OPENROUTER_MAX_TOKENSSets the maximum tokens for the response.No
OPENROUTER_FALLBACK_MODELSComma-separated fallback models for server-side routing (e.g., anthropic/claude-sonnet-4,google/gemini-2.5-flash).No
OPENROUTER_PROVIDER_ORDERComma-separated preferred provider ordering (e.g., Anthropic,Google).No
OPENROUTER_TRANSFORMSMessage transforms (e.g., middle-out for context overflow).No
OPENROUTER_HTTP_REFERERAttribution HTTP Referer header.No
OPENROUTER_APP_TITLEAttribution app title.No
OPENROUTER_TOOLSJSON array of tool definitions to inject.No
OpenRouter is a multi-provider API gateway that provides access to 200+ models from all major providers through a single API key. Models use the provider/model-name format (e.g., openai/gpt-4o, anthropic/claude-sonnet-4). The default model is openai/gpt-4o.
LLM_PROVIDER=OPENROUTER
OPENROUTER_API_KEY="sk-or-xxxxxxxxxxxxxxxxxxxxxxxx"

# (Optional) Model — default: openai/gpt-4o
# MODEL="anthropic/claude-sonnet-4"

# (Optional) Server-side fallback routing
# OPENROUTER_FALLBACK_MODELS="anthropic/claude-sonnet-4,google/gemini-2.5-flash"

GitHub Copilot

VariableDescriptionRequired?
GITHUB_COPILOT_TOKENGitHub Copilot OAuth token. Alternative: use /auth login github-copilot for Device Flow.Yes*
COPILOT_MODELThe model to use. E.g.: gpt-4o, claude-sonnet-4, gemini-2.0-flash.No
COPILOT_MAX_TOKENSSets the maximum tokens for the response.No
COPILOT_API_BASE_URLCopilot API base URL (for enterprise environments).No

AWS Bedrock

VariableDescriptionRequired?
AWS_PROFILEAWS profile in ~/.aws/credentials or ~/.aws/config (supports SSO, assume-role, credential_process). Can be set in .env.Yes*
AWS_ACCESS_KEY_IDStatic IAM access key. Alternative to AWS_PROFILE.Yes*
AWS_SECRET_ACCESS_KEYIAM secret key (required with AWS_ACCESS_KEY_ID).Yes*
AWS_SESSION_TOKENTemporary session token (STS).No
BEDROCK_REGIONAWS region for Bedrock (takes priority over AWS_REGION).No
AWS_REGIONAWS region (fallback if BEDROCK_REGION not set).No
BEDROCK_PROVIDERManual schema override: anthropic or openai.No
BEDROCK_MAX_TOKENSOutput token limit.No
BEDROCK_TEMPERATURETemperature for OpenAI models on Bedrock.No
CHATCLI_BEDROCK_CA_BUNDLEPEM bundle with corporate CA for TLS. Takes precedence over AWS_CA_BUNDLE and the global CHATCLI_CA_BUNDLE.No
CHATCLI_BEDROCK_INSECURE_SKIP_VERIFYtrue disables TLS verification (insecure, troubleshooting only). Takes precedence over the global CHATCLI_TLS_INSECURE_SKIP_VERIFY.No
AWS_EC2_METADATA_DISABLEDtrue disables IMDS (prevents timeout on 169.254.169.254 outside EC2).No
CHATCLI_BEDROCK_ENABLE_IMDStrue forces IMDS probe on non-EC2 machines.No
Bedrock does not use an API key — authentication uses the AWS SDK credential chain: env vars → ~/.aws/credentials~/.aws/config (SSO, assume-role) → IAM role (EC2/ECS/EKS).* At least one credential source is required: AWS_PROFILE, AWS_ACCESS_KEY_ID, SSO profile in ~/.aws/config, credentials in ~/.aws/credentials, or IAM role. For full details (SSO, proxy, inference profiles), see the AWS Bedrock documentation.
* For OpenAI, Anthropic, and GitHub Copilot, the API key is required only if you are not using OAuth authentication (/auth login). Both methods can coexist.

Agent Mode Configuration

VariableDescription
CHATCLI_AGENT_ALLOW_SUDOSet to "true" to allow the agent to suggest and execute commands with sudo. Use with extreme caution.
CHATCLI_AGENT_DENYLISTList of regex patterns (separated by ;) to block additional commands in agent mode.
CHATCLI_AGENT_CMD_TIMEOUTTimeout for a single command execution by the agent (default: 10m, maximum: 1h).
CHATCLI_AGENT_PLUGIN_MAX_TURNSMaximum agent turn limit in /agent//coder mode (default: 50, maximum: 200).
CHATCLI_AGENT_PLUGIN_TIMEOUTTotal agent plugin timeout (default: 15m).

Multi-Agent (Parallel Orchestration)

VariableDescriptionDefault
CHATCLI_AGENT_PARALLEL_MODEEnables multi-agent mode with parallel orchestration. The orchestrator LLM dispatches specialist agents in parallel.false
CHATCLI_AGENT_MAX_WORKERSMaximum number of workers (goroutines) executing agents simultaneously.4
CHATCLI_AGENT_WORKER_MAX_TURNSMaximum turns in each worker agent’s mini ReAct loop.10
CHATCLI_AGENT_WORKER_TIMEOUTTimeout per individual worker agent. Accepts Go durations (e.g., 30s, 2m, 10m).5m
CHATCLI_AGENT_PARALLEL_TOOLSEnables parallel execution of concurrency-safe tools within a single agent (read-only ops like @read, @search, @websearch). Distinct from CHATCLI_AGENT_PARALLEL_MODE (multi-agent). Off by default while in rollout.false
CHATCLI_AGENT_MAX_TOOL_CONCURRENCYFan-out cap for the parallel tool batch within an agent.10
CHATCLI_AGENT_INLINE_CODE_STRICTFor python -c / node -e / perl -e / ruby -e / php -r / lua -e invocations, treat inline source as dangerous unless proven safe (conservative mode). Default lets safe read-only one-liners through and only blocks patterns with os.system, subprocess, socket, eval, file writes, network.false
For complete details on the multi-agent system, see the Multi-Agent Orchestration documentation.

Server Mode Configuration (chatcli server)

VariableDescriptionDefault
CHATCLI_SERVER_PORTgRPC server port.50051
CHATCLI_SERVER_TOKENServer authentication token. Empty = no authentication.""
CHATCLI_SERVER_TLS_CERTPath to the server TLS certificate.""
CHATCLI_SERVER_TLS_KEYPath to the server TLS key.""
CHATCLI_GRPC_REFLECTIONEnables gRPC reflection for debugging. Keep disabled in production.false

Provider Fallback

VariableDescriptionDefault
CHATCLI_FALLBACK_PROVIDERSComma-separated list of providers for automatic failover. E.g.: OPENAI,CLAUDEAI,GOOGLEAI.""
CHATCLI_FALLBACK_MODEL_<PROVIDER>Specific model per provider in the chain. E.g.: CHATCLI_FALLBACK_MODEL_CLAUDEAI=claude-sonnet-4-20250514.(default model)
CHATCLI_FALLBACK_MAX_RETRIESRetries per provider before advancing to the next in the chain.2
CHATCLI_FALLBACK_COOLDOWN_BASEBase cooldown duration after a provider failure.30s
CHATCLI_FALLBACK_COOLDOWN_MAXMaximum cooldown duration (exponential backoff).5m
For complete details, see the Provider Fallback documentation.

MCP (Model Context Protocol)

VariableDescriptionDefault
CHATCLI_MCP_ENABLEDEnables the MCP server manager.false
CHATCLI_MCP_CONFIGPath to the MCP server configuration JSON file.~/.chatcli/mcp_servers.json

Files under ~/.chatcli/mcp/

Beyond mcp_servers.json, the MCP subsystem manages a dedicated directory for durable state:
FilePurpose
~/.chatcli/mcp/channels.jsonlDurable ring of push notifications (append-only, rotates at 10 MiB to .1). Replayed on boot — alerts received while ChatCLI was closed remain visible
~/.chatcli/mcp/channels.jsonl.1Single rotated historical file (rotation overwrites the previous)
~/.chatcli/mcp/triggers.jsonOpt-in — trigger engine rules (notify / confirm / auto) that decide how ChatCLI reacts to channel events. See MCP Channels
For complete details, see the MCP documentation and MCP Channels.

VariableDescriptionDefault
CHATCLI_WEBSEARCH_PROVIDERPreferred backend for @websearch / /websearch: searxng, duckduckgo, brave, mojeek, or auto.auto
SEARXNG_URLRoot URL of the self-hosted SearxNG instance (e.g. https://searx.internal.corp).
Backends are keyless (no third-party API key). DuckDuckGo is the zero-config default; self-hosted SearxNG is preferred in corporate environments. See Web Tools for the fallback chain and how to enable SearxNG’s JSON API.

Bootstrap and Memory

VariableDescriptionDefault
CHATCLI_BOOTSTRAP_ENABLEDEnables loading bootstrap files (SOUL.md, USER.md, etc.) into the system prompt.true
CHATCLI_BOOTSTRAP_DIRDirectory containing bootstrap files.~/.chatcli/bootstrap/
CHATCLI_MEMORY_ENABLEDEnables the structured persistent memory system.true
CHATCLI_MEMORY_MODEMemory injection mode in agent/coder: index (pull, digest + @memory recall), full (full push per turn) or off. Chat treats index as full.index
CHATCLI_MEMORY_MAX_SIZEMaximum size of rendered MEMORY.md (bytes).32768
CHATCLI_MEMORY_RETENTION_DAYSDays to retain daily notes before automatic cleanup.30
CHATCLI_MEMORY_MAX_FACTSMaximum number of facts in memory index.500
CHATCLI_MEMORY_RETRIEVAL_BUDGETMaximum memory characters injected into system prompt.4000
CHATCLI_SAFETY_ENABLEDEnables configurable safety rules in the agent shell.false
For complete details, see the Bootstrap and Memory documentation.

Skill Registry (Multi-Registry)

VariableDescriptionDefault
CHATCLI_REGISTRY_URLSAdditional registry URLs separated by comma. Each URL is added as an enabled custom registry.""
CHATCLI_REGISTRY_DISABLERegistry names to disable, separated by comma. E.g.: clawhub,chatcli.""
CHATCLI_SKILL_INSTALL_DIRDirectory where skills installed via registry are saved.~/.chatcli/skills
The registry system is configured via the ~/.chatcli/registries.yaml file (automatically created with default registries: chatcli and clawhub). The variables above serve as overrides.
For complete details, see the Skill Registry documentation.

Security and Control

VariableDescriptionDefault
CHATCLI_DISABLE_VERSION_CHECKDisables automatic version check on startup. Useful for air-gapped environments or CI/CD.false
CHATCLI_GRPC_REFLECTIONEnables gRPC server reflection (exposes service schema).false

Agent Mode Security

VariableDescriptionDefault
CHATCLI_AGENT_SECURITY_MODESecurity mode: strict (allowlist only) or permissive (allowlist + legacy denylist as fallback).strict
CHATCLI_AGENT_ALLOWLISTAdditional commands for the allowlist, separated by ;. E.g.: terraform;ansible;packer.""
CHATCLI_AGENT_WORKSPACE_STRICTRestricts file reads to the current workspace. Blocks sensitive paths (~/.ssh, ~/.aws, etc.).false
CHATCLI_AGENT_ALLOW_KUBECONFIGAllows kubeconfig access even with WORKSPACE_STRICT enabled.false
CHATCLI_AGENT_EXTRA_READ_PATHSAdditional allowed read paths, separated by ;.""
CHATCLI_AGENT_SOURCE_SHELL_CONFIGEnables sourcing shell configuration files (~/.bashrc, ~/.zshrc). Now opt-in.false
CHATCLI_MAX_COMMAND_OUTPUTCharacter limit for command output before truncation.50000

Authentication and Tokens

VariableDescriptionDefault
CHATCLI_MAX_TOKEN_LIFETIMEMaximum lifetime for OAuth/JWT tokens. Accepts Go durations (e.g., 24h, 168h).720h (30 days)
CHATCLI_JWT_SECRETSecret for signing server JWT tokens.""
CHATCLI_SESSION_ENCRYPTION_KEYKey for session encryption at rest (AES-256).""

Network and Server Security

VariableDescriptionDefault
CHATCLI_RATE_LIMIT_RPSRequests per second limit (0 = disabled).0
CHATCLI_BIND_ADDRESSServer bind address. Defaults to 127.0.0.1 (local); in Kubernetes, auto-detects 0.0.0.0 via KUBERNETES_SERVICE_HOST. Explicit value always takes precedence.127.0.0.1 / 0.0.0.0 (K8s)
CHATCLI_AUDIT_LOGEnables security audit logging with details of each operation.false

Plugin Security

VariableDescriptionDefault
CHATCLI_PLUGIN_VERIFY_SIGNATURESRequires valid Ed25519 signature to load plugins.false
CHATCLI_PLUGIN_TRUSTED_KEYSTrusted Ed25519 public keys for plugin verification, separated by ;.""

K8s Operator Security

VariableDescriptionDefault
CHATCLI_OPERATOR_FAIL_CLOSEDFail-closed mode: blocks operations when the agent is unavailable.false
CHATCLI_OPERATOR_RESOURCE_ALLOWLISTAllowed K8s resources for the operator, separated by ;.""
CHATCLI_OPERATOR_LOG_SCRUBBINGRemoves sensitive data (tokens, passwords) from operator logs.true
For complete details on security, see the Security and Hardening documentation.

Remote Client Configuration (chatcli connect)

VariableDescriptionDefault
CHATCLI_REMOTE_ADDRRemote server address (host:port).""
CHATCLI_REMOTE_TOKENAuthentication token to connect to the server.""
CHATCLI_CLIENT_API_KEYYour own API key/OAuth token, sent to the server.""

K8s Watcher Configuration (chatcli watch / chatcli server --watch-*)

VariableDescriptionDefault
CHATCLI_WATCH_DEPLOYMENTName of the Kubernetes deployment to monitor.""
CHATCLI_WATCH_NAMESPACEDeployment namespace."default"
CHATCLI_WATCH_INTERVALInterval between data collections. Accepts Go durations (e.g., 10s, 1m)."30s"
CHATCLI_WATCH_WINDOWTime window of data kept in memory."2h"
CHATCLI_WATCH_MAX_LOG_LINESMaximum number of log lines collected per pod.100
CHATCLI_KUBECONFIGPath to kubeconfig (optional, uses default if not set).Auto-detected