# upload-tool **Repository Path**: rymaker/upload-tool ## Basic Information - **Project Name**: upload-tool - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-05 - **Last Updated**: 2026-07-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI Code Tool Updater (TUI) 一款基于 [blessed](https://github.com/chjj/blessed) 的**终端 UI** 版 AI 编程助手工具更新器,在 Linux 终端中检测版本并一键更新。从原 Electron 版改造而来,去除了所有桌面端依赖。 ## 功能特性 - 自动检测 7 个 AI 编程 CLI 工具的本地版本与 npm 最新版本 - 一键更新单个工具或全部可更新工具 - 实时日志面板,流式输出 npm 安装过程 - 彩色状态徽章:最新 / 可更新 / 未安装 / 检测失败 - 纯终端运行,无需 X11 / Wayland 桌面环境 支持工具:Kimi Code、Claude Code、OpenAI Codex、OpenCode、CodeBuddy、Qwen Code、Gemini CLI、Google Antigravity CLI (agy)。 > 注:`agy` 不是 npm 包,通过官方脚本分发。本工具通过查询其 manifest JSON 检测最新版本,更新时执行官方安装脚本(`curl ... | bash`)。 ## 运行要求 - Linux + Node.js(建议 16+) - npm(已安装并在 PATH 中) - **root 权限**(`npm install -g` 全局安装需要) ## 安装 ```bash npm install ``` ## 使用 **必须用 sudo 启动**,否则会提示权限不足并退出: ```bash sudo node tui.js # 或 sudo npm start ``` > 如果 `sudo` 下找不到 `npm`,可能是 sudo 的 PATH 不包含 nvm 安装的路径,可改用: > ```bash > sudo env "PATH=$PATH" node tui.js > ``` ## 按键说明 | 按键 | 功能 | |------|------| | `r` | 检测所有工具版本 | | `↑` / `↓` | 在工具列表中上下选择 | | `u` | 更新当前选中的工具 | | `a` | 一键更新所有可更新的工具 | | `c` | 清空日志 | | `q` | 退出程序 | > 一键更新目前是**顺序执行**,避免多个 `npm install -g` 同时写全局目录造成锁竞争或符号链接损坏。 启动后会自动检测一次版本。 ## 界面布局 ``` ┌─ AI Code Tool Updater ─────────────────────────── [ROOT] ─┐ ├─ 工具列表 ───────────────────────────────────────────────┤ │ # 名称 状态 当前版本 最新版本 │ │ 1 Kimi Code 可更新 1.0.0 1.0.1 │ │ 2 Claude Code 最新 2.1.0 2.1.0 │ │ ... │ ├─ 实时日志 ───────────────────────────────────────────────┤ │ [12:00:01] SYSTEM 开始检测所有工具版本... │ │ [12:00:02] Kimi Code 正在检测 Kimi Code ... │ │ ... │ └─ [r] 检测版本 [↑↓] 选择 [u] 更新 [a] 全部 [q] 退出 ─┘ ``` ## 项目结构 ``` ├── tui.js # TUI 入口:blessed 界面 + 按键绑定 + sudo 检查 ├── lib/core.js # 核心逻辑:工具配置、版本检测、更新执行(无 UI 依赖) ├── package.json └── icon.svg ``` 核心逻辑与 UI 解耦:`lib/core.js` 不依赖任何 UI 框架,对外暴露异步函数并接受 `sendLog` 回调;`tui.js` 只负责界面与交互。 ## 技术栈 - [blessed](https://github.com/chjj/blessed) —— 终端 UI 框架 - Node.js 内置 `child_process` —— 调用 `npm` 与各 CLI ## License MIT