This page only matters if you enable the git backup feature (hooks.d/after_save/50-git-backup.sh). The default install does not push your memory anywhere — no new attack surface beyond what Claude Code already needs to run on your machine.
If you do enable git backup, read on.
"Anyone who can write
~/.remember/config.jsoncan redirect the backup remote to their own URL and silently exfiltrate every session."
True. Also true for:
~/.ssh/config— redirect yourgit pushto an attacker's host.~/.ssh/authorized_keys— grant SSH access.~/.bashrc/~/.zshrc— code execution on every shell.~/.claude/**— change which hooks Claude Code runs.~/.gitconfig—[core] sshCommand = ...runs arbitrary code on every git operation.
If something can write to your home directory as your user, you are already compromised. The threat model "attacker with write-access to $HOME" is game over independent of this plugin. Treat ~/.remember/ with the same care you give ~/.ssh/ — that's the bar, and it's not a higher one.
These are the things that only apply once you enable the feature.
That includes project paths, session summaries, identity files, any data the model wrote into memory, and any content you accidentally pasted into a session. If you point the remote at a service you don't fully trust, you're streaming your work history there continuously.
Mitigation: point the remote at a private repository you own. GitHub private, self-hosted Gitea, a git init --bare on your own server — anything where you control access.
Without protection, an attacker writing ~/.remember/config.json could swap the remote URL between sessions and the next save would silently push to their host.
Mitigation built into the plugin: the backup hook validates the remote URL on every push and aborts if it has changed from the value originally set. To intentionally change the remote, set git_backup.allow_remote_change in config (one-shot opt-in). See README.md for the option.
Same as Claude Code's own hook directory. Anything you (or an installed plugin) drops in hooks.d/ runs with your user privileges. The plugin cache at ~/.claude/plugins/cache/ is user-writable by design — a malicious plugin can add hooks there.
Mitigation: this is install-time trust. Only install plugins you've reviewed. Same rule as npm install, pip install, or any package manager pulling code that runs on your machine.
If you want git backup with reasonable defaults:
# 1. Restrictive permissions (same as ~/.ssh)
chmod 700 ~/.remember
chmod 700 ~/.claude/plugins/cache
# 2. Point backup at a private repo you own
git init --bare ~/backups/claude-remember.git # or use a private GitHub/Gitea/etc.
# Then set git_backup.remote in ~/.remember/config.json
# 3. Verify the validation guard is active (default: on)
# git_backup.allow_remote_change is false unless you explicitly flip itAfter this:
- Data leaves your machine only to a repo you control.
- The remote can't silently change without
allow_remote_change. - The home-dir attack surface is no worse than
~/.ssh/.
Enabling git backup means: every memory save is pushed to the remote you configured. That's it. Everything above is about making sure "the remote you configured" stays the remote you configured.