Icarus is a plugin for the Hermes agent runtime that adds shared, persistent memory and a pipeline for turning an agents own history into a fine-tuned replacement model. Where Hermes already has per-instance memory, Icarus contributes cross-instance shared memory (agents running under different profiles read each others work through a common notes directory), decision-quality tagging so low-value chatter does not pollute training data, extraction of training pairs from those notes, and an end-to-end train/evaluate/switch flow for swapping in a cheaper model trained on the agents past work. It writes plain Markdown files with YAML frontmatter; Obsidian is an optional viewer for those files, not a dependency, and Icarus is not itself an Obsidian plugin.
Memory entries are captured automatically by four lifecycle hooks that fire on session start, before an LLM call (injecting relevant memories on topic changes), after an LLM call (capturing high-value decisions), and on session end (scoring session quality and writing a structured note if a threshold is met). Agents can also call tools directly to recall, write, search, and curate memory (setting each entry a training_value of high, normal, or low), plus operational tools for daily briefs, telemetry, and corpus-health reports. Entries support linking and handoff fields, enabling a builder-to-reviewer-to-fix workflow where one agents work is picked up and revised by another.
For the replacement pipeline, curated entries are exported as fine-tuning pairs in one of three modes (high-precision, normal, or high-volume) with quality filtering, a fine-tune is launched, its progress tracked, and the candidate model evaluated against the base model on prompts derived from the memory corpus. If it passes an eval threshold it can be activated, with rollback available; training and evaluation use Together AI and require an API key. Icarus requires Hermes v0.6.0+ and Python 3.10+.
