Skip to content

Releases: Luneswan/claude-rework

v1.6.0

Choose a tag to compare

@Luneswan Luneswan released this 03 Sep 16:08

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

  • install adds its scripts directory to your user PATH itself, so claude-rework works by name in any new terminal. Written through HKCU\Environment, not setx - setx truncates at 1024 characters and would corrupt a long PATH. A receipt records what was added so uninstall removes 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 status distinguishes not installed, never launched, and connected via mcp.
  • status and doctor now 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 scan reads a whole account's history in before you carry it.
  • claude-rework export with no filename writes claude-rework-<account>-<date>.zip, so two accounts' bundles can sit in one folder and still be told apart.
  • claude-rework whoami shows the signed-in account and what the export would be called; inspect names the account a bundle came from.
  • install.cmd for Command Prompt, alongside the existing PowerShell, macOS and Linux scripts.

v1.5.0

Choose a tag to compare

@Luneswan Luneswan released this 02 Sep 19:02

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 redact

That 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

Choose a tag to compare

@Luneswan Luneswan released this 02 Sep 16:08

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.json

Take 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

Choose a tag to compare

@Luneswan Luneswan released this 02 Sep 15:46

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

Choose a tag to compare

@Luneswan Luneswan released this 02 Sep 14:51
pip install claude-rework && claude-rework install

Install 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 one

The 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

Choose a tag to compare

@Luneswan Luneswan released this 02 Sep 00:44

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-config prints the config.
  • One-line install. install.py bootstraps 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.