Cursor Agent CLI 报错 No version directories found 的排查与修复

在 Windows 终端执行 agentcursor-agent 时,可能遇到如下错误:

1
2
3
4
5
6
C:\Users\liuhualiang\AppData\Local\cursor-agent\agent.ps1 : No version directories found in C:\Users\liuhualiang\AppData\Local\cursor-agent
所在位置 行:1 字符: 1
+ agent
+ ~~~~~
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,agent.ps1

本文记录该问题的现象、根因、修复方式与临时绕过方法。

现象

  • agentcursor-agent 命令均无法启动
  • 报错提示在 %LOCALAPPDATA%\cursor-agent 下找不到版本目录
  • 但手动查看 versions 子目录,实际存在多个版本文件夹,例如:
1
2
3
4
C:\Users\liuhualiang\AppData\Local\cursor-agent\versions\
├── 2026.06.12-19-59-36-f6aba9a
├── 2026.06.15-03-48-54-da23e37
└── 2026.06.16-20-30-07-a07d3ac

根因

agent.ps1cursor-agent.ps1 启动时会扫描 versions 目录,并用正则过滤合法版本名:

1
$name -match '^\d{4}\.\d{1,2}\.\d{1,2}-[a-f0-9]+$'

该正则只匹配旧格式

1
YYYY.MM.DD-commit

例如:2026.06.16-a07d3ac

而 Cursor Agent 更新后的目录名变为新格式,中间多了构建时间:

1
YYYY.MM.DD-HH-MM-SS-commit

例如:2026.06.16-20-30-07-a07d3ac

因此所有现有版本目录都被过滤掉,脚本误判为「没有版本目录」。

修复方法

编辑以下两个文件(内容相同,需同步修改):

  • %LOCALAPPDATA%\cursor-agent\agent.ps1
  • %LOCALAPPDATA%\cursor-agent\cursor-agent.ps1

1. 更新版本目录匹配正则

将原来的:

1
$name -match '^\d{4}\.\d{1,2}\.\d{1,2}-[a-f0-9]+$'

改为同时兼容新旧格式:

1
$name -match '^\d{4}\.\d{1,2}\.\d{1,2}(-\d{1,2}-\d{1,2}-\d{1,2})?-[a-f0-9]+$'

2. 改进版本排序逻辑(可选但推荐)

Parse-VersionString 函数原先只按日期 YYYY.MM.DD 排序。若同一天存在多个构建,建议解析时间戳后再比较:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function Parse-VersionString {
param (
[string]$versionString
)

$segments = $versionString.Split('-')
$datePart = $segments[0]
$parts = $datePart.Split('.')

if ($parts.Length -ne 3) {
throw "Invalid version format. Expected format: YYYY.MM.DD[-HH-MM-SS]-commit"
}

$year = $parts[0]
$month = $parts[1].PadLeft(2, '0')
$day = $parts[2].PadLeft(2, '0')
$timeSuffix = ""

if ($segments.Length -ge 5 -and $segments[1] -match '^\d+$' -and $segments[2] -match '^\d+$' -and $segments[3] -match '^\d+$') {
$timeSuffix = $segments[1].PadLeft(2, '0') + $segments[2].PadLeft(2, '0') + $segments[3].PadLeft(2, '0')
}

return [long]($year + $month + $day + $timeSuffix)
}

3. 验证修复

1
2
agent --version
agent status

预期输出示例:

1
2
2026.06.16-20-30-07-a07d3ac
✓ Logged in as your@email.com

临时绕过(不修改脚本)

若暂时不想改启动脚本,可直接调用最新版本目录下的 node.exeindex.js

1
2
3
$v = "C:\Users\liuhualiang\AppData\Local\cursor-agent\versions\2026.06.16-20-30-07-a07d3ac"
& "$v\node.exe" "$v\index.js" status
& "$v\node.exe" "$v\index.js" --help

$v 替换为 versions 下实际存在的最新目录名即可。

注意事项

  1. 更新可能覆盖修复:执行 agent update 或 Cursor 自动更新 Agent CLI 后,agent.ps1 可能被还原,问题会复现,需重新应用上述修改。
  2. IDE CLI 与 Agent CLI 是两套工具
    • cursor:Cursor IDE 自带 CLI(打开文件、diff、tunnel 等),路径通常在 %LOCALAPPDATA%\Programs\cursor\resources\app\bin\
    • agent / cursor-agent:终端 Agent CLI,安装在 %LOCALAPPDATA%\cursor-agent\
  3. cursor agent 子命令:IDE CLI 也注册了 agent 子命令,但日常使用的 agent 命令通常来自 PATH 中的 cursor-agent 包装脚本。

相关环境信息(排查参考)

项目
Cursor IDE 版本 3.8.11
Agent CLI 版本 2026.06.16-20-30-07-a07d3ac
操作系统 Windows 10/11 x64
安装路径 %LOCALAPPDATA%\cursor-agent\

总结

No version directories found 并非版本文件缺失,而是 PowerShell 启动脚本的版本名正则未跟上 Cursor Agent 新的目录命名规范。更新正则后即可恢复正常;若再次被更新覆盖,按本文步骤重新修复即可。