This guide helps you migrate from the original Hermes Agent to Hermes Evolution without losing any data, skills, configurations, or customizations.
✅ Your data will be preserved:
- All your profiles and user data
- All your custom skills
- All your cron jobs
- All your memories and session history
- All your configurations and settings
- All your plugins and custom tools
🔄 What will be updated:
- Base agent code (Hermes Evolution version)
- Evolution skills will be added
- Evolution cron jobs will be added (optional)
- Documentation will be updated
- Verify your current installation:
# Check where Hermes is installed
which hermes
# Check current version (if available)
hermes --version
# List your profiles
ls -la ~/.hermes/profiles/- Identify your customizations:
# List custom skills
ls -la ~/.hermes/skills/
ls -la ~/.hermes/profiles/*/skills/
# List cron jobs
hermes cron list
# List memories
ls -la ~/.hermes/profiles/*/memories/- Backup your data (automatic during migration, but good practice):
# Create manual backup
cp -r ~/.hermes ~/.hermes.manual.backup.$(date +%Y%m%d)Best for: Most users, smooth migration, minimal downtime
# 1. Clone Hermes Evolution
git clone https://github.com/Lexus2016/hermes-agent-evolution.git
cd hermes-agent-evolution
# 2. Run automatic migration
./scripts/migrate-from-hermes.sh
# 3. Verify migration
./scripts/verify-migration.py
# 4. Test the new installation
hermes --helpWhat it does:
- Detects your current Hermes installation
- Backs up all data automatically
- Installs Hermes Evolution
- Migrates all profiles, skills, cron jobs
- Verifies integrity
- Preserves all configurations
Best for: Advanced users with complex setups
# Create timestamped backup
BACKUP_DATE=$(date +%Y%m%d_%H%M%S)
cp -r ~/.hermes ~/.hermes.backup.$BACKUP_DATE
# Verify backup
ls -la ~/.hermes.backup.$BACKUP_DATE/profiles/# Clone to temporary location
git clone https://github.com/Lexus2016/hermes-agent-evolution.git /tmp/hermes-evolution
cd /tmp/hermes-evolution# Run setup (this won't overwrite your data)
./setup-hermes.sh# Check profiles are preserved
hermes profile list
# Check custom skills
ls -la ~/.hermes/skills/
# Check cron jobs
hermes cron list
# Test a query
hermes "test"# Once verified, you can remove the backup
# rm -rf ~/.hermes.backup.$BACKUP_DATEBest for: Testing before fully switching
# Install Hermes Evolution alongside
git clone https://github.com/Lexus2016/hermes-agent-evolution.git ~/hermes-evolution
cd ~/hermes-evolution
./setup-hermes.sh --prefix ~/hermes-evolution-install
# Use with separate profile
hermes --profile evolution-profile# All profiles are migrated
~/.hermes/profiles/user1/ → preserved
~/.hermes/profiles/user2/ → preserved
~/.hermes/profiles/work/ → preservedWhat's preserved:
- Profile configurations
- Session history
- Memories
- Custom settings
# Custom skills are preserved
~/.hermes/skills/custom-skill/ → preserved
~/.hermes/profiles/user1/skills/ → preservedWhat's added:
- Evolution skills (5 new skills)
# Existing cron jobs are preserved
hermes cron list → all jobs preservedWhat's added:
- Evolution cron jobs (optional, you choose which to enable)
# All configs preserved
~/.hermes/profiles/*/config.yaml → preserved
~/.hermes/config.yaml → preservedWhat's added:
- Evolution-specific configs
If you want to enable evolution features:
# For PUBLIC mode (all users)
export GITHUB_TOKEN=*** For PRIVATE mode (repository owner only)
export GITHUB_PRIVATE_TOKEN=*** # Add these to ~/.bashrc or ~/.zshrc for persistence
echo 'export GITHUB_TOKEN=*** echo 'export GITHUB_PRIVATE_TOKEN=***# 2. Enable Evolution Cron Jobs (Optional)
```bash
# Add evolution jobs to your existing cron setup
hermes cron create --name evolution-research \
--schedule "0 9 * * *" \
--prompt "$(cat ~/hermes-evolution/cron/evolution/research.yaml)" \
--skills evolution-researchNote: Evolution cron jobs are optional. You can continue using Hermes Evolution without them.
# Test basic functionality
hermes "What is 2+2?"
# Check profiles
hermes profile list
# List skills (should see evolution skills)
hermes skills list
# If you enabled cron jobs, verify
hermes cron listIf you have scripts referencing Hermes:
# Update shebang lines if using custom paths
# Old: #!/usr/local/bin/hermes
# New: #!/usr/bin/hermes (or wherever it's installed)# Run verification script
./scripts/verify-migration.py ~/.hermes.backup.*-
hermes --helpworks - All profiles are listed:
hermes profile list - Custom skills are present:
ls ~/.hermes/skills/ - Cron jobs are preserved:
hermes cron list - Can run a query:
hermes "test" - Session history is intact
- Memories are preserved
# Test each profile you have
for profile in user1 user2 work; do
echo "Testing profile: $profile"
hermes --profile $profile "What is your name?"
doneIf anything goes wrong, you can easily rollback:
# The migration script creates automatic backups
./scripts/rollback-migration.sh ~/.hermes.backup.*# Stop any running hermes processes
pkill -f hermes
# Restore from backup
rm -rf ~/.hermes
cp -r ~/.hermes.backup.* ~/.hermes
# Reinstall original Hermes Agent (if needed)
cd /path/to/hermes-agent
./setup-hermes.shCurrent setup: Basic Hermes with default profile
Migration:
./scripts/migrate-from-hermes.shResult: Everything preserved, evolution skills added
Current setup: Hermes with profiles for work, personal, testing
Migration:
./scripts/migrate-from-hermes.sh
# Verify all profiles
hermes profile listResult: All profiles preserved, can switch between them
Current setup: Hermes with 5 custom skills
Migration:
./scripts/migrate-from-hermes.sh
# Verify custom skills
ls ~/.hermes/skills/custom-*/Result: Custom skills preserved, evolution skills added
Current setup: 10+ cron jobs for various tasks
Migration:
./scripts/migrate-from-hermes.sh
# Verify all jobs
hermes cron listResult: All cron jobs preserved, evolution jobs added (optional)
Solution:
# Reinstall Hermes
cd ~/hermes-evolution
./setup-hermes.sh
# Or add to PATH manually
export PATH="~/hermes-evolution:$PATH"Solution:
# Check profiles directory
ls -la ~/.hermes/profiles/
# If empty, restore from backup
cp -r ~/.hermes.backup.*/profiles/* ~/.hermes/profiles/Solution:
# Check cron database
hermes cron list
# If jobs are missing, re-add them manually
# (You should have a list from pre-migration verification)Solution:
# Verify skill files
ls -la ~/.hermes/skills/
# Check skill syntax
hermes skills check your-custom-skill
# Reinstall if needed
hermes skills install ~/.hermes/skills/your-custom-skill/-
Evolution Skills:
evolution/research— Research capabilitiesevolution/issues— GitHub integrationevolution/analysis— Prioritizationevolution/implementation— Self-implementationevolution/upstream-sync— Upstream sync
-
Evolution Cron Jobs (Optional):
- Daily research
- Daily issue creation
- Daily analysis
- Daily implementation
- Weekly upstream sync
-
New Documentation:
- EVOLUTION_README.md
- MIGRATION_GUIDE.md (this file)
- CONTRIBUTING_EVOLUTION.md
- SECURITY_EVOLUTION.md
Everything you had before still works:
- All your skills
- All your cron jobs
- All your profiles
- All your data
# Check evolution mode
python ~/hermes-evolution/evolution/detect_mode.py
# Read evolution docs
cat ~/hermes-evolution/EVOLUTION_README.mdIf you want to enable autonomous evolution:
# Add tokens
export GITHUB_TOKEN=*** Add evolution cron jobs
hermes cron create --name evolution-research --schedule "0 9 * * *" \
--skills evolution-researchEverything works as before, plus evolution features are available:
# Use Hermes as you normally would
hermes "Help me write code"
# Or use evolution features
hermes --skill evolution-researchIf you encounter issues during migration:
- Check logs:
~/.hermes/logs/ - Verify backup: Ensure
~/.hermes.backup.*exists - Run verification:
./scripts/verify-migration.py - Create issue: GitHub Issues
- Rollback: If needed, restore from backup
Use this checklist to ensure successful migration:
- Identified current installation location
- Listed all profiles
- Listed all custom skills
- Listed all cron jobs
- Created manual backup (optional)
- Cloned Hermes Evolution
- Ran migration script
- Script completed without errors
- Automatic backup created
-
hermes --helpworks - All profiles present
- Custom skills preserved
- Cron jobs preserved
- Can run queries
- Session history intact
- Memories preserved
- Read EVOLUTION_README.md
- Configured GITHUB_TOKEN (if using PUBLIC mode)
- Configured GITHUB_PRIVATE_TOKEN (if using PRIVATE mode)
- Added evolution cron jobs (if desired)
Migration complete! Welcome to Hermes Evolution! 🧬🚀
Your data is safe, everything is preserved, and you now have evolution capabilities.
Next: Explore EVOLUTION_README.md to learn about evolution features.