--resume 参数

恢复特定会话

概述

--resume 标志允许您恢复之前保存的特定会话。这对于继续中断的工作、回顾历史对话或在不同设备间同步会话非常有用。

标志语法

claude --resume <会话ID>

使用场景

1. 恢复中断的会话

# 恢复之前中断的会话
claude --resume session-abc123

# 继续之前的工作

2. 回顾历史对话

# 查看并恢复历史会话
claude --resume session-xyz789
# 回顾之前的讨论

3. 在不同设备间同步

# 在设备 A 上保存会话
claude --session-id my-session

# 在设备 B 上恢复会话
claude --resume my-session

4. 分支开发

# 从主会话创建分支
claude --resume main-session
# 在新分支上工作
claude --session-id branch-session

高级用法

1. 与其他标志组合

# 恢复会话 + 指定模型
claude --resume session-abc123 --model opus

# 恢复会话 + 自定义系统提示
claude --resume session-abc123 --system-prompt "你是一位 Python 专家"

# 恢复会话 + 限制工具
claude --resume session-abc123 --allowedTools "Read" "Grep"

2. 会话管理

#!/bin/bash
# session-manager.sh

# 列出所有会话
claude --list-sessions

# 恢复特定会话
SESSION_ID=$1
claude --resume "$SESSION_ID"

3. 会话备份

#!/bin/bash
# backup-session.sh

SESSION_ID=$1
BACKUP_DIR="backups/sessions"

# 创建备份目录
mkdir -p "$BACKUP_DIR"

# 备份会话
claude --export-session "$SESSION_ID" > "$BACKUP_DIR/$SESSION_ID.json"

echo "会话已备份到 $BACKUP_DIR/$SESSION_ID.json"

4. 会话迁移

#!/bin/bash
# migrate-session.sh

OLD_SESSION=$1
NEW_SESSION=$2

# 导出旧会话
claude --export-session "$OLD_SESSION" > temp-session.json

# 导入为新会话
claude --import-session temp-session.json --session-id "$NEW_SESSION"

# 清理临时文件
rm temp-session.json

echo "会话已迁移从 $OLD_SESSION$NEW_SESSION"

实际应用示例

示例 1: 项目开发会话

#!/bin/bash
# project-session.sh

PROJECT=$1
SESSION_ID="project-$PROJECT-$(date +%Y%m%d)"

# 检查会话是否存在
if claude --session-exists "$SESSION_ID"; then
    echo "恢复会话: $SESSION_ID"
    claude --resume "$SESSION_ID"
else
    echo "创建新会话: $SESSION_ID"
    claude --session-id "$SESSION_ID"
fi

示例 2: 多阶段任务

#!/bin/bash
# multi-stage-task.sh

TASK=$1

# 阶段 1:分析
echo "阶段 1:分析"
claude --session-id "$TASK-stage1" -p "分析需求"

# 阶段 2:设计
echo "阶段 2:设计"
claude --resume "$TASK-stage1" -p "设计系统"

# 阶段 3:实现
echo "阶段 3:实现"
claude --resume "$TASK-stage2" -p "实现功能"

示例 3: 代码审查会话

#!/bin/bash
# code-review-session.sh

REVIEW_ID="review-$(date +%Y%m%d-%H%M%S)"

# 开始审查
echo "开始代码审查: $REVIEW_ID"
claude --session-id "$REVIEW_ID" -p "开始代码审查"

# 恢复审查
echo "恢复代码审查: $REVIEW_ID"
claude --resume "$REVIEW_ID"

示例 4: 学习会话

#!/bin/bash
# learning-session.sh

TOPIC=$1
SESSION_ID="learning-$TOPIC-$(date +%Y%m%d)"

# 检查是否有学习会话
if [ -f "sessions/$SESSION_ID.json" ]; then
  echo "继续学习: $TOPIC"
  claude --resume "$SESSION_ID"
else
  echo "开始学习: $TOPIC"
  claude --session-id "$SESSION_ID" -p "学习 $TOPIC"
fi

会话生命周期

1. 创建会话

# 创建新会话
claude --session-id my-new-session

# 会话自动创建并保存

2. 恢复会话

# 恢复现有会话
claude --resume my-existing-session
# 继续之前的对话

3. 更新会话

# 恢复会话并继续对话
claude --resume my-session

# 新的对话会更新会话

4. 删除会话

# 删除会话
claude --delete-session my-session

会话管理技巧

1. 命名约定

# 使用描述性的会话 ID
claude --session-id "project-auth-module-20240115"
claude --session-id "bugfix-login-issue-20240115"
claude --session-id "learning-python-async-20240115"

2. 会话分组

# 使用前缀分组
claude --session-id "dev-auth-module"
claude --session-id "dev-user-module"
claude --session-id "test-auth-module"

3. 会话归档

#!/bin/bash
# archive-sessions.sh

ARCHIVE_DIR="archive/sessions"
mkdir -p "$ARCHIVE_DIR"

# 归档旧会话
for session in $(claude --list-sessions | grep "2023"); do
    claude --export-session "$session" > "$ARCHIVE_DIR/$session.json"
    claude --delete-session "$session"
done

echo "旧会话已归档"

4. 会话搜索

#!/bin/bash
# search-sessions.sh

KEYWORD=$1

# 搜索包含关键词的会话
claude --list-sessions | grep "$KEYWORD"

最佳实践

1. 定期保存会话

# 为重要任务创建会话
claude --session-id "important-task-$(date +%Y%m%d-%H%M%S)"

2. 使用有意义的会话 ID

# 好的会话 ID
claude --session-id "project-api-design-20240115"
# 不好的会话 ID
claude --session-id "session1"

3. 备份重要会话

#!/bin/bash
# backup-important-sessions.sh

BACKUP_DIR="backups/sessions"
mkdir -p "$BACKUP_DIR"

# 备份所有会话
for session in $(claude --list-sessions); do
    claude --export-session "$session" > "$BACKUP_DIR/$session.json"
done

echo "所有会话已备份"

4. 清理旧会话

#!/bin/bash
# cleanup-old-sessions.sh

# 删除 30 天前的会话
for session in $(claude --list-sessions | grep "2023"); do
  claude --delete-session "$session"
done

echo "旧会话已清理"

常见问题

问题答案
如何查看所有可用的会话?使用 claude --list-sessions 命令列出所有会话。
会话会自动保存吗?是的。会话会自动保存,除非显式删除。
会话有大小限制吗?有一定的限制。如果会话太大,建议创建新会话。
可以导出会话吗?可以。使用 claude --export-session <会话ID> 导出会话。
可以在不同设备间共享会话吗?可以。导出会话后,在另一个设备上导入。

与其他标志的组合示例

1. 完整的项目开发流程

#!/bin/bash
# project-development.sh

PROJECT=$1

# 创建项目会话
SESSION_ID="project-$PROJECT-$(date +%Y%m%d)"

# 阶段 1:需求分析
claude --session-id "$SESSION_ID" -p "分析需求"

# 阶段 2:设计
claude --resume "$SESSION_ID" -p "设计系统"

# 阶段 3:实现
claude --resume "$SESSION_ID" -p "实现功能"

# 阶段 4:测试
claude --resume "$SESSION_ID" -p "生成测试"

2. 学习流程

#!/bin/bash
# learning-flow.sh

TOPIC=$1
SESSION_ID="learning-$TOPIC-$(date +%Y%m%d)"

# 检查是否有学习会话
if [ -f "sessions/$SESSION_ID.json" ]; then
  echo "继续学习: $TOPIC"
  claude --resume "$SESSION_ID"
else
  echo "开始学习: $TOPIC"
  claude --session-id "$SESSION_ID" -p "学习 $TOPIC"
fi

3. Bug 修复流程

#!/bin/bash
# bug-fix-flow.sh

BUG_ID=$1
SESSION_ID="bugfix-$BUG_ID-$(date +%Y%m%d)"

# 开始修复
claude --session-id "$SESSION_ID" -p "分析 bug: $BUG_ID"

# 继续修复
claude --resume "$SESSION_ID" -p "实现修复"

# 验证修复
claude --resume "$SESSION_ID" -p "验证修复"

总结

--resume 标志提供了一种恢复之前会话的方式。通过使用此标志,您可以:

  • 继续中断的工作
  • 回顾历史对话
  • 在不同设备间同步会话
  • 实现分支开发

合理使用 --resume 可以帮助您更好地管理和组织工作,特别是在需要长时间或分阶段完成任务时。

On this page