# 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-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI Code Tool Updater (TUI) 一款基于 [blessed](https://github.com/chjj/blessed) 的**终端 UI** 版 AI 编程助手工具更新器,在 Linux 终端中检测版本并一键更新。从原 Electron 版改造而来,去除了所有桌面端依赖。 ## 功能特性 - 自动检测 8 个 AI 编程 CLI 工具的本地版本与 npm 最新版本 - 一键安装未安装的工具、一键更新可更新的工具(或单独安装/更新选中项) - 支持切换 npm 镜像源(官方源 / 淘宝镜像源),切换后立即用于检测与安装 - 支持添加/移除自定义工具(任意 npm 包 + CLI 命令名) - 实时日志面板,流式输出 npm 安装过程;支持导出日志到文本文件 - 头部展示 Node.js / npm 版本与系统发行版信息,环境异常时在日志中提示 - 一键将 `agyyolo`(`agy --dangerously-skip-permissions`)函数配置到 `~/.bashrc` 和 `~/.zshrc` - 彩色状态徽章:最新 / 可更新 / 未安装 / 检测失败 - 纯终端运行,无需 X11 / Wayland 桌面环境 支持工具:Kimi Code、Claude Code、OpenAI Codex、OpenCode、CodeBuddy、Qwen Code、Gemini CLI、Google Antigravity CLI (agy),以及任意用户自定义的 npm 包工具。 > 注:`agy` 不是 npm 包,通过官方脚本分发。本工具通过查询其 manifest JSON 检测最新版本,更新时执行官方安装脚本(`curl ... | bash`)。 镜像源选择与自定义工具列表持久化保存在 `~/.config/ai-code-tool-updater/`(sudo 下为 `/root/.config/...`)。 ## 运行要求 - 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` / `Enter` | 更新/安装当前选中的工具(未安装则安装,可更新则更新) | | `a` | 一键更新所有可更新的工具 | | `i` | 一键安装所有未安装的工具 | | `n` | 添加自定义工具(依次输入名称 / npm 包名 / 命令名 / 版本参数) | | `x` | 移除当前选中的自定义工具(内置工具不可移除) | | `m` | 切换 npm 镜像源(官方源 / 淘宝镜像源) | | `y` | 一键配置 `agyyolo`(写入 `~/.bashrc`、`~/.zshrc`) | | `e` | 导出日志到当前目录下的文本文件 | | `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