Where Is the Helix Config File?
Where Helix looks for config.toml and languages.toml on each OS, and the command that prints the live paths.
Last updated
Helix reads config.toml and languages.toml from its config directory: ~/.config/helix on Linux and macOS, %APPDATA%\helix on Windows. Neither file exists until you create it; defaults live in the binary and the TOML files hold only your overrides.
Grammars and logs live nearby but separate: compiled tree-sitter grammars under the config-adjacent storage, runtime logs in the cache dir. Copying config.toml and languages.toml carries your setup anywhere; grammars rebuild on demand with hx --grammar fetch and build.
Where Helix stores this, by platform
~/.config/helix/config.toml
Respects $XDG_CONFIG_HOME when set. Logs sit in ~/.cache/helix/helix.log. Confirm everything with hx --health before debugging LSP issues.
~/.config/helix/config.toml
Same paths and commands as Linux. Use Go > Go to Folder in Finder for the hidden .config tree.
%APPDATA%\helix\config.toml
Paste %APPDATA%\helix into Explorer. Same config.toml/languages.toml pair and :config-reload behavior as other platforms.
Frequently asked questions
Which config is my Helix actually reading?
Run hx --health. It prints the config file, language file, log file and runtime directories your build actually uses, plus LSP status per language. Trust that output over docs when XDG overrides or custom builds move things.
Can I have per project Helix settings?
Drop a .helix/config.toml (and optionally languages.toml) in the repo root. Project files merge over global ones, and workspace-lsp-roots must live there. Reload with :config-reload instead of restarting the editor.
Notice an outdated path? Let us know.