Skip to main content
Herm is designed to work with zero configuration out of the box. As long as Hermes Agent is installed and your Hermes home directory exists at ~/.hermes, you can run herm with no extra setup. Every environment variable described on this page is optional: set them only when the defaults do not match your environment.

Environment variables

Herm’s environment-variable surface is generated from the Herm source repo. Most users only need HERMES_HOME, HERMES_AGENT_ROOT, HERMES_PYTHON, or HERM_CONFIG_DIR when their install lives outside the default paths.

Where Herm stores preferences

Herm writes its own runtime preferences to a single JSON file:
This file stores themes, keybinding overrides, and other runtime preferences. You can edit it by hand, but the recommended way to change themes and keybindings is through the TUI itself: use /theme to pick a color scheme or /keys to view and rebind shortcuts. Changes are written to tui.json automatically. If HERM_CONFIG_DIR is not set, the file lives at ~/.hermes/herm/tui.json.

Using a .env file

Because Herm runs on Bun, it automatically loads a .env file from the working directory when you run the herm command. You can use this to set any of the variables above without exporting them in your shell profile. Create a .env file alongside your project or in the directory from which you typically launch Herm:
.env
The .env auto-load behavior is provided by Bun, not by Herm itself. If you run Herm through a different Node package runner, .env loading depends on that runner’s own behavior.
Do not commit a .env file that contains real credentials or sensitive paths to a public repository. The example above shows all variables commented out for safety: uncomment only the ones you actually need.