/pickup — resume from a handoff
Search string (optional): $ARGUMENTS
Find the matching handoff file in the store ($HANDOFF_DIR if set, otherwise
~/.claude/handoffs, the same location /handoff writes to), load it, and continue the work as if
the break never happened. Handoffs from many projects live side by side, so match carefully.
Steps
List the store, newest first:
STORE="${HANDOFF_DIR:-$HOME/.claude/handoffs}" ls -t "$STORE"/*.md 2>/dev/nullIf the directory is empty or missing, tell the user there are no handoffs yet (they create one with
/handoff) and stop.Select the file:
- No
$ARGUMENTS: show the available handoffs (slug + date, newest first) and ask which to resume. Stop and wait. - With
$ARGUMENTS: case-insensitively match the string against the filenames:ls -t "$STORE"/*.md 2>/dev/null | grep -i -- "<string>"- 1 match: use it.
- Several matches: use the most recent (top of the
-tlist), but list the others by name so the user can redirect you if you guessed wrong. - 0 matches: say so, show all available handoffs, and ask. Stop and wait.
- No
Read the selected file in full with the Read tool.
Re-verify before acting — handoffs reflect a past moment. Confirm referenced files still exist, and check whether any noted dev server / process is still running (e.g.
curlthe URL,lsof -ti:PORT) before assuming the environment is as described. Flag anything that drifted.Recap, then continue. Give the user a tight recap: the title, current state in one or two lines, and the immediate next step from the file's "Next steps." Then pick up that next step — don't wait for permission unless the next step is a decision that's genuinely theirs.
Rules
- Match on filename/slug, not file contents — slugs are designed for this.
- Prefer the most recent match when ambiguous; surface the alternatives rather than silently choosing.
- If the handoff's environment notes are stale (server down, file moved), say so plainly and adapt rather than acting on outdated assumptions.
- Keep the recap short — the user wrote the handoff (or you did); they need the launchpad, not a re-read.