Skip to content

Releases: raulvidis/hermes-migrate

v1.2.1

10 Mar 09:55

Choose a tag to compare

Fixes

  • --dry-run no longer installs Hermes — previews migration without side effects
  • Auto-select supported model — when the default model (e.g. Claude) isn't supported by Hermes, auto-switches to a supported model from fallbacks or other agents' configs (e.g. zai/glm)
  • Strip provider prefix from fallback models — fallbacks like openai/gpt-4o become gpt-4o
  • Fix PyPI versioning — dynamic version from __init__.py (was hardcoded 1.0.0 in pyproject.toml)

Install

pip install --upgrade hermes-migrate

v1.2.0

10 Mar 09:38

Choose a tag to compare

What's New

  • Interactive prompts — each migration step asks for confirmation
    before proceeding
  • Full credential migration — reads API keys from
    auth-profiles.json, per-agent models.json, and credential files
  • Smart .env patching — patches Hermes .env template in-place, no
    duplicate vars
  • Provider mapping — auto-maps OpenClaw providers to Hermes env
    vars (e.g. zai → GLM_API_KEY)
  • Model name cleanup — strips provider prefixes (zai/glm-5 →
    glm-5), removes unnecessary base_url/provider
  • Channel dependency auto-install — installs slack-bolt,
    discord.py, etc. when channels are detected
  • Allowed users migration — reads Slack/Telegram allowFrom.json for
    user pairing
  • OpenClaw → Hermes renaming — replaces references in SOUL.md,
    MEMORY.md and other migrated files
  • Unsupported provider warnings — alerts when configured models
    (Claude, Gemini) aren't natively supported by Hermes
  • Systemd service handling — stops openclaw-gateway.service cleanly
    (without disabling)
  • Terminal freeze fix — Hermes process no longer inherits stdin
  • Faster uninstall — background cleanup instead of blocking rmtree

Install

pip install hermes-migrate

v1.1.2

10 Mar 09:25

Choose a tag to compare

Full Changelog: v1.1.1...v1.1.2

v1.1.1

10 Mar 09:21

Choose a tag to compare

What's New

Interactive Migration

  • Prompt before each migration step (Persona, Channels, Models,
    Credentials, etc.)
  • Default is Y, skip with --quiet or --dry-run

Channel Improvements

  • Auto-detect enabled channels when no explicit bindings exist
  • Auto-install channel dependencies (slack-bolt, etc.) into Hermes venv
  • Read allowed users from credential files (slack/telegram
    allowFrom.json)
  • Show which channels were found during migration

Credential Migration

  • Read API keys from auth-profiles.json and per-agent models.json
  • Patch Hermes .env template in-place (no duplicates)
  • Map OpenClaw provider names to Hermes env vars (zai → GLM_API_KEY)
  • Strip provider prefix from model names (zai/glm-5 → glm-5)

Process Management

  • Stop openclaw-gateway systemd service (prevents respawning)
  • Kill both openclaw and openclaw-gateway processes
  • Redirect stdin to DEVNULL when starting Hermes (fixes terminal
    freeze)

Other Fixes

  • Replace "OpenClaw" references in SOUL.md and MEMORY.md
  • Use --skip-setup flag for non-interactive Hermes install
  • Background rm -rf for repo cleanup (no more hangs)
  • Remove unsupported model fallbacks (Claude, Gemini, etc.)

v1.1.0

10 Mar 09:13

Choose a tag to compare

What's New

Interactive Migration

  • Prompt before each migration step (Persona, Channels, Models,
    Credentials, etc.)
  • Default is Y, skip with --quiet or --dry-run

Channel Improvements

  • Auto-detect enabled channels when no explicit bindings exist
  • Auto-install channel dependencies (slack-bolt, etc.) into Hermes venv
  • Read allowed users from credential files (slack/telegram
    allowFrom.json)
  • Show which channels were found during migration

Credential Migration

  • Read API keys from auth-profiles.json and per-agent models.json
  • Patch Hermes .env template in-place (no duplicates)
  • Map OpenClaw provider names to Hermes env vars (zai → GLM_API_KEY)
  • Strip provider prefix from model names (zai/glm-5 → glm-5)

Process Management

  • Stop openclaw-gateway systemd service (prevents respawning)
  • Kill both openclaw and openclaw-gateway processes
  • Redirect stdin to DEVNULL when starting Hermes (fixes terminal
    freeze)

Other Fixes

  • Replace "OpenClaw" references in SOUL.md and MEMORY.md
  • Use --skip-setup flag for non-interactive Hermes install
  • Background rm -rf for repo cleanup (no more hangs)
  • Remove unsupported model fallbacks (Claude, Gemini, etc.)

v1.0.1

09 Mar 19:53

Choose a tag to compare

Critical Fixes

  • _basic_yaml_load() now preserves nested configs (was silently
    destroying existing Hermes settings)
  • Config saved incrementally after config mutations for crash safety
  • Automatic rollback on migration failure restores pre-migration state
  • Windows: proper process detachment with CREATE_NEW_PROCESS_GROUP
  • Fixed Hermes installer URL to official NousResearch/hermes-agent repo

New Features

  • --force flag to re-run migration (skips idempotency check)
  • --quiet/-q flag to suppress non-error output for CI/scripting
  • Unknown channels now warn instead of being silently ignored
  • Post-migration prompt to uninstall hermes-migrate and clean up

Security

  • Added Stripe (sk_live_, rk_live_), Twilio (AC..., SK...), and Bearer
    token redaction patterns
  • Added AWS, GitHub, and Anthropic key redaction
  • Expanded SAFE_FIELD_ALLOWLIST to prevent false positives on
    token-like config fields

Code Quality

  • Fixed all ruff lint issues (unused imports, f-strings, import
    sorting, line length)
  • Black formatting compatible with Python 3.9+
  • 130 tests (up from 107) covering YAML loader, rollback, idempotency,
    run(), quiet mode, EOFError handling, and all new redaction patterns

Full Changelog:
v1.0.0...v1.0.1