Configuration

Enkaidu will look for and load a configuration file for setting its behavior and interaction with Large Language Models (LLMs) and MCP servers. The config file is written in YAML and can be either enkaidu.yml or enkaidu.yaml (but not both.) Enkaidu looks for the config file as follows:

  1. If Enkaidu is launched with --config=FILENAME option, then it will attempt to load that file and fail if unable to do so.
  2. Then it will look for the config file in the current directory.
  3. Lastly it will look for the config in your home directory.

This means you can keep a general purpose config in your home directory and project-specific ones in your project folders.

Check out the article “How Enkaidu Config Works” for illustrations.

Enforced system configuration mode

Enkaidu supports a system configuration mode where it looks at a platform specific system location for enkaidu.yml before processing configuration via CLI flags or local folders.

  • On Windows, it looks for C:\Windows\System32\drivers\etc\enkaidu.yml
  • Otherwise, it looks for /etc/enkaidu.yml

If found, Enkaidu only uses this system configuration file and ignores any local / profile config files. Otherwise it loads configurations as described above.

WHY? This allows Enkaidu to be used on systems where, for security and compliance reasons, it is necessary to control how Enkaidu works for all users who might log onto the system.

Configuration sections

Each configuration section has its own page (linked below). Sections marked Profile Config can also be set in a profile configuration (​.enkaidu/config.yml) to override the values from the base configuration.

Section What it configures Profile Config
llms: LLM providers, models, and per-model settings —
session: Session behavior: model, streaming/quiet, history, system-tool allows Yes
auto_load: Tools, toolsets, servers, and prompts to load at start Yes
tool_settings: Per-tool settings for built-in tools Yes
cordon: Sandboxed execution of shell commands Yes
macros: Config-file shape for named macros (details: Macros) —
prompts: Config-file shape for custom prompts (details: Custom Prompts) —
system_prompts: Config-file shape for system prompts (details: System Prompts) —
mcp_servers: MCP server endpoints and authentication —
debug: Tracing and session recording —
console: Terminal output styling via a style sheet (experimental) —

System properties

The following system properties are available to the templates when defining custom prompts and system prompts.

Name Description
sys
   .os_arch OS architecture extracted from the LLVM target tuple
   .os_name OS name extracted from the LLVM target tuple