★ Open source · github.com/yizhiyanhua-ai/fireworks-skill-memory→
Open-source · Claude Code & Codex

Your agent's memory, finally persistent.

Per-skill experience memory that makes Claude Code and Codex smarter with every session. Session 1 fixes it, Session 2 forgets it, Session 3 redoes it — not anymore. Mistakes get distilled and re-injected before they happen again.

~ install in one line
curl -fsSL https://raw.githubusercontent.com/yizhiyanhua-ai/fireworks-skill-memory/main/install.sh | bash

then type /hooks in Claude Code — done

per-skillSCOPED MEMORY
<5msINJECTION
HaikuAUTO-DISTILL
9PRE-LOADED
Why it exists

Every coding-agent session starts from zero.

The same API mistakes, broken call sequences, and forgotten proxy configs repeat endlessly because the runtime has no durable memory between sessions. fireworks-skill-memory fixes that — without touching the model.

🎯

Per-skill memory, not one big dump

Each skill gets its own KNOWLEDGE.md; only the relevant skill's lessons are injected, keeping the context window clean. Two layers: global/ + skills/<name>/.

🤖

Auto-distillation via Haiku

At session Stop (async), Haiku reads the transcript and distills 1–3 new lessons automatically. No manual curation, never blocks you.

⚡

Pre-execution injection

PreToolUse fires before a Skill call, so Claude sees past lessons during planning — not after it's already made the mistake.

🔁

Two runtimes, one shared core

memory_core/ is shared; claude_runtime.py and codex_runtime.py are thin adapters. Same knowledge, accessible from both.

🛡️

Pure Harness-layer extension

Never modifies the model, never touches your prompts, never intercepts input. Hooks into exactly two lifecycle points. <5ms injection, pure file I/O.

📦

Starter knowledge out of the box

Pre-loaded KNOWLEDGE.md for 9 official skills (browser-use, voice, find-skills, hookify, superpowers…) — works immediately, no training period.

How it works

Mistake → saved → injected → keeps improving.

Architecture: inject lessons before skill calls, distill new lessons at session stop
1

Install

One curl command, then /hooks in Claude Code. Hooks auto-register.

2

Work normally

When Claude reads any SKILL.md, past lessons for that skill inject into context (<5ms). Errors during tool calls get captured to a session seed file.

3

Session ends → Haiku distills

The async Stop hook reads the transcript, distills 1–3 new lessons, and merges them into the skill's KNOWLEDGE.md (max 100 entries, LRU-style eviction by usage).

4

Next session inherits it all

The lesson is already there before Claude responds. The loop compounds — every session, smarter than the last.

FAQ

Questions, answered.

Does it modify the model or my prompts?
No. It's a pure Harness-layer extension — it never modifies the model, never touches your prompts, never intercepts input. It hooks into exactly two lifecycle points (PostToolUse on Read, Stop async) and does pure file I/O in under 5ms.
Does it work with Codex too?
Yes. memory_core/ is shared; Claude Code uses hooks, Codex uses an explicit inject / checkpoint / flush CLI. Same knowledge, both runtimes. Memory defaults to $CODEX_HOME/memories/fireworks-skill-memory/ for Codex.
How are lessons kept from bloating?
Each lesson is stamped [YYYY-MM] and [HIT:N] (usage counter). Active injection serves the top-20 by HIT count, not the whole file. Eviction prioritizes low-frequency + old entries, capped at 100 per skill.
What does it cost to run?
Distillation uses Haiku through your existing Claude Code auth (a few hundred tokens per session, async, never blocks). A null distiller backend is available if you want zero model calls — manual lessons only.
Is my data sent anywhere?
No. Everything stays on your machine — no cloud, no uploads. The distillation prompt explicitly excludes credentials.
Is it free?
MIT, open source, runs locally. If it makes your agent smarter, consider sponsoring.