Skip to content

Hermes Ershov Memory Engine Setup

Plugin: hermes-ershov Source: ersh123/hermes-ershov Stars: 2 ⭐ | License: MIT | Created: June 19, 2026 CI: ✅ GitHub Actions | Security: ✅ CodeQL + OpenSSF Scorecard

1. What It Is

A staged nightly memory engine that turns recent Hermes sessions into reviewable memory proposals -- no silent live-memory mutation. Think of it as "Git for agent memory": inspect, diff, approve, apply, revert.

Key design principles: - Artifact-first: Every proposal is a JSONL file with full diffs before any memory write - Human-in-the-loop: No automated mutation of live memory -- every change goes through review - Auditable: Local run ledger + ERSHOV.md diary tracks every decision - Offline-capable: Deterministic replays for demos and tests

How it works (nightly loop):

Recent Sessions → Analyze → Generate Proposals (JSONL)
                              ↓
                    Inspect → Diff → Validate
                              ↓
                   Approve → Apply → Verify
                   Reject  → Archive with reason
                              ↓
                   Write to ERSHOV.md diary

2. Prerequisites

  • Hermes Agent installed (plugin system supported)
  • At least one LLM backend configured (DeepSeek, OpenRouter, OpenAI-compatible, or Ollama)
  • Git (for install)
  • Disk space: ~50KB for plugin + ledger files

3. Installation

hermes plugins install ersh123/hermes-ershov --enable

Local Development Install

hermes plugins install file:///path/to/hermes-ershov --enable

Verify Installation

hermes plugins list | grep ershov
hermes ershov review --help

Configure LLM Backend

Ershov supports 4 backends. Configure in ~/.hermes/config.yaml:

ershov:
  backend: deepseek           # deepseek | openrouter | openai-compatible | ollama
  model: deepseek-chat        # Model name for your chosen backend

  # Backend-specific configs (only one needed):
  deepseek:
    api_key_env: DEEPSEEK_API_KEY
    base_url: "https://api.deepseek.com/v1"

  openrouter:
    api_key_env: OPENROUTER_API_KEY
    base_url: "https://openrouter.ai/api/v1"

  openai_compatible:
    api_key_env: OPENAI_API_KEY
    base_url: "${OPENAI_BASE_URL}"

  ollama:
    base_url: "http://localhost:11434"

4. Capabilities

Feature Description
review Generate memory proposals from recent sessions
inspect View a proposal's full diff
validate Validate proposals against memory constraints
approve Approve a proposal for application
reject Reject with reason, archived for audit
apply Apply an approved proposal to live memory
revert Roll back an applied proposal
ledger View local run history
diary Read/write ERSHOV.md audit trail
offline Run with --offline for deterministic replay

5. CLI Reference

# Nightly review cycle
hermes ershov review                    # Generate proposals
hermes ershov review --list             # List pending proposals
hermes ershov inspect <proposal-id>     # View full diff
hermes ershov validate <proposal-id>    # Validate against constraints
hermes ershov approve <proposal-id>     # Approve for application
hermes ershov reject <proposal-id> --reason "factually incorrect"
hermes ershov apply <proposal-id>       # Write to live memory

# Rollback
hermes ershov revert <proposal-id>      # Undo an applied proposal

# Audit
hermes ershov ledger                    # View run history
hermes ershov ledger --since 7d         # Last 7 days
hermes ershov diary                     # Read ERSHOV.md

# Offline mode
hermes ershov review --offline          # Deterministic replay

6. CorpusIQ Use Cases

For the CorpusIQ growth agent profile:

# Install for corpusiq profile
hermes --profile corpusiq plugins install ersh123/hermes-ershov --enable

# Run nightly review on CorpusIQ sessions
hermes --profile corpusiq ershov review --since 24h

# Inspect proposals about growth strategy
hermes --profile corpusiq ershov inspect <id>

# Approve high-quality memory proposals
hermes --profile corpusiq ershov approve <id>
hermes --profile corpusiq ershov apply <id>

CorpusIQ-specific config:

# In ~/.hermes/profiles/corpusiq/config.yaml
ershov:
  backend: deepseek
  model: deepseek-chat
  deepseek:
    api_key_env: DEEPSEEK_API_KEY
    base_url: "https://api.deepseek.com/v1"

Integration with CorpusIQ's existing memory stack: - Ershov complements (doesn't replace) Hermes' built-in memory tool - Use Ershov for: cross-session pattern detection, cleanup of stale memories, quality audits - Keep Hermes memory for: session-level facts, user preferences, quick saves - Ershov diary serves as a changelog for the memory layer -- pairs well with Honcho's peer context

Cron job for nightly review:

# Add to crontab: run at 3 AM Arizona daily
0 3 * * * hermes --profile corpusiq ershov review --since 24h >> ~/.hermes/profiles/corpusiq/logs/ershov.log 2>&1

7. Troubleshooting

Symptom Likely Cause Fix
hermes plugins install fails Git not installed apt-get install git / brew install git
review produces 0 proposals No sessions in window Check --since window; run a session first
LLM backend connection refused Wrong base URL or API key Verify env vars; test with curl $base_url/models
apply fails silently Proposal conflicts with live memory Inspect diff first; resolve conflict manually
High token costs Using expensive model for proposal gen Switch backend to DeepSeek or Ollama
Offline mode produces different results Non-deterministic backend configured Use --model override with a deterministic temp

Skills Catalog | Marketplace