---
title: Charmhub | Deploy Hermes Agent using Charmhub - The Open Operator Collection
description: Deploy the latest version of Hermes Agent on any cloud.
url: https://charmhub.io/hermes/configurations
---

# Hermes Agent

[Shih-Yuan Lee (FourDollars)](https://charmhub.io/publisher/fourdollars "View all packages from Shih-Yuan Lee (FourDollars)")

* [Shih-Yuan Lee (FourDollars)](https://charmhub.io/publisher/fourdollars "View all packages from Shih-Yuan Lee (FourDollars)")

Platform:

24.04

stable 13

```
juju deploy hermes
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

* [ai-api-key](https://charmhub.io/hermes/configurations#ai-api-key)
* [ai-base-url](https://charmhub.io/hermes/configurations#ai-base-url)
* [ai-fallback-models](https://charmhub.io/hermes/configurations#ai-fallback-models)
* [ai-model](https://charmhub.io/hermes/configurations#ai-model)
* [ai-provider](https://charmhub.io/hermes/configurations#ai-provider)
* [auto-update](https://charmhub.io/hermes/configurations#auto-update)
* [compression-enabled](https://charmhub.io/hermes/configurations#compression-enabled)
* [dashboard-password](https://charmhub.io/hermes/configurations#dashboard-password)
* [dashboard-port](https://charmhub.io/hermes/configurations#dashboard-port)
* [dashboard-username](https://charmhub.io/hermes/configurations#dashboard-username)
* [discord-bot-token](https://charmhub.io/hermes/configurations#discord-bot-token)
* [dm-policy](https://charmhub.io/hermes/configurations#dm-policy)
* [gateway-allow-all-users](https://charmhub.io/hermes/configurations#gateway-allow-all-users)
* [gateway-port](https://charmhub.io/hermes/configurations#gateway-port)
* [home-assistant-token](https://charmhub.io/hermes/configurations#home-assistant-token)
* [home-assistant-url](https://charmhub.io/hermes/configurations#home-assistant-url)
* [install-method](https://charmhub.io/hermes/configurations#install-method)
* [install-pkgs](https://charmhub.io/hermes/configurations#install-pkgs)
* [line-channel-access-token](https://charmhub.io/hermes/configurations#line-channel-access-token)
* [line-channel-secret](https://charmhub.io/hermes/configurations#line-channel-secret)
* [log-level](https://charmhub.io/hermes/configurations#log-level)
* [manual](https://charmhub.io/hermes/configurations#manual)
* [matrix-access-token](https://charmhub.io/hermes/configurations#matrix-access-token)
* [matrix-homeserver](https://charmhub.io/hermes/configurations#matrix-homeserver)
* [matrix-user-id](https://charmhub.io/hermes/configurations#matrix-user-id)
* [mattermost-token](https://charmhub.io/hermes/configurations#mattermost-token)
* [mattermost-url](https://charmhub.io/hermes/configurations#mattermost-url)
* [max-turns](https://charmhub.io/hermes/configurations#max-turns)
* [node-version](https://charmhub.io/hermes/configurations#node-version)
* [personality](https://charmhub.io/hermes/configurations#personality)
* [signal-phone-number](https://charmhub.io/hermes/configurations#signal-phone-number)
* [slack-app-token](https://charmhub.io/hermes/configurations#slack-app-token)
* [slack-bot-token](https://charmhub.io/hermes/configurations#slack-bot-token)
* [soul-md](https://charmhub.io/hermes/configurations#soul-md)
* [telegram-bot-token](https://charmhub.io/hermes/configurations#telegram-bot-token)
* [terminal-backend](https://charmhub.io/hermes/configurations#terminal-backend)
* [version](https://charmhub.io/hermes/configurations#version)

[Learn about configurations >](https://juju.is/docs/juju/configuration#heading--application-configuration)

* ai-api-key | string

  API key for the selected AI provider. Required for most providers.
  Not required for: ollama (local), bedrock (AWS credentials), nous (OAuth).
* ai-base-url | string

  Custom API base URL for OpenAI-compatible providers.
  Examples: http://localhost:1234/v1 (LM Studio), http://localhost:8000/v1 (vLLM)
* ai-fallback-models | string

  Comma-separated fallback models in provider/model format.
  These are tried in order when the primary model fails.
  Use ai-api-key for the primary provider; fallback providers that share
  the same key will reuse it automatically.
  Example: "anthropic/claude-sonnet-4,openai/gpt-4,google/gemini-2.5-pro"
* ai-model | string

  AI model(s) to use. Supports comma-separated list for fallback:

  + Single: claude-opus-4-5
  + Multiple: gpt-4,claude-sonnet-4,gemini-2.5-pro
    First model is primary, rest are fallbacks.
* ai-provider | string

  Primary AI model provider. Supported providers:

  + copilot: GitHub Copilot (recommended — set ai-api-key to your GitHub token)
  + anthropic: Anthropic Claude models
  + openai: OpenAI GPT models
  + google: Google Gemini models
  + openrouter: OpenRouter aggregator
  + xai: xAI models
  + groq: Groq models
  + deepseek: DeepSeek models
  + mistral: Mistral AI models
  + ollama: Local Ollama models (no API key needed)
  + bedrock: AWS Bedrock (uses AWS credentials)
  + nous: Nous Portal (OAuth)
    Aliases: github-copilot → copilot, gemini → google
* auto-update | boolean

  Automatically update Hermes Agent to latest version on upgrade-charm
* compression-enabled | boolean

  Default: True

  Enable context compression when conversation grows long
* dashboard-password | string

  Password for dashboard basic auth. The charm hashes this automatically
  using scrypt before writing to config.yaml. Required when dashboard-username
  is set.
* dashboard-port | int

  Default: 9119

  Port for the Hermes Dashboard web UI
* dashboard-username | string

  Username for dashboard basic auth. Setting both dashboard-username and
  dashboard-password enables the dashboard and binds it to 0.0.0.0.
  Leave empty to disable the dashboard service entirely.
* discord-bot-token | string

  Discord bot token from Discord Developer Portal.
  Leave empty to disable Discord messaging.
* dm-policy | string

  Default: pairing

  DM access policy: 'pairing' (require pairing code), 'open' (auto-respond),
  or 'closed' (reject all DMs)
* gateway-allow-all-users | boolean

  Allow all users to interact without pairing.
  WARNING: Only set to true in trusted environments.
  When false, users must pair via DM code first.
* gateway-port | int

  Default: 3000

  Port for the Hermes Agent Gateway HTTP/WebSocket server
* home-assistant-token | string

  Long-lived access token for Home Assistant API.
  Required when home-assistant-url is configured.
* home-assistant-url | string

  Home Assistant URL for HA integration (e.g., http://homeassistant.local:8123).
  Leave empty to disable.
* install-method | string

  Default: script

  Installation method:

  + 'script' (recommended): Official install.sh from hermes-agent.nousresearch.com.
    Uses git + uv, installs to ~/.hermes/hermes-agent/. This is the only
    officially supported install path as of mid-2026.
  + 'git': Clone NousResearch/hermes-agent and install via uv. Use this to track
    a specific branch or commit.
  + 'pip': Deprecated. PyPI installs are no longer officially supported upstream
    and will not receive further updates. Retained for backward compatibility only.
* install-pkgs | string

  Comma-separated list of extra packages to install.
  Supported: 'chrome', 'chromium', 'firefox', 'tailscale', 'homebrew'.
* line-channel-access-token | string

  LINE Messaging API channel access token.
  Leave empty to disable LINE messaging.
* line-channel-secret | string

  LINE Messaging API channel secret.
  Required when line-channel-access-token is configured.
* log-level | string

  Default: info

  Log level (debug, info, warn, error)
* manual | boolean

  Manual configuration mode. When enabled:

  + Charm will NOT auto-generate config.yaml or .env
  + User manages ~/.hermes/ configuration manually
  + Charm only installs Hermes Agent and manages the systemd service
* matrix-access-token | string

  Matrix access token for the bot account
* matrix-homeserver | string

  Matrix homeserver URL (e.g., https://matrix.org)
* matrix-user-id | string

  Matrix user ID (e.g., @bot:matrix.org)
* mattermost-token | string

  Mattermost bot token
* mattermost-url | string

  Mattermost server URL
* max-turns | int

  Default: 90

  Maximum agent turns per conversation before requiring reset
* node-version | string

  Default: 24

  Node.js major version to install (minimum 22 required)
* personality | string

  Agent personality preset (e.g., 'kawaii', 'professional', 'pirate').
  Leave empty for default personality.
* signal-phone-number | string

  Signal phone number for Signal messaging.
  Leave empty to disable Signal messaging.
* slack-app-token | string

  Slack app token (xapp-...) from Slack App settings.
  Required when slack-bot-token is configured.
* slack-bot-token | string

  Slack bot token (xoxb-...) from Slack App settings.
  Leave empty to disable Slack messaging.
* soul-md | string

  Custom SOUL.md content — defines the agent's identity and personality.
  This overrides the default SOUL.md in ~/.hermes/.
  Multi-line YAML string supported.
* telegram-bot-token | string

  Telegram bot token from @BotFather.
  Leave empty to disable Telegram messaging.
* terminal-backend | string

  Default: local

  Terminal backend for shell commands:

  + 'local': run commands locally on the charm unit
  + 'docker': run in Docker containers
  + 'ssh': run on remote hosts via SSH
* version | string

  Default: latest

  Hermes Agent version to install.

  + 'latest' (default): tracks the latest main branch (script/git methods)
  + branch name: e.g. 'main', 'dev' — passed as --branch to install.sh
  + full 40-char commit SHA: pinned install — passed as --commit to install.sh
  + For pip method: PyPI version string (e.g., '2026.5.1')
