Load your session context from a previous save. Reads state files, shows what's changed since, and suggests the next action.
This command pairs with /save to implement structured session continuity. Claude Code's --resume restores conversation history, but TodoWrite task state does not persist by design.
This is intentional—Claude Code treats each session as isolated. TodoWrite tasks are stored at ~/.claude/todos/[session-id].json and deleted when the session ends. The philosophy is that persistent state belongs in files you control.
From Anthropic's Effective Harnesses for Long-Running Agents:
"Every subsequent session asks the model to make incremental progress, then leave structured updates."
/load reads those structured updates and restores your working context:
--resumeclaude --resume |
/load |
|---|---|
| Restores conversation history | Restores task state from files |
| Internal storage | Git-trackable files |
| Local to your machine | Portable across machines |
| Automatic | Explicit (you control when) |
Use both together: claude --resume for conversation context, /load for task state.
$ARGUMENTS
If no arguments, read from default .claude/ location.
Read State Files
.claude/claude-state.json.claude/claude-progress.mdAnalyze Changes Since Save
Restore TodoWrite State
Suggest Next Action
ls -la .claude/claude-state.json .claude/claude-progress.md 2>/dev/null
If missing, report:
⚠ No saved state found in .claude/
To create one, use: /save
Parse .claude/claude-state.json:
Compare save timestamp to current time:
# Commits since save
git log --oneline <last_commit>..HEAD
# Current status
git status --short
Use TodoWrite tool to restore tasks:
completed → status: "completed"in_progress → status: "in_progress"pending → status: "pending"# Session Loaded
**Saved**: <timestamp> (<relative time>)
**Branch**: <branch>
## Since Last Save
- <N> new commits
- <M> files modified
- <time> elapsed
## Restored Tasks
### In Progress
- [ ] Task that was being worked on
### Pending
- Task 1
- Task 2
### Completed (this session)
- [x] Previously completed task
## Notes from Last Session
> <any notes saved>
## Suggested Next Action
Based on your in-progress task: **<task name>**
<Context or suggestion based on what was being worked on>
# Basic load
/load
# Load from specific directory
/load path/to/project
# Load with verbose git log
/load --verbose
| Flag | Effect |
|---|---|
--verbose |
Show full git log since save |
--no-restore |
Show state without restoring TodoWrite |
--clear |
Clear saved state after loading |
⚠ No saved state found
This could mean:
1. You haven't saved yet (use /save)
2. Wrong directory (check pwd)
3. State files were deleted
To start fresh, just begin working normally.
⚠ Saved state is 12 days old
A lot may have changed. Consider:
1. Review git log manually
2. Start fresh if context is lost
3. Load anyway with: /load --force
⚠ Branch changed since save
Saved branch: feature/old-branch
Current branch: feature/new-branch
The saved state may not be relevant. Options:
1. Switch back: git checkout feature/old-branch
2. Load anyway (tasks may still apply)
3. Clear and start fresh: /load --clear
These commands form a pair:
Session 1:
[work on tasks]
/save "Stopped at auth module"
Session 2:
/load
→ Shows: "In progress: Auth module refactor"
→ Notes: "Stopped at auth module"
→ Suggests: "Continue with auth module testing"
--no-restore to preview without changing state--clear