Appearance
SessionStart Hook 报错:Windows 用户名包含空格
问题
在 Windows 上,当用户的主目录路径包含空格(例如 C:\Users\Artur Paprocki\)时,Superpowers 的 SessionStart Hook(run-hook.cmd)会失败,报错:
SessionStart:clear hook error
Failed with non-blocking status code: bash: /c/Users/Artur: No such file or directory原因:路径中的空格导致 shell 解析时把路径切断,/c/Users/Artur 被当成了路径,后面的 Paprocki 部分被丢弃。
解决方案
方法 1:给路径加引号(等待官方修复)
Superpowers 官方需要在 run-hook.cmd 中对路径变量加引号。如果你有能力修改本地安装的 Hook 文件,找到 hooks/run-hook.cmd,将路径相关命令中的变量用双引号包裹:
bash
# 改前
bash $CLAUDE_PLUGIN_ROOT/hooks/...
# 改后
bash "$CLAUDE_PLUGIN_ROOT/hooks/..."方法 2:创建无空格的用户账号
在 Windows 上新建一个用户名不含空格的账号(如 dev),将开发工作在该账号下进行。这是最彻底的解决方案,但需要迁移工作环境。
方法 3:使用符号链接
在无空格路径下创建指向用户目录的符号链接(需要管理员权限):
cmd
mklink /D "C:\dev\home" "C:\Users\Artur Paprocki"然后设置环境变量 USERPROFILE=C:\dev\home,但这种方法可能影响其他应用。
注意:这是一个长期存在的已知问题,GitHub 上相同报告出现了 29 次以上,预计 Superpowers 未来版本会修复。
Issue:#1142