使用说明
重新启动Claude代码技能
一个小型macOS实用程序,可在同一Terminal.app选项卡中重新启动Claude Code。在更改MCP服务器配置或启动时加载的其他设置后非常有用。
该脚本自动执行用户手动执行的相同序列:中断Claude代码,返回shell,运行 claude --continue,等待启动,然后提交继续消息。
支持的环境
- macOS
- 打开终端
- 交互式终端会话中的Claude Code
- Python 3.9或更高版本
- 航站楼无障碍通道 系统设置>隐私和安全>辅助功能
目前不支持其他终端应用程序。该脚本发送键盘输入,因此在重要会话中使用它之前,请检查行为并运行模拟运行。
安装
克隆存储库并将技能目录复制到您的Claude Code技能目录中:
git clone https://github.com/ntguion/restart-claude-skill.git
cp -R restart-claude-skill/restart-claude ~/.claude/skills/
不需要第三方Python包。
用法
从克劳德代码中调用:
/restart-claude
要检查默认行为而不发送击键,请执行以下操作:
python3 ~/.claude/skills/restart-claude/restart.py --dry-run
要直接运行脚本,请执行以下操作:
python3 ~/.claude/skills/restart-claude/restart.py
默认情况下,重新启动的进程使用 claude --continue,它通过正常的权限检查继续当前工作目录的最新对话。
精确会话
当当前目录有多个会话并且您需要显式选择一个会话时,传递UUID:
python3 ~/.claude/skills/restart-claude/restart.py \
--session-id 123e4567-e89b-12d3-a456-426614174000
定时和延续消息
MCP启动缓慢可能需要更长的延迟:
python3 ~/.claude/skills/restart-claude/restart.py --startup-delay 20
可以更改或禁用继续消息:
python3 ~/.claude/skills/restart-claude/restart.py --message "Continue the previous task."
python3 ~/.claude/skills/restart-claude/restart.py --no-message
跑 python3 restart.py --help 对于所有选项。
安全默认值
默认情况下,权限检查仍处于启用状态。该脚本支持Claude Code的 --dangerously-skip-permissions 仅标记为明确的选择加入:
python3 ~/.claude/skills/restart-claude/restart.py \
--dangerously-skip-permissions
该模式绕过了Claude Code权限检查,应仅限于适当隔离的环境。此实用程序不需要工作。
剧本还:
- 将动态值作为参数传递给AppleScript,而不是将其插值到可执行的AppleScript源代码中;
- 在发送键盘输入之前,通过控制TTY选择发起终端选项卡;
- 将确切的会话ID验证为UUID;和
- 在安排重新启动之前,检查支持的平台、所需的可执行文件和辅助功能访问。
运作原理
- Python为调用该技能的进程标识控制TTY。
- 它启动一个分离的AppleScript进程,以便自动化在当前退出的Claude Code进程中幸存下来。
- AppleScript查找并聚焦具有匹配TTY的Terminal.app选项卡。
- 系统事件发送
Ctrl+C两次,等待shell,然后键入resume命令。 - 在配置的启动延迟之后,它可以选择提交一条继续消息。
默认延迟为shell返回4秒,Claude Code启动12秒。两者都是可配置的。
局限性
- 键盘自动化取决于Terminal.app焦点和macOS辅助功能API。模拟运行验证配置,但不能保证真正重启的时间。
--continue为当前工作目录选择最近的对话。使用--session-id当这不够具体时。- 启动是基于延迟的;脚本不会检查Claude Code的UI以确定准备就绪。
- 该实用程序不会杀死过时的MCP服务器进程或解决端口冲突。
- 在以下情况下,未保存的交互式输入可能会丢失
Ctrl+C已发送。
如果键入了重启命令但未被接受,请增加 --shell-delay。如果继续消息到达得太早,请增加 --startup-delay 或使用 --no-message.
发展
运行标准库测试套件:
python3 -m unittest discover -s tests -v
这些测试在不发送按键的情况下验证命令构造、输入验证、干运行行为和分离的AppleScript调用。
许可证
MIT许可证。看 许可证.