agentsclimarketplace

Hermes config backup

Skill john-data-chen/hermes-agent-backup/skills/devops/hermes-config-backup

Backup Hermes config, skills, memories, and cron jobs. Exclude secrets. Check for info leakage before compressing.From its SKILL.md

Install
npx -y skills add john-data-chen/hermes-agent-backup --skill hermes-config-backup

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 8 commands, including `BACKUP_DIR="/tmp/hermes-backup-$(date +%Y%m%d_%H%M%S)"` and 7 more.

SKILL.md

2.5 KB, 779 tokens by cl100k_base, as published. Nobody here has run it

Hermes Config Backup

Backup essential Hermes files. Exclude secrets and sensitive data.

What to Backup

IncludeExclude
config.yaml.env (API keys)
memories/MEMORY.mdauth.json (OAuth tokens)
memories/USER.mdstate.db (session store)
skills/ (all)sessions/ (transcripts)
cron/jobs.json*.lock (0-byte)
hermes-agent/ (source)
logs/, cache/, audio_cache/, image_cache/
.DS_Store

Workflow

1. Prepare temp directory

BACKUP_DIR="/tmp/hermes-backup-$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"
cd ~/.hermes

2. Copy files

cp config.yaml "$BACKUP_DIR/"
mkdir -p "$BACKUP_DIR/memories"
cp memories/MEMORY.md memories/USER.md "$BACKUP_DIR/memories/"
mkdir -p "$BACKUP_DIR/skills"
rsync -a --exclude='*.lock' --exclude='.DS_Store' --exclude='node_modules' skills/ "$BACKUP_DIR/skills/"
mkdir -p "$BACKUP_DIR/cron"
cp cron/jobs.json "$BACKUP_DIR/cron/"

3. Check for info leakage

Before compressing, scan for sensitive data:

# API keys (non-empty)
grep -rE 'api_key:\s*[^'\'']' "$BACKUP_DIR/" | grep -v node_modules

# Tokens
grep -rE 'ghp_|gho_|github_pat_|sk-[a-zA-Z0-9]{20,}' "$BACKUP_DIR/" | grep -v node_modules | grep -v 'example\|sample\|xxx'

# Phone numbers (exclude numeric config values)
grep -rE '\+?[0-9]{1,4}[-.\s]?\(?\d{1,4}\)?[-.\s]?\d{1,4}[-.\s]?\d{1,4}[-.\s]?\d{1,9}' "$BACKUP_DIR/" | grep -v 'timeout\|limit\|max\|min\|bytes\|chars\|sample_rate\|bit_rate'

# Email addresses
grep -rE '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}' "$BACKUP_DIR/"

If real secrets found → redact before compressing.

4. Compress as zip

ZIP_FILE="$HOME/backups/hermes/hermes-backup-$(date +%Y%m%d_%H%M%S).zip"
mkdir -p "$(dirname "$ZIP_FILE")"
cd "$BACKUP_DIR" && zip -r "$ZIP_FILE" . -x '*.DS_Store'

5. Cleanup

rm -rf "$BACKUP_DIR"

Pitfalls

Never include .env or auth.json. These contain API keys and OAuth tokens.

Always check for info leakage. Even config.yaml may contain API URLs or voice IDs. Mask if needed.

*Exclude .lock files. They are 0-byte and not needed.

Use zip format. Not tar.gz.

Backup path: ~/backups/hermes/hermes-backup-YYYYMMDD_HHMMSS.zip

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.