I run a personal AI agent (Hermes Agent) every day, plus Claude Code, Codex, OpenCode and a few others. Two pieces I built for that setup are now public under MIT.
session-vault
https://github.com/kyupark/session-vault
Every agent keeps its transcripts somewhere different, in a different format, and some of them prune old sessions. session-vault pulls them into one local SQLite database with full-text search.
- Adapters: Hermes, Claude Code, Codex, OpenCode, Cursor, Gemini CLI, OpenClaw, Zcode, AGY
- Append-only: a conversation the upstream tool deletes stays in the archive
- Raw originals kept in a content-addressed store, so a parser fix can re-import history
- Local only. Nothing leaves the machine. Originals are stored unredacted, so treat the database like your shell history.
search-fusion
https://github.com/kyupark/search-fusion
A Hermes plugin that replaces the single-provider web_search with a fused, budget-aware layer.
- Several providers in parallel for the first search in a turn, merged and deduped
- Follow-up searches in the same turn go to one cheap provider. Most agent turns fire several near-duplicate queries, and paying full fan-out for each was the main cost.
web_fetchtries a free local extractor first and only falls back to paid ones on failure. It refuses private, loopback and metadata addresses.
What I left out
Both repos are trimmed copies of what I run. The browser exporters that pulled my ChatGPT, Gemini and Grok web history were removed: they depend on a logged-in session and private endpoints, which is fine for my own account and not something to hand out.
Review before release
Before publishing, Claude and Codex each reviewed both repos independently. They agreed on no secrets, and between them found one SSRF gap in web_fetch, a Codex-adapter bug that silently skipped every session when the archive path contained a cache folder, and README gaps. All fixed, and the fixes went back into the versions I actually run.
Status: personal tools, published as-is. Tested on macOS.