Icarus is a plugin for Hermes agents that does three related things: it gives agents running under different Hermes profiles a shared memory, it turns that memory into fine-tuning data, and it runs a pipeline to train, evaluate, and switch to a cheaper replacement model built from the agent's own history. It registers 16 tools and 4 hooks inside Hermes; it is not an orchestration framework, router, dashboard, or standalone app.
Memory entries are markdown files with YAML frontmatter written to a shared FABRICDIR. Agents on separate profiles read each other's work through that directory, which supports handoff patterns such as a builder writing a session note, a reviewer writing a linked review, and the builder writing a linked fix. Obsidian is an optional viewer: with ICARUSOBSIDIAN=1 the plugin adds wikilinks and daily notes, but nothing is installed in Obsidian itself.
Each entry carries a training_value of high, normal, or low so that noise is kept out of training sets. Export modes (high-precision, normal, high-volume) select which entries become training pairs; the pairs are sent to Together AI for fine-tuning, the candidate is compared with the base model on fabric-derived prompts, and it is activated only if it clears an evaluation threshold. Hermes v0.6.0+ and Python 3.10+ are required, plus a Together API key for the training tools.
Features
- Memory tools: fabricrecall (ranked retrieval), fabricwrite, fabricsearch, fabricpending, and fabric_curate
- Training tools: fabricexport, fabrictrain, and fabrictrainstatus
- Replacement-model tools: fabricmodels, fabriceval, fabricswitchmodel, and fabricrollbackmodel
- Operational tools: fabricbrief (daily brief), fabrictelemetry, fabricreport (corpus health), and fabricinit_obsidian
- Automatic hooks: session start loads SOUL, handoffs, and recent context; pre-LLM-call injects memories on topic change; post-LLM-call captures decisions; session end scores quality and writes a note
- Cross-profile sharing: multiple Hermes profiles pointed at one FABRIC_DIR see each other's entries
- Fallback model: the original model can be configured as fallback_model after a switch
- Test scripts: an end-to-end handoff smoke test and a 66-test fixture suite
