Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Mini AI PilotNew to Visual Studio Code? Get it now.
Mini AI Pilot

Mini AI Pilot

wuwei_nero

|
523 installs
| (1) | Free
Coordinate coding CLIs and parallel Git worktree tasks.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Mini AI Pilot

轻量级的 VS Code CLI 编程任务工作台。将任务交给当前工作区中的 CLI,或在多个 Git worktree 中并行探索方案,再集中审阅和合并。

安装与运行环境

在 VS Code 扩展面板搜索 Mini AI Pilot 并安装。

  • 仅支持 Windows 和单文件夹工作区。
  • 安装 Git for Windows,并配置 GIT_BASH_PATH,例如 D:\Program Files\Git\bin\bash.exe。
  • 安装 PowerShell 7(pwsh)以及要使用的 CLI,确保它们已加入 PATH。
  • 支持通过命令模板接入 CLI;启用会话恢复时需安装 Node.js,并确保 node 已加入 PATH。
  • 各 CLI 的认证和模型配置由 CLI 自行管理。

使用

  1. 在底部选择 CLI:当前工作区运行一个 CLI,独立 Worktree 模式可选择多个 CLI 及各自的方案数量。
  2. 输入任务,可附加代码文件;点击发送或按 Enter 发起新会话,Shift + Enter 换行。
  3. 发送后即可继续输入新任务,CLI 的执行与交互在终端中进行。
  4. 在常驻工作台中查看方案、变更文件数量及增减行数,点击展开文件列表并按需撤销单文件修改,执行切换、合并、评分和诊断。原始问题弹窗支持一键复制。

变更文件的工作区版本或原版本超过 8 MiB,或在 .gitattributes 中被指定为二进制时,直接记为 +1/-0,跳过实际行数计算;其余文件由 Git 原生统计行数,Git 自动识别的二进制文件也记为 +1/-0。工作台不加载差异详情。

插件启动时会在项目根目录的 .gitattributes 中补齐 *.[sS][tT][pP] binary,将 STP 文件(含大小写后缀)默认作为二进制处理;多项目工作区分别写入各子项目。已有文件保留原内容,相同规则不重复添加。可以手动追加其他类型,例如:

*.step binary
*.custom -diff

binary 使用 Git 的二进制差异、合并及换行处理规则;若只需禁用文本差异,可使用 -diff。修改规则后刷新工作台即可应用,新增、修改、删除和重命名均按每个文件 +1/-0 统计。

历史记录保存最近 50 次任务的输入、文件选择与 CLI 选择,可搜索、复制或选择后批量删除。同样的输入重复发送也会独立记录。常用指令支持搜索和复制;项目概述、解决冲突、测试用例、修复 BUG 等快捷功能位于输入区。提交和合并时可单选 CLI,由终端中的 CLI 查看变更并执行 Git 提交或合并。多项目工作区支持逐项提交,也可在父目录启动一个 CLI,分别提交全部有变更的子项目。

自身不是 Git 仓库但包含 Git 子项目的目录,无需根目录 OVERVIEW.md 即可使用工作台,快捷功能只保留“项目概述”。可用所选 CLI 创建或修正该文档,也可手动创建;总览侧重项目组成、职责与关系,避免随内部细节调整频繁修改。根目录没有概述时,任务指令仅提示阅读各子项目的概述。

远程 HEAD 由 Git 的本地远程跟踪引用持久记录。自动加载和操作后的刷新只比较本地 HEAD 与已记录的远程 HEAD,不联网;本地新增提交会立即反映在同步状态中。点击工作台顶部刷新图标时,才统一 fetch 更新各仓库的远程 HEAD;手动同步只更新本次同步的仓库。只要本地存在已记录的远程 HEAD,就根据它显示已同步或未同步,即使本次远程刷新失败也继续使用该记录。

配置

默认目录为 ~/.mini/,工作台右上角的配置按钮可以打开此目录。修改后点击工作台的刷新按钮加载。

  • cli.json:各 CLI 的命令模板及可选模型。
  • hot.json:常用指令字符串列表,每个元素是一条指令。文件不存在时自动用内置内容创建;已存在时保留原内容。重新打开常用指令弹窗即可加载修改。

首次安装创建上述两个用户配置文件。cli.json 的 commands 初始为空;添加命令后点击刷新按钮即可使用。CLI 不受名称限制,base 必填,prompt 和 lazy 至少配置一个。

cli.json 示例:

{
  "commands": [
    {
      "base": "sol",
      "prompt": "codex {sessionArgs} {prompt}",
      "lazy": "codex {sessionArgs}",
      "session": {
        "capture": { "preset": "codex-hooks" },
        "resume": "codex {sessionArgs} resume {sessionId} {prompt}"
      }
    },
    {
      "base": "dsf",
      "prompt": "cmdc {sessionArgs} {prompt} --yolo",
      "lazy": "cmdc {sessionArgs} --yolo",
      "session": {
        "capture": { "preset": "command-code-mod" },
        "resume": "cmdc {sessionArgs} --resume {sessionId} --yolo {prompt}"
      }
    },
    {
      "base": "glm",
      "prompt": "claude {sessionArgs} --dangerously-skip-permissions {prompt}",
      "lazy": "claude {sessionArgs} --dangerously-skip-permissions",
      "session": {
        "capture": { "preset": "claude-hooks" },
        "resume": "claude {sessionArgs} --resume {sessionId} --dangerously-skip-permissions {prompt}"
      }
    },
    {
      "base": "swe",
      "prompt": "devin {sessionArgs} --model swe-2-high --permission-mode yolo -- {prompt}",
      "lazy": "devin {sessionArgs} --model swe-2-high --permission-mode yolo",
      "session": {
        "capture": { "preset": "devin-hooks" },
        "resume": "devin {sessionArgs} --resume {sessionId} --model swe-2-high --permission-mode yolo -- {prompt}"
      }
    },
    {
      "base": "agy",
      "prompt": "agy {sessionArgs} --prompt-interactive {prompt}",
      "lazy": "agy {sessionArgs}",
      "session": {
        "capture": { "preset": "antigravity-hooks" },
        "resume": "agy {sessionArgs} --conversation {sessionId} --prompt-interactive=\"$({prompt})\""
      }
    },
    {
      "base": "other",
      "prompt": "other-cli {prompt}",
      "lazy": "other-cli"
    }
  ]
}

base 是稳定的自定义 CLI 标识,终端通过它读取最新配置,请保持唯一。prompt 使用 {prompt} 传入任务;未配置 prompt 时,执行 lazy 并在 CLI 就绪后发送任务。“全新终端”始终执行 lazy。models 可提供模型名称供界面选择,插件将选中模型作为 --model 参数附加;其他模型参数语法可直接写入命令模板。

可选的会话恢复

只有同时配置 session.capture 和 session.resume 才启用 session 模式。未配置、删除或关闭这项能力时,该 CLI 仍可启动;相应终端和 worktree 不显示“恢复会话”图标,批量恢复也跳过这些条目。旧的顶层 resume 字段不再生效。

  • session.capture:指定原生会话信息的获取方式,支持预设、通用 JSON hook 和外部适配器。
  • session.resume:完整恢复命令,使用 {sessionId} 指定该终端绑定的会话,勿使用目录级的 --last 或 --continue。
  • {sessionArgs}:预设或适配器提供的参数,在 prompt、lazy、session.resume 中显式放置。插件按 PowerShell 参数规则转义,无需另加引号。
  • {sessionId}:由插件转义后替换,无需另加引号。启用 session 时应配置 lazy,以重新打开尚未开始对话的空白终端。
  • {prompt}:在 session.resume 中指定追加指令的位置,无需另加引号;留空时不传入内容。没有占位符时,追加指令作为最后一个位置参数传入;需要分隔符的 CLI(例如 Devin)应显式配置 -- {prompt}。

主分支终端和 worktree 的单项、批量恢复均可填写一条追加 Prompt,默认为空。留空时复用已打开的终端,已关闭的终端按原会话恢复;填写后先关闭对应终端及其子进程,再在原目录用原 CLI、模型和 session id 恢复,通过命令参数一次发送完整内容。尚未开始对话的终端使用启动命令发送该 Prompt。批量恢复向每个选中且启用 session 的条目发送相同内容。

复制常用指令、历史任务或完整问题时,CRLF、CR、LF 会转换为 Unicode 行分隔符 U+2028,以避免终端将换行识别为 Enter;文件路径和提交 ID 的复制保持原样,resume 参数保留原始换行。

内置 codex-hooks、claude-hooks、command-code-mod、devin-hooks、antigravity-hooks 五个预设。预设中的字段可以在 capture 内覆盖,例如使用其他 Codex 可执行文件时配置 executable。Claude 如需额外的本次启动设置,可在 configTemplate 中同时配置这些设置和记录 hooks,避免在命令模板中重复使用 --settings。

Devin 预设通过 SessionStart、UserPromptSubmit 记录原生 session id,并使用 --resume {sessionId} 恢复。每次启动从 %APPDATA%/devin/config.json 读取用户设置(支持注释和尾逗号),保留已有 hooks,再为该终端生成独立的 --config 文件。使用自定义 Devin 配置时,在 capture.configFile 中填写配置路径(相对路径以终端工作目录为准),命令模板中由 {sessionArgs} 提供 --config。原配置文件保持不变,生成的配置随终端记录一起删除。

Antigravity 使用 agy,不配置 models 或 --model 即使用 CLI 默认模型。任务通过 --prompt-interactive 启动交互会话,空白终端直接启动 agy,恢复使用 --conversation。恢复模板中的 --prompt-interactive="$({prompt})" 将追加内容作为一个参数传入,留空时得到 --prompt-interactive=,不会缺少参数值。

antigravity-hooks 预设在 ~/.gemini/config/hooks.json 注册名为 mini-ai-pilot 的 hook,保留其他命名 hooks。Antigravity 1.4.0 没有单次启动的 hook 配置参数;这里的 {sessionArgs} 替换为空。回调通过 SessionStart、PreInvocation 的 conversationId 绑定终端,在模型调用前标记已有对话;未发送消息的空白终端按 lazy 重开,切换或清空会话后在下一次调用时更新绑定。回调只处理携带插件会话环境变量且使用此预设的终端,普通 Antigravity 启动和其他 CLI 的记录不受影响。Windows 下使用 PowerShell 编码命令传递 hook,支持扩展路径包含空格。删除终端保留这个共享 hook 和 Antigravity 原生历史;停用集成时可移除 mini-ai-pilot 这一项。参见 Antigravity hooks 和 会话恢复说明。

同目录、同 CLI 的多个终端分别保存各自的 session id,worktree 使用相同机制。恢复时读取当前 cli.json,保留终端原来的模型选择和会话 ID。手动关闭终端会保留记录;“恢复会话”复用仍打开的终端,或按 ID 重建会话。删除终端仅移除插件记录及生成的 hook 配置,不删除代码或 CLI 原生历史。

会话绑定使用 CLI 官方扩展接口,需要安装支持相应接口的版本。Codex 适配器在启动前通过 App Server 只信任插件注入的两条 hook;不添加全局 hook 信任绕过参数。若官方改变其接口或信任状态结构,需要更新该适配器。Command Code 适配器通过 --mod 记录 session 生命周期;Claude 使用本次启动的 --settings 文件。插件不再覆盖同名 PowerShell 命令,手工输入的 CLI 命令遵循 CLI 自身行为;通过插件启动的会话内,/resume、/clear 等操作仍可更新绑定。

启用 session 的 CLI 若在会话初始化前因已识别的连接超时、连接重置等错误退出,会在同一个终端内等待 2 秒、4 秒,最多重试两次。等待时可按 Ctrl+C 取消;已经启动的会话或已经发送的延迟输入不会自动重放。

通用 JSON hook

对于支持外部命令回调的新 CLI,可直接配置字段路径、事件映射和注入参数。例如下面假设 CLI 官方提供 --session-hook <command>,向该命令的 stdin 写入 {"event":"saved","session":{"id":"..."}}:

{
  "base": "custom",
  "prompt": "custom-cli {sessionArgs} {prompt}",
  "lazy": "custom-cli {sessionArgs}",
  "session": {
    "capture": {
      "type": "json-hook",
      "args": ["--session-hook", "{captureCommand}"],
      "idPath": "session.id",
      "eventPath": "event",
      "eventMap": { "opened": "start", "saved": "conversation" }
    },
    "resume": "custom-cli {sessionArgs} --resume {sessionId} {prompt}"
  }
}

idPath、eventPath 支持点分隔路径。eventMap 中 start 记录当前 ID,换 ID 时清除旧会话的对话标记;conversation 标记会话已开始对话;未映射的事件不处理。CLI 在打开已有会话时可通过 resumeSourcePath 和 resumeSources 指明恢复来源,将已存在的会话标记为可恢复。取得 ID 本身不代表 CLI 已将会话保存到磁盘,应选择该 CLI 合适的生命周期事件。

如需 JSON 设置文件,添加 configTemplate 对象,并在 args 中使用 {configFile},例如 ["--settings", "{configFile}"]。配置模板内的 {captureCommand} 会替换成稳定的记录命令。{captureCommandJson} 是该命令的 JSON 字符串表示,可用于支持相同字符串语法的内联配置。目标记录文件由终端的 MINI_AI_PILOT_SESSION_FILE 环境变量指定,不通过扫描 CLI 历史目录获取。

外部适配器

无法用 JSON hook 表达的官方接口可以配置:

{
  "capture": { "type": "adapter", "adapter": "./adapters/custom.cjs" },
  "resume": "custom-cli {sessionArgs} --resume {sessionId} {prompt}"
}

以上对象放在 CLI 的 session 中。适配器路径相对于 cli.json 所在目录,也可以使用绝对路径。CommonJS 模块导出 prepare({ capture, captureCommand, sessionFile, cwd }),可异步返回需要注入的字符串参数数组。例如适配器可以生成 CLI 原生 mod,并返回 ["--mod", "mod文件路径"]。原生回调可以将 JSON 写入 captureCommand(同时配置字段映射),或写入 sessionFile 中的 sessionId、hasConversation,保留其他字段并原子替换文件。插件自带 Command Code mod 展示了后一种做法。

只有使用已有接入机制的新 CLI 才能完全通过配置接入;官方接口改变时更新对应配置或适配器,不需要修改终端与 worktree 主流程。

任务历史和 CLI 项目数据位于 ~/.mini/projects/<项目路径摘要>/,其中 terminals/ 保存终端与会话的绑定;对话正文由各 CLI 自行保存。插件不再提供内置聊天;继续与 AI 交互请使用对应终端。

开发验证

  • 扩展:npm test(包含 ESLint 和 VS Code 测试)。
  • 界面:在 chat-layout/ 运行 npm run lint。
  • 构建:在 chat-layout/ 运行 npm run build -- --dest ../dist。

打包使用 .vscodeignore 中的运行文件清单,仅包含扩展代码、Webview 构建产物及 YAML 解析库所需文件;测试、前端源码、本地缓存和残留依赖不进入 VSIX。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft