Local and remote

How the mode is chosen, and what moves when you switch.

rememd picks between local and remote based on this order (highest priority first):

  1. REMEMD_MODE environment variable - local or remote. Always wins when set. Useful for one-off overrides.
  2. ~/.recall/mode file - written by rememd join and rememd mode set. Survives app restarts, the agent-spawned subprocesses, and shell-env drift.
  3. Default: local.

Switching modes

Via CLI:

rememd mode show           # print current mode + where it came from
rememd mode set remote     # persist remote
rememd mode set local      # persist local

Via one-shot env var:

REMEMD_MODE=local rememd open   # use local for this invocation only

Via rememd join:

rememd join automatically persists mode = remote after a successful join, so you don't need a second command.

Why persistence matters for your agent

When an agent spawns the MCP server as a subprocess, it inherits the environment of whatever shell started the agent. If your mode lives only in a shell rc file, the agent processes can silently write to a different mode than the app does. The persisted ~/.recall/mode file plus the explicit env block in the agent's MCP config (written by the first-launch configurator) eliminate that class of surprise.

Local data is never deleted by remote mode

If you use remote for a month and then run rememd mode set local, your old ~/Recall/ tree is still there, exactly as you left it. Remote and local use different storage paths (~/Recall/ vs ~/.recall/cache/), so they don't stomp on each other.