Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>AutoSaveChat 聊天输入框内容自动保存和恢复New to Visual Studio Code? Get it now.
AutoSaveChat 聊天输入框内容自动保存和恢复

AutoSaveChat 聊天输入框内容自动保存和恢复

dengkang911

|
1 install
| (0) | Free
为 VS Code 聊天(Copilot Chat)输入框提供完整草稿保护:自动实时保存未发送内容(文字 + 图片 / 文件附件),重开窗口或切换项目后自动恢复(约 1~2 秒);同一项目内按会话分别保存、互不覆盖;另含手动快照兜底。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

AutoSaveChat 聊天输入框内容自动保存和恢复

为 VS Code 聊天(GitHub Copilot Chat)输入框提供零操作的完整草稿保护:自动实时保存你未发送的内容(文字 + 粘贴的截图 + 文件附件),重开窗口 / 切换项目 / 切换会话后自动完整恢复(切换后约 1~2 秒还原——恢复需要一点点时间,不是瞬间完成),不需要任何按键、点击或确认。

  • 自动保存:后台监视 VS Code 自己的聊天会话存储,打字、贴图、挂文件的每一刻都会被转存到独立保险箱(按项目 + 会话分桶,同一项目内多个会话互不覆盖);崩溃、重载、关机都不丢(最多丢最近约 1 秒的输入)。
  • 自动恢复:打开 VS Code 或切换项目后,若聊天输入框为空且上次离开时有未发送草稿,自动把文字 + 附件原样放回到对应会话的输入框——约 1~2 秒后出现(不是瞬间完成;不会自动发送)。
  • 按会话隔离:同一项目里的不同聊天会话,草稿各自保存、互不覆盖(回到哪个会话,草稿就回哪个会话);项目整体移动 / 改名视为新项目。
  • 绝不打扰:输入框已有内容时绝不覆盖;只有"输入框为空"才回填;附件直接放回输入框,不占用、不影响你的剪贴板。
  • 手动兜底:原有快捷键快照 / 历史快照 / 剪贴板保存等命令全部保留。

工作原理(为什么能"零操作")

VS Code 的聊天会把未发送的输入状态(草稿文字 + 附件)实时写进工作区存储下的会话文件:

%APPDATA%\Code\User\workspaceStorage\<工作区哈希>\chatSessions\<会话>.jsonl

扩展用文件监视(fs.watch + 5 秒兜底轮询)盯着这些文件,解析新增记录即可拿到:

内容 形式
文字草稿 纯文本
粘贴的图片 完整 base64 数据(解码即原图)
文件附件 磁盘路径(备份时另存一份副本)

随后立即转存到独立保险箱(不依赖 VS Code 内部存储):

%APPDATA%\AutoSaveChat\drafts\<项目名>-<短哈希>\sessions\<会话>.json   ← 每个会话各自的草稿(文字 + 附件清单)
%APPDATA%\AutoSaveChat\drafts\<项目名>-<短哈希>\attachments\           ← 图片与文件副本(多会话共享、按内容去重)

恢复流程(窗口打开 / 切换项目后约 1~2 秒开始,全程自动):

  1. 只读检查聊天输入框是否存在且为空(Windows UI Automation 一次性查询,无常驻进程);
  2. 文字:通过 VS Code 官方命令放回输入框;
  3. 图片 / 文件:直接作为附件放回输入框——输入框中的剪贴板内容(如粘贴的截图)还原后会变成相同内容的临时文件,避免还原影响剪贴板(全程不占用、不修改系统剪贴板)。

多重保险:窗口必须在前台、聊天输入框必须存在且为空——任一不满足就等下一轮重试,绝不覆盖。


行为规则

场景 行为
离开时输入框里有未发送草稿(文字 / 附件) 下次打开该项目窗口后自动回填到对应会话(约 1~2 秒后出现)
离开前已发送或清空输入框 下次不恢复(离开时本来就是空的)
打开窗口时输入框已有内容 绝不覆盖(VS Code 原生恢复的、或你已开始输入的都算)
同一项目多个会话 / 多窗口 每个会话一份草稿、互不覆盖(同一会话多处打开时共用该会话的一份,最后写入生效)
空窗口(没有打开文件夹) 草稿同样按会话划分,共用"无项目"草稿桶
恢复时窗口不在前台 等你切回 VS Code 后再恢复;超过 5 分钟放弃本次(草稿保留,下次再试)
聊天面板一直没打开 不强行打开面板;面板打开后会自动回填(限窗口打开后 5 分钟内)

附件恢复能力

附件类型 能否恢复 说明
粘贴的截图 / 图片 ✅ 完整恢复 备份的是原图数据;还原后是相同内容的临时文件(附件)
拖入 / 引用的文件 ✅ 恢复引用 文件仍在磁盘(或备份副本仍在)即可;文件已删除 / 移动时跳过并记录日志
其它类型 ⚠️ 尽力 会保留记录;无法自动重建时不影响文字与其它附件

设置

设置项 默认 说明
autoSaveChat.autoCapture true 自动监视会话存储、实时保存草稿
autoSaveChat.autoRestore true 打开窗口 / 切换项目后自动回填草稿
autoSaveChat.restoreAttachments true 回填时恢复附件(图片 / 文件直接附加到输入框,不占用剪贴板)
autoSaveChat.notifyOnStartup true 手动快照的启动提醒(自动回填生效时不会打扰)
autoSaveChat.maxSnapshots 20 手动快照数量上限(1–100)
autoSaveChat.snapshotBeforeRestore true 手动回填快照前,先捕获当前输入框内容

手动兜底命令(原有能力,保留)

场景 操作
捕获当前输入框快照 Ctrl+Alt+S(可在 键盘快捷方式 中自定义)
回填最新手动快照 Ctrl+Alt+R 或点击状态栏
从历史快照中选择一条回填 命令面板 → AutoSaveChat: 查看历史快照并回填…
剪贴板方式保存(兜底) 命令面板 → AutoSaveChat: 从剪贴板保存快照(先手动 Ctrl+A / Ctrl+C)
清除全部快照 命令面板 → AutoSaveChat: 清除全部快照…(有确认框)

平台支持

平台 自动保存 / 自动恢复 说明
Windows ✅ 完整(含附件恢复) 使用系统自带 Windows PowerShell,无任何额外安装
其它平台 手动模式 自动功能暂不启用;手动命令全部可用

数据与隐私

  • 读取范围:仅 VS Code 聊天会话文件 + 恢复前对聊天输入框的一次只读检查;不读取其它窗口或应用。
  • 数据只存本机:草稿与附件备份位于 %APPDATA%\AutoSaveChat\drafts\,卸载扩展也不会被删除。
  • 还原附件不占用、不修改系统剪贴板:输入框中的剪贴板内容会以相同内容的临时文件形式还原(附件)。
  • 不修改 VS Code 的任何设置;不需要开启"屏幕阅读器优化"模式,两者互不影响。

开发与安装

npm install        # 安装依赖
npm run compile    # 编译(或 npm run watch)
  • 调试:在本项目中按 F5 启动"扩展开发主机"窗口试用。
  • 打包安装(推荐日常使用):
npx @vscode/vsce package    # 生成 autosave-chat-<版本>.vsix
code --install-extension autosave-chat-<版本>.vsix

故障排查

现象 处理
没有自动恢复 查看输出面板 AutoSaveChat 日志;确认设置开启、窗口在前台;检查 %APPDATA%\AutoSaveChat\drafts\ 里是否有草稿
附件没恢复 查看输出面板 AutoSaveChat 日志(文件已删除 / 移动、或回填命令失败等);文字部分不受影响
想临时关闭自动功能 设置 autoSaveChat.autoCapture=false、autoSaveChat.autoRestore=false
非 Windows 平台 自动功能仅支持 Windows;其它平台使用手动命令

已知限制

  1. 依赖 VS Code 内部会话存储格式(官方没有对应 API)。已做防御性解析;若将来 VS Code 大版本变更格式,自动保存可能失效(日志会有提示),需更新扩展适配。
  2. VS Code 写盘存在极小时差,崩溃最多可能丢失最近约 1 秒的输入,恢复时切换会话约 1 秒后恢复输入框内容。
  3. 文件类附件恢复依赖文件仍在磁盘(或备份副本仍在)。
  4. 自动恢复的触发窗口为"聊天面板打开后 5 分钟内";若聊天面板长时间未打开,本次不恢复(草稿保留,下次再试)。
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft