Releases: Luneswan/claude-rework
Release list
v1.6.0
Fixes the first-run install on Windows and adds a per-account export flow.
Install, one line for the shell you are in:
cmd: pip install claude-rework && python -m claude_rework install
PowerShell: pip install claude-rework; python -m claude_rework install
macOS/Linux: pip3 install claude-rework && python3 -m claude_rework install
Windows PowerShell 5.1 has no &&, and claude-rework is not on PATH in the shell that just ran pip, so the old single line failed twice over.
Fixed
installadds its scripts directory to your user PATH itself, soclaude-reworkworks by name in any new terminal. Written throughHKCU\Environment, notsetx-setxtruncates at 1024 characters and would corrupt a long PATH. A receipt records what was added souninstallremoves ours and never your own entry. Opt out with--no-path.- The desktop app no longer reports "not found" when it is installed but has never been launched. The app is probed separately from its config, the config is created when missing, and
statusdistinguishes not installed, never launched, and connected via mcp. statusanddoctornow report whether Claude will actually list the recall skill, instead of leaving a skill with broken frontmatter looking identical to one that is not installed.
Re-running install is now also a repair
It removes our hook entries that are registered twice, point at an interpreter that no longer exists, or carry backslashes bash would eat, and drops MCP entries left behind under the pre-rename name. Another plugin's hooks and MCP entries are left alone, and your corpus, notes, activity log, tuning, redaction rules and any files you added by hand are kept byte for byte.
New
claude-rework scanreads a whole account's history in before you carry it.claude-rework exportwith no filename writesclaude-rework-<account>-<date>.zip, so two accounts' bundles can sit in one folder and still be told apart.claude-rework whoamishows the signed-in account and what the export would be called;inspectnames the account a bundle came from.install.cmdfor Command Prompt, alongside the existing PowerShell, macOS and Linux scripts.
v1.5.0
Keep your own sensitive strings out of an export
Credentials were already stripped automatically. This is the other half: the
strings that are sensitive only to you, an internal hostname, a client name, an
unreleased codename. Nothing generic can guess those, so you list them in
~/.claude/.reworkignore:
# one per line; blank lines and # comments ignored
Northwind Trading
re:\bACME-\d{4,}\b
A plain line matches literally and case-insensitively. Prefix with re: for a
regular expression. Check it before relying on it:
claude-rework redactThat prints how many times each pattern matches your history, shows examples,
reports any regex that will not compile, and names any pattern that matched
nothing. A rule you believe is active but is not is worse than no rule at all.
Patterns apply to everything a bundle carries: message text, activity records,
notes, and each project's context files. Your local index is never modified,
because redacting what you can already read on your own machine helps nobody.
The frequency map is left out of a redacted bundle entirely, so a removed term
cannot reappear as vocabulary.
Verified by checking the decompressed bundle, not the compressed bytes: a
literal term and a regex term are both absent from every member, still present
in the local index, and the bundle still imports and answers.
v1.4.0
Two limitations fixed rather than documented.
Asking in your own words
The automatic lookup used to list phrasings, so it recognised "didn't we already"
and missed almost everything else. Measured against 24 unconventional ways of
asking about past work, it caught 2.
It now matches the grammar of a retrospective question rather than a list of
phrases: memory verbs bound to self reference, retrospective adverbs, questions
about past reasons and decisions. Same measurement: 24 of 24 caught, and still 0
false positives across 30 forward-looking prompts. It also stopped firing on
"remind me to commit this", which the old pattern got wrong.
An embedding model was tried for this first and measurably failed. Averaged token
vectors encode topic, not intent, so "fix the bug I just introduced" scored
higher against the anchors than every genuine question about the past. No
threshold separated them, so it was not shipped, and the reason is recorded in
the code so nobody tries it again on intuition.
History that is not on disk
Claude Code writes transcripts to disk. The web app and the desktop app do not,
so until now their users had nothing to index.
claude-rework import-web conversations.jsonTake the data export from Claude (Settings, Privacy, Export data). Anthropic
emails a zip; pass the zip or the conversations.json inside it. Those
conversations become searchable like anything else, are tagged as coming from
the export so they are never confused with local transcripts, and importing the
same file twice adds nothing.
Searches no longer stop at the window edge
A search that finds nothing in the default 45 days now widens to your whole
history and says so. Exported conversations are months old by definition, and
anyone returning to a project after a break was outside the window too. Both
used to be told nothing was found while the answer sat just past the cutoff.
v1.3.1
Three fixes from testing every command on a machine set up the ordinary way.
Reinstalling no longer deletes your files. The installer used to remove
scripts/, tests/ and reference/ before copying, which also removed anything
you had added there and your generated test cases. It now writes the shipped
files over the top and leaves everything else alone, and says what it changed:
updated skill ~/.claude/skills/recall
0 new, 3 updated, 11 unchanged, 2 of your own file(s) left alone
Your index, notes, activity log and tuning live outside that directory and were
never involved either way.
The commands work from any terminal. python -m claude_rework now works
wherever Python does. If pip put the executable somewhere that is not on your
PATH, install and doctor detect it and print both the directory to add and
the module form to use instead. A PATH problem is reported as advice rather than
a failure, because the hooks and the MCP server use absolute interpreter paths
and never depended on PATH.
--digest no longer repeats itself. It took the three newest samples per
week, and overlapping chunks of one long message are not distinct, so the same
sentence could print three times.
v1.3.0
pip install claude-rework && claude-rework installInstall works on every Claude surface
The installer reads your machine instead of asking questions. It finds your OS,
locates your Claude directory, and connects what you have: Claude Code and its
VS Code and JetBrains extensions through four hooks, the desktop app and Cowork
through an MCP server. It installs the optional search libraries and builds your
index straight away, so you can migrate immediately after installing without
opening a session first.
There are also double-click installers for macOS and Windows, and a one-line
curl install for people without pip.
Moving to a new machine or account
claude-rework export memory.zip # old account
claude-rework import memory.zip # new oneThe bundle carries your index, every project with its real path, each project's
context files and notes, the activity log, and a profile of how you work, so the
new account knows you on its first message. It never carries settings,
credentials or tokens. Import merges rather than replaces, so running it twice
changes nothing and a colleague's bundle adds to yours.
Checking it still works
claude-rework doctor inspects every connection and reports what is wrong;
repair fixes it. It catches the failures that are otherwise silent: a hook
pointing at a Python that has moved, a backslash in a hook command that the
Windows shell destroys, an orphaned MCP entry, an index that was never built.
Fixes
Imported history was erased by the first index rebuild. Records that arrive from
another machine have no local source file, and the builder validated every record
against the file it came from, so a rebuild deleted the entire migration. They
now carry a flag and survive both incremental and full rebuilds.
Export could bundle a stale index on a fresh install, because nothing had
triggered an index build yet. It now builds first when the index is missing or
older than your transcripts.
Tested
24 end-to-end checks, including installing, breaking the interpreter path on
purpose and repairing it, exporting, importing into a second account, and
confirming that account can answer a question only the first one knew. Nine test
suites, run on Linux, Windows and macOS with Python 3.10 and 3.12.
v1.1.0 - runs on its own
What this is
Memory for Claude Code that runs on its own. Install once; after that, asking
"didn't we already fix this?" in plain English gets answered from your own
transcripts before Claude can guess. Nothing leaves your machine.
Install (one line)
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/Luneswan/claude-recall/main/install.py | python3 -
Windows (PowerShell):
iwr -useb https://raw.githubusercontent.com/Luneswan/claude-recall/main/install.py | python -
What is new since 1.0
- Four hooks, zero typing. SessionStart prints what is still open;
UserPromptSubmit looks up the past when a prompt asks about it (and only
then); PostToolUse records real work; PreCompact saves decisions to disk
before compaction can drop them. Works in the terminal, VS Code, JetBrains
and the desktop app's embedded CLI. - MCP server for the Claude desktop app and Cowork (
mcp/recall_mcp.py,
dependency-free).python install.py --mcp-configprints the config. - One-line install.
install.pybootstraps itself from GitHub when run
without the repo beside it. --this-project/--all-projects. History was always global; now it
says so, and you can narrow it.- Build lock + dedupe. Two Claude windows no longer duplicate the index;
an already-duplicated index heals itself on the next pass. Index shrank
34% on the reference machine with accuracy unchanged. - Selection prints distinct evidence first, continuations of the same
message only if budget remains.
Verified
Eight suites, every floor held: known-item 150/150, curated 12/12, stress
19/19, subcommands 11/11, capture 33/33, vectors 6/6, federation 28/28,
concurrency 5/5. Foreign machines 4/4. Optimizer 100/100. Clean-room install
into a machine that had never seen recall, graphify absent from PATH: 25/25,
including the one-line install run against this exact GitHub URL.
What is honestly not claimed
How many extra messages this buys on Pro or Max. The per-question token
reduction (~209k) is measured; the effect on a specific plan limit is not
something anyone outside Anthropic can quantify.