
Hermes History Ingest
Parse Hermes agent cache (memories and session JSONL) into consistent fields for Obsidian wiki ingest pipelines.
Overview
Hermes History Ingest is an agent skill most often used in Build (also Grow content) that documents how to parse ~/.hermes/ memories and session logs for Obsidian wiki ingest.
Install
npx skills add https://github.com/ar9av/obsidian-wiki --skill hermes-history-ingestWhat is this skill?
- Documents ~/.hermes/ cache root and HERMES_HOME override for non-default profiles
- Maps memory tags to kebab-case wiki tags and created_at to journal routing
- Parses optional YAML frontmatter on markdown memories and parallel JSON memory schema
- Explains sessions/ daily folders and user/assistant JSONL turn lines when logging is enabled
- Routes project-scoped memories to projects/<project>/ when project field is set
- Two memory shapes documented: *.md with optional YAML and *.json schema
- Sessions stored under sessions/YYYY-MM-DD/*.jsonl when logging.sessions is enabled
Adoption & trust: 1.4k installs on skills.sh; 1.8k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your Hermes agent leaves memories and JSONL sessions on disk but your wiki ingest breaks because field names, tags, and session paths are ambiguous.
Who is it for?
Indie builders combining Hermes with Obsidian who need a precise format spec before writing ingest automation.
Skip if: Teams without Hermes cache layout, or users who only need generic Markdown notes with no agent session provenance.
When should I use this skill?
User or parent obsidian-wiki workflow needs Hermes ~/.hermes/ artifact field reference during wiki ingest.
What do I get? / Deliverables
Ingest jobs normalize tags, timestamps, project routing, and session provenance so Hermes history lands in the right Obsidian wiki categories.
- Normalized wiki tag and category mapping rules
- Parsed memory and session records ready for Obsidian page generation
- Project-scoped routing under projects/<project>/ when applicable
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Build/docs is the canonical shelf because the skill defines how agent artifacts become durable wiki documentation structure. Docs subphase matches field-level reference for memories/*.md, memories/*.json, and sessions/**/*.jsonl—not runtime agent behavior.
Where it fits
Define parsers before generating wiki pages from Hermes markdown memories with YAML frontmatter.
Link session:abc123 sources back to JSONL files when building retro scripts.
Route tagged debugging memories into a durable playbook section for repeat issues.
Audit what the agent remembered last week via created_at and project fields for cleanup.
How it compares
Format reference for Hermes→Obsidian ingest, not a standalone MCP server or live sync product.
Common Questions / FAQ
Who is hermes-history-ingest for?
Solo builders maintaining an Obsidian wiki who store Hermes agent memories and optional session logs under ~/.hermes/.
When should I use hermes-history-ingest?
Use it during Build when wiring docs ingest, or during Grow/content when turning agent history into searchable wiki pages and journals.
Is hermes-history-ingest safe to install?
It describes reading local agent cache paths; review the Security Audits panel on this page and avoid exfiltrating session content from ~/.hermes/ in untrusted environments.
SKILL.md
READMESKILL.md - Hermes History Ingest
# Hermes Agent — Data Format Reference Field-level notes for parsing `~/.hermes/` artifacts during wiki ingest. ## Cache Root `~/.hermes/` — or `$HERMES_HOME` for non-default profiles. All paths below are relative to this root. ## memories/ Each file is one discrete memory the agent persisted. ### Markdown memories (`*.md`) Optional YAML frontmatter, then prose body: ```markdown --- tags: [python, async, debugging] created_at: 2026-03-10T14:22:00Z project: my-api --- When using `asyncio.gather` with return_exceptions=True, failed tasks return the exception object rather than raising — check `isinstance(result, Exception)` on each item. ``` Fields of interest: - `tags` — maps directly to wiki tags; normalize to kebab-case - `created_at` — use for provenance / journal category decisions - `project` — route to `projects/<project>/` when set ### JSON memories (`*.json`) ```json { "content": "...", "created_at": "2026-03-10T14:22:00Z", "tags": ["python", "async"], "project": "my-api", "source": "session:abc123" } ``` Same field semantics as the markdown variant. `source` links back to the originating session. ## sessions/ Present only when session logging is enabled (`config.yaml: logging.sessions: true`). ### Directory layout ``` sessions/ └── 2026-03-10/ └── abc123.jsonl ``` ### JSONL line schemas **User / assistant turns:** ```json {"role": "user", "content": "How do I debounce a React input?"} {"role": "assistant", "content": "Use useCallback + useEffect with a setTimeout..."} ``` **Tool use:** ```json { "type": "tool_use", "id": "tu_abc", "name": "read_file", "input": {"path": "/home/ubuntu/project/src/App.tsx"} } ``` **Tool result:** ```json { "type": "tool_result", "tool_use_id": "tu_abc", "content": "..." } ``` **Session metadata (first line):** ```json { "type": "session_meta", "id": "abc123", "cwd": "/home/ubuntu/projects/my-app", "model": "claude-sonnet-4-6", "started_at": "2026-03-10T14:00:00Z" } ``` `cwd` is the most reliable project inference signal — use it to route knowledge to the right `projects/<name>/` page. ## config.yaml Rarely useful for ingest. Useful fields if needed: ```yaml model: claude-sonnet-4-6 hermes_home: ~/.hermes # resolved path, respects $HERMES_HOME logging: sessions: true # whether session JSONL files are written memories: true # whether memories are persisted ``` ## .hub/ Skills Hub state. **Skip entirely during ingest.** Contains: - `lock.json` — installed skill manifest (not user knowledge) - `audit.log` — install/update history - `quarantine/` — flagged skills awaiting review ## Extraction Priority | Source | Signal | Noise | |---|---|---| | `memories/*.md` | High — curated, stable | Low | | `memories/*.json` | High — structured | Low | | `sessions/**/*.jsonl` — assistant turns | Medium | Medium | | `sessions/**/*.jsonl` — tool pairs | Low | High | | `config.yaml` | Very low | — | | `.hub/` | None | — | --- name: hermes-history-ingest description: > Ingest Hermes agent history into the Obsidian wiki. Use this skill when the user wants to mine their past Hermes sessions for knowledge, import their ~/.hermes folder, extract insights from previous Hermes conversations, or says things like "process my Hermes history", "add my Hermes memories to the wiki", "ingest ~/.hermes", or "what have I worked on in Hermes". Also triggers when the user mentions Hermes memories, Hermes sessions, ~/.hermes/memories, or Hermes skill logs. --- # Hermes History Ingest — Conversation & Memory Mining You are extracting knowledge from the user's Hermes agent history and distilling it into the Obsidian wiki. Hermes stores both free-form memories and structured session transcripts — focus on durable knowledge, not operational telemetry. This skill can be invoked directly or via the `wiki-history-ingest` router (`/wiki-history-ingest hermes`). ## Before You Start 1. **Resolve config** — fo