Releases: raulvidis/hermes-migrate
Releases · raulvidis/hermes-migrate
v1.2.1
Fixes
--dry-runno 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-4obecomegpt-4o - Fix PyPI versioning — dynamic version from
__init__.py(was hardcoded 1.0.0 in pyproject.toml)
Install
pip install --upgrade hermes-migratev1.2.0
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-migratev1.1.2
Full Changelog: v1.1.1...v1.1.2
v1.1.1
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
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
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