[FEATURE] Unarchiving a Claude Desktop session by editing the session file

Resolved 💬 2 comments Opened Jul 3, 2026 by MisterDefender Closed Jul 7, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

Description

Claude Desktop lets you archive sessions, but there's no visible way to unarchive one from the UI. If a session is archived (accidentally, or via auto-archive-on-PR-merge), the only recovery path I found was to quit the app and manually flip "isArchived":truefalse in the session's JSON file.

Proposed Solution

Current Workaround

  1. Fully quit Claude (otherwise the app overwrites the edit on its next save).
  2. Edit ~/Library/Application Support/Claude/claude-code-sessions/<...>/local_<sessionId>.json.
  3. Change "isArchived":true to "isArchived":false.
  4. Relaunch Claude — the session reappears.

To find the right file:

cd ~/Library/Application\ Support/Claude/claude-code-sessions
grep -rl '"isArchived":true' .          # list archived sessions
grep -rl '"title":"YOUR TITLE"' .        # or match by session title


### Quit Claude fully first (otherwise the app may overwrite your edit on its next save), then run this script. It backs up each file to your Desktop before changing anything:
```bash
#!/bin/bash
set -euo pipefail

# Add one or more session file paths here:
FILES=(
  "$HOME/Library/Application Support/Claude/claude-code-sessions/<dir>/<dir>/local_<sessionId>.json"
)

BACKUP_DIR="$HOME/Desktop/claude-session-backups-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BACKUP_DIR"

for f in "${FILES[@]}"; do
  [[ -f "$f" ]] || { echo "Missing file: $f"; exit 1; }
  cp "$f" "$BACKUP_DIR/"
  echo "Backed up: $f"
done

for f in "${FILES[@]}"; do
  count=$(grep -o '"isArchived":true' "$f" | wc -l | tr -d ' ')
  [[ "$count" == "1" ]] || { echo "Expected one isArchived:true in $f, found $count. Aborting."; exit 1; }
  sed -i '' 's/"isArchived":true/"isArchived":false/' "$f"
  echo "Unarchived: $f"
done

echo "Done. Backups in: $BACKUP_DIR — relaunch Claude to see the sessions."

Alternative Solutions

_No response_

Priority

Critical - Blocking my work

Feature Category

File operations

Use Case Example

_No response_

Additional Context

_No response_

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗