jevmemjevmem

Can I see what jevmem recalled and saved, beside my Claude Code chat?

Yes, since jevmem 0.7.5: the side pane, a second plugin from the jevmem marketplace, sits beside your Claude Code chat and shows what jevmem did for the prompt you just sent and the turn that just ended: which memory lines it gave Claude, what its guard said about a command, and what it saved, each with why, wrong and forget buttons. It reads three local files and sends nothing anywhere.

Last updated: · jevmem 0.7.6 · Install · Source on GitHub

/plugin install jevmem-pane@jevmem

It needs the jevmem command (0.7.5 or newer), a project that is turned on, and Claude Code 2.1.299 or newer. In a terminal 144 columns wide or wider it opens on its own; /jevmem opens or closes it at any width. In the desktop app's Code tab it docks beside the chat. Cursor has no pane, and Claude Code for VS Code draws none yet.

The pane sits beside your Claude Code chat and shows what jevmem did for the prompt you just sent and the turn that just ended: which memory lines it gave Claude, what its guard said about a command, and what it saved. It is a second plugin, jevmem-pane, from the jevmem marketplace. The jevmem plugin itself is unchanged and still ships no code of its own.

Install #

With the jevmem marketplace added (claude plugin marketplace add Avinash-jetwani/jevmem), in Claude Code:

/plugin install jevmem-pane@jevmem

It needs three things: the jevmem command (npm install -g jevmem, 0.7.5 or newer, since the pane reads files that version writes), a project that is turned on (jevmem setup there), and Claude Code 2.1.299 or newer. Claude Code's mod API is early access and changes between releases; the pane's tests pass on 2.1.299, 2.1.300, 2.1.301 and 2.1.302 (results). An older Claude Code ignores the pane without an error (2.1.280 and 2.1.273 run the session and never load it); 2.1.286 and 2.1.287 refuse the module because their validator did not yet follow a value handed to a function in another file of the mod, which 2.1.299 fixed.

What it shows #

The pane has three blocks, drawn again after each prompt, each guarded tool call and each turn.

Recalled for this prompt. Each line jevmem put in front of Claude for this prompt, in the order it was injected: the line's id, its kind in brackets and its text, with why, wrong and forget under it. A line the poisoning gate withheld shows as a dim row with the gate's reason. The last row counts: 2 served · 0 withheld · 0 gated · Jev 285 ms, or word match: Jev did not answer when the prompt was served by shared words instead. Before your first prompt it says no prompt yet; when no line fit, no line fits this prompt; in a project with no memory line yet, no memory lines yet; when the file on disk is another prompt's (or missing), nothing for this prompt.

The guard. The last call the guard asked about or denied in this session: the tool and the decision (Bash denied (block)), whether it was the call just made (this call) or an earlier one (its time), then each rule the guard matched with its id, score and text (xwsf9w 0.99 Never commit .env files, (unverified) for a rule not written by jevmem on this machine), and the command or edit it looked at. why shows the rule's own decision, log the guard's recent asks and denials. When the last checked call passed, a dim row says so: last call: Write allowed (no rule). Before any checked call: no checked call yet.

Saved last turn. The line the turn saved, as id [kind] text, with why, wrong and forget; supersedes <id> under it when the turn reversed an earlier line. A turn that saved nothing says why in plain words and, since 0.7.6, offers missed: after a confirm it runs jevmem missed with the prompt as you typed it, which labels the turn and adds the line: Not saved: nothing worth keeping, Not saved: small talk, Not saved: already in memory as <id>, Not saved: it read as instructions aimed at an AI, Not saved: too little of a fact in it, Not saved: not important enough, Not saved: an empty turn; a turn whose background subagents are still running says Waiting: 1 background subagent has not reported back; a decision that failed says Failed: and the error. The decision's own reason, with every score, stays behind why. From the moment you send a prompt until the decision lands the block says saving….

The buttons #

Where it shows #

What it reads, and when #

The pane reads three files the jevmem CLI writes in the project's gitignored .jevmem/ folder (docs/hooks.md) and nothing else about your project:

What it never does #

The pane sends nothing anywhere and reads no key: it reads the three files above, jevmem.config.json (to know the project is on) and .claude/settings.local.json (to find the command), and runs the jevmem command with why, forget, wrong --should-be none and guard log as you, after your yes for the two that change JEVMEM.md. Its view lives in Claude Code's session state, in memory, so a reload of the plugin keeps it; nothing of the pane is written to disk. jevmem trust, add, import and setup stay in the terminal.

How it is tested #

pane/tests/pane.test.tsx runs under claude plugin test, Claude Code's own kit, each case on the terminal and the desktop surface: 60 tests since 0.7.6 (the missed button and the session check added four; results). The files the pane reads are answered from real captures (13 files copied unchanged from e2e sessions of 2026-10-17: recall files with two, one and no lines served, the guard's deny and ask, saved, superseding and skipped decisions) and from a few hand-written shapes the captures did not produce, each named as such in pane/tests/fixtures/README.md. The cases: each block filled; each empty state; forget and wrong asking first, cancelled, then run once with the right arguments; a rule refused; an id that is not one refused before anything runs; saving… and the decision landing; the three states after the 15 s limit; the pane opening once a surface attaches or at the first prompt; /jevmem. pnpm pane:check runs claude plugin validate --strict pane and the tests on the Claude Code installed; CI runs them on a pinned Claude Code binary checked against its published checksum (ci.yml).

Limits #

The limits, in short #

Every limit, with the numbers: the FAQ.