Handoff: where Everist stands and how to pick it up
Last verified against the code: 2026-11-14 (0.10.0)
Written at the end of 2026-10-25 so that the owner, or any agent, can pick up exactly here. Read this first, then
ROADMAP.md (north star, milestones) and GOALS.md (goals A1–A10).
The one command that says where things stand is everist goals; it reads the evidence, not this page.
State in one paragraph
Everist is memory for AI agents that learns from surprises (corrections, failed calls) and delivers each lesson at
the moment it applies. 0.10.0 (2026-11-14) renamed it from Remem to Everist (the second rename: Remem turned out to be the name of several other memories for coding agents); it changed no behaviour. 0.9.1 (2026-11-14) made memories fade at the paper's rate (decay had compounded nightly). 0.9.0 (2026-11-13) renamed it from Open Memory and moved the site to everist.acific.com in a new design; it changed no behaviour and is not yet released by scripts/release-check.py (the Linux box runs it since 2026-11-14; what the check still lacks is in ROADMAP, "Where we left off"). 0.8.1 was released: 0.8.0's
experiments, re-run on the final reminder, and 0.8.1's adapters at 7B on the GPU. 5 of 10 goals are met (A1, A2, A3, A7, A10; A7 since 2026-11-14), A8 is not met, A5 and A6 are collecting
evidence, and A4 and A9 wait on the owner.
What 0.8.0 found (paper §7.4; every run in results/runs/)
- Why memory up front hurts: one line. Pooled over Llama 3.2 3B, Gemma 3 4B, Qwen3-30B-A3B and Mistral 7B, the
delegation tally ("the agent offered to act instead of acting 17 times…") raised hand-backs from 20% to 34% of
replies (p < 0.0001), as much as the whole memory; length, position, the header, unrelated lessons and the person's
words did not. Agents no longer see the tally (
render.py); the owner still does, inmorning.md. - The Stop reminder was making agents reckless. Where asking is right, models asked 42% of the time with no
memory and 16% after 0.7.0's reminder (they published a post legal was reviewing, force-pushed before being told
to). Fixed and installed on the owner's machine the same day: a gate (
transcripts.needs_person: no reminder when the person's message says only they have what is needed) and the boundary in the reminder's words (prime.reminder, the one wording used by the hook, the proxy and the experiments). Re-run: 39% → 37% (A10 met), and it still cuts hand-backs where acting is right: 31% → 12% (p < 10⁻¹², four families; A1 met). The lesson in the reminder adds nothing over a bare nudge (12% vs 11%): memory's job is deciding whether and when to intervene. - It holds with tools. In agent loops (simulated shell and editor), the reminder cut final hand-backs from 32% to 14% (p = 0.001, three families; A2 met).
- Memory in the weights compiles a disposition, not a judgement. A LoRA adapter trained on reminder pairs
(
scripts/adapter.py, Qwen2.5-1.5B, CPU) handed back 5% with no reminder (base 37%), but stopped asking where asking was right (0 of 18). Adding boundary pairs made it ask more everywhere (63%); a 30% share gave 47% / 8 of 18. At 7B on the GPU (0.8.1), a 30% share gave 26 → 20 of 100 with asking kept (13 → 14 of 30), one short of the target; more "act" pairs tipped it to 0 of 100 and 2 of 30. Training moves how readily the model asks, not when. A8 is not met. - A stated preference up front helps ("the user prefers that you act": 12%, p < 0.001), but rewordings are model-dependent; nothing about delegation goes up front now.
Re-running the evidence
Every number above can be re-made on this machine (10–40 minutes per command; results land in
~/.everist/experiments/, and everist goals reads them):
export EVERIST_LLM_URL=http://localhost:11434/v1
for m in llama3.2:3b gemma3:4b hf.co/unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF:Q4_K_M mistral:7b; do
for kind in behaviour mechanism boundary; do EVERIST_LLM_MODEL=$m everist experiment $kind -n 3; done
done
for m in llama3.2:3b hf.co/unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF:Q4_K_M mistral:7b; do
EVERIST_LLM_MODEL=$m everist experiment loop -n 2
done
everist experiment pairs && python scripts/adapter.py --model Qwen/Qwen2.5-7B-Instruct --n 5 --boundary-share 0.3 # in the GPU venv
cp ~/.everist/experiments/*.json results/runs/ # keep them in the repo
Next, in order
| # | What | Goal | Who | How |
|---|---|---|---|---|
| 1 | Frontier models | A4 | owner: an API key; agent: the runs | EVERIST_LLM_URL=https://api.anthropic.com/v1 EVERIST_LLM_MODEL=<model> EVERIST_LLM_KEY=<key> everist experiment (then loop, boundary, mechanism); the most important missing evidence |
| 2 | Transfer between machines | A9 | owner: one paste | everist share invite in the owner's own terminal on the Linux box (it prints a token), the line pasted on the Mac |
| 3 | Memory in the weights: teach when, not how often | A8 | agent | the GPU path works (0.8.1, 7B in 20–30 min); next: contrast pairs that hold the situation fixed and vary only whether the person has what is needed, a judge of asking better than a question mark (asks phrased as statements are missed), and real pairs from ~/.everist/pairs.jsonl |
| 4 | Real use | A5, A6 | owner: daily work; agent: weekly | everist measure and everist goals weekly; 20 reminders in each arm |
| 5 | More repeated corrections for the comparison | A7 | done | met on 2026-11-14: 10 cases, 42× normal memory's catches per item, 0 wrong alarms (everist compare -k 20) |
Owner decisions still open
- The name is decided: Everist (the owner, 2026-11-14: "Let's call it everist"). It was Open Memory until 0.9.0 (collided with mem0's "OpenMemory" MCP server) and Remem in 0.9.x (several other memories for coding agents use that name). Checked before choosing:
everistis free on PyPI, npm, crates.io and Homebrew; the US trademark register has one live EVERIST application, a Canadian beauty brand's, limited to cosmetics and wellness; a health app at everist.ai uses the name with no filing. Not a lawyer's opinion. The site is at everist.acific.com and the repository is acific/everist since the same day. Still open under it: publishingeveristto PyPI to hold the name, and the Worker's name (stillopenmemory). - Launch: opening the repository and the commons (criteria in ROADMAP.md: A1–A4 met, A5 at 20 per arm).
Where things are
| Thing | Where |
|---|---|
| Code | everist/ (stdlib only); new in 0.8.0: goals.py, experiments in experiment.py, needs_person in transcripts.py, reminder and last_prompt in prime.py |
| Adapter training | scripts/adapter.py; needs a venv with torch, transformers, peft, trl. On the GPU (Radeon 8060S, gfx1151) take AMD's build, as the stock ROCm wheels crash: uv venv -p 3.12; uv pip install --index-strategy unsafe-best-match --index-url https://rocm.nightlies.amd.com/v2/gfx1151/ --extra-index-url https://pypi.org/simple "torch==2.12.0a0+rocm7.13.0a20260411"; uv pip install transformers==5.20.2 peft==0.21.2 trl==1.16.0 datasets accelerate. On CPU: torch from https://download.pytorch.org/whl/cpu |
| Every run | results/runs/ (copied from ~/.everist/experiments/), results/adapters/*/result.json, results/pairs-2026-10-25.jsonl |
| The owner's store | ~/.everist/ on the Linux box (memory.db, primed.jsonl, experiments/, adapters/) |
| Hooks | ~/.claude/settings.json (SessionEnd, UserPromptSubmit, Stop, PreToolUse), wired by everist setup; backup settings.json.before-everist |
| Release rules | AGENTS.md (rule 17: scripts/release-check.py must pass before anything is called released) |
| Lab log | ~/Strange/handbook/LOG.md |
Notes for whoever picks this up
- The holdout puts half of all sessions in the control arm by a hash of the session id. So far only two real sessions have hit a reminder, and both landed in the control arm by chance (one in four), which is why A5 shows 0 shown. Not a bug; it needs more sessions.
- Tests that call the hooks with
record=Truewrite to the realprimed.jsonlifEVERIST_HOMEis not set; set it, or remove the rows (this happened once on 2026-10-25 and was cleaned). - The gate (
needs_person) was written with the boundary scenarios in view: a fit, not a test. It caught 5 of 6 held-out ones. Score it on real messages before trusting it further. - Mistral 7B through Ollama almost never calls tools, so its loop result is close to a single-reply test.