
OmniRoute 卸载完全指南快速清理脚本、手动移除与数据目录详解【免费下载链接】OmniRouteNever stop coding. Free MIT AI gateway: one endpoint, 352 providers (150 free), 1200 models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline Copilot. Quota-aware auto-fallback, RTKCaveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550 contributors项目地址: https://gitcode.com/GitHub_Trending/om/OmniRoute导读本文基于 OmniRoute 官方卸载文档系统讲解如何从本机干净、彻底地移除 OmniRoute一款单端点聚合 350 提供商的免费 MIT 开源 AI 网关。你将掌握 v3.6.2 起内置的两条卸载命令保留数据与全量清除的差异与底层实现、npm/pnpm/Docker/Electron/源码安装等各类部署方式的逐平台手动卸载步骤、数据目录在各操作系统上的实际位置与目录内文件的作用以及卸载后如何验证残留进程与文件。文中所有结论均对照当前仓库源码验证可直接照做。一、快速卸载两条内置命令v3.6.2从 v3.6.2 版本起OmniRoute 在package.json中内置了两个卸载脚本分别对应保留数据重装与彻底抹除两种诉求。1.1 保留数据npm run uninstallnpm run uninstall该命令移除 OmniRoute 应用程序本身但完整保留~/.omniroute/下的数据库、配置文件、API 密钥与各提供商的连接设置。适合计划稍后重装、希望复用既有配置提供商密钥、组合、用量历史的场景。1.2 全量清除npm run uninstall:fullnpm run uninstall:full该命令在移除程序的同时永久删除所有数据包括主数据库storage.sqlite提供商配置与 API 密钥备份文件日志文件~/.omniroute/目录下的全部内容⚠️警告npm run uninstall:full不可逆。所有提供商连接、combo组合路由、API 密钥与用量历史将被永久删除执行前务必确认已不需要这些数据。1.3 脚本底层实现两条命令的真实入口是同一个脚本 scripts/build/uninstall.mjs在 package.json 中声明为uninstall: node scripts/build/uninstall.mjs, uninstall:full: node scripts/build/uninstall.mjs --full从源码看脚本执行顺序为停掉后台进程尝试pm2 delete omniroute即使 PM2 未安装或进程不存在也会安全跳过解析数据目录优先取环境变量DATA_DIR否则默认os.homedir() /.omniroute即~/.omniroute按模式处理数据--full模式下若目录存在则fs.rmSync(dataDir, { recursive: true, force: true })递归删除普通模式则保留数据目录并提示Your configurations and databases were preserved卸载全局 npm 包执行npm uninstall -g omniroute并通过环境变量OMNIROUTE_SKIP_UNINSTALL_HOOK1防止卸载钩子递归触发自身若权限不足会提示使用sudo重试。因此即使跳过 npm 包管理器的操作脚本本身也会自行完成全局包的卸载两个入口的差异仅在于是否删除数据目录。二、手动卸载按部署方式逐平台清理如果你希望完全手动控制卸载过程可按下述方式操作。2.1 npm 全局安装# 移除全局包 npm uninstall -g omniroute # 可选删除数据目录 rm -rf ~/.omniroute2.2 pnpm 全局安装pnpm uninstall -g omniroute rm -rf ~/.omniroute2.3 Docker 容器# 停止并删除容器 docker stop omniroute docker rm omniroute # 删除数据卷会删除全部数据 docker volume rm omniroute-data # 可选删除镜像 docker rmi diegosouzapw/omniroute:latest需要特别说明Docker 部署下数据存放在独立的命名卷中只删容器不会清除数据必须额外执行docker volume rm omniroute-data。仓库的 docker-compose.yml 中可以看到容器内数据目录DATA_DIR/app/data对应 docker-compose.yml 的环境变量声明默认与宿主机./data:/app/data绑定挂载docker-compose.prod.yml则使用命名卷omniroute-prod-data:/app/data使用 Podman 的部署同样通过 contrib/podman/omniroute.container 把omniroute.volume挂载到/app/data。因此手动清理时务必确认你的数据卷或绑定目录是否还需要保留。2.4 Docker Compose# 停止并删除容器 docker compose down # 同时删除卷会删除全部数据 docker compose down -v2.5 Electron 桌面应用Windows打开设置 → 应用 → OmniRoute → 卸载或在安装目录运行 NSIS 卸载器macOS将/Applications中的OmniRoute.app拖入废纸篓删除数据rm -rf ~/Library/Application Support/omnirouteLinux删除 AppImage 文件删除数据rm -rf ~/.omniroute提示macOS 的 Electron 数据目录路径~/Library/Application Support/omniroute与文档表格中列出的默认路径不同这是 Electron 应用在 macOS 上的惯例位置手动清理时两个位置都应检查。Electron 相关逻辑可参考 electron/main.js 与 electron/windowLifecycle.js。2.6 源码安装git clone# 删除克隆的目录 rm -rf /path/to/omniroute # 可选删除数据目录 rm -rf ~/.omniroute三、数据目录默认位置与覆盖方式OmniRoute 默认在以下位置存储数据均可通过环境变量覆盖平台默认路径覆盖方式Linux~/.omniroute/DATA_DIR环境变量macOS~/.omniroute/DATA_DIR环境变量Windows%APPDATA%/omniroute/DATA_DIR环境变量Docker/app/data/挂载卷DATA_DIR环境变量XDG 兼容环境$XDG_CONFIG_HOME/omniroute/XDG_CONFIG_HOME环境变量3.1 源码中的解析逻辑数据目录的实际解析逻辑位于 src/lib/dataPaths.ts关键行为如下均已由源码验证resolveDataDir()优先返回显式配置的DATA_DIR经path.resolve规范化未配置时调用getDefaultDataDir()getDefaultDataDir()的优先级为若旧版~/.omniroute目录已存在则优先沿用避免 Windows 迁移等场景升级丢数据→ Windows 使用%APPDATA%/omnirouteAPPDATA未设置时回退到home/AppData/Roaming→ Linux/macOS 仅在显式设置XDG_CONFIG_HOME时使用$XDG_CONFIG_HOME/omniroute否则仍回到~/.omniroute另有resolveWritableDataDir()变体当运维指定的DATA_DIR不可写EACCES/EPERM时自动回退到默认用户目录保证应用不因路径问题崩溃测试/评估进程NODE_TEST_CONTEXT、VITEST、NODE_ENVtest等若未显式设置DATA_DIR会重定向到临时目录避免误开生产库。这意味着卸载时只要你曾用DATA_DIR覆盖过路径就必须在同样的路径上删除数据而不是只删~/.omniroute。3.2 数据目录内的文件文件/目录说明storage.sqlite主数据库提供商、combo、设置、密钥storage.sqlite-walSQLite 预写日志临时storage.sqlite-shmSQLite 共享内存临时call_logs/请求载荷归档backups/自动数据库备份log.txt旧版请求日志可选其中主库路径在 src/lib/db/core.ts 中定义为path.join(DATA_DIR, storage.sqlite)同文件还声明了备份目录DB_BACKUPS_DIRDATA_DIR/db_backups与call_logs表含时间戳、状态、provider 等索引并在数据库打开时自动执行 WAL 模式相关维护。删除storage.sqlite时若存在-wal/-shm伴随文件也应一并清理否则可能残留半提交数据backups/与call_logs/则是uninstall:full一并清除的对象。四、卸载后验证确认无残留卸载完成后用以下命令检查是否还有残留# 检查全局 npm 包 npm list -g omniroute 2/dev/null # 检查数据目录 ls -la ~/.omniroute/ 2/dev/null # 检查运行中的进程 pgrep -f omniroute若仍有进程在运行强制停止pkill -f omniroute结合第一节的源码可知npm run uninstall已会通过pm2 delete清理后台进程并卸载全局包因此上述命令更多用于手动卸载如仅删除目录而未走脚本后的兜底验证。若你使用 Docker/Podman 部署还应补充验证容器与卷docker ps -a --filter nameomniroute docker volume ls | grep omniroute五、卸载决策速查场景推荐命令数据是否保留暂时移除稍后重装并复用配置npm run uninstall✅ 保留~/.omniroute/彻底清除含数据库与密钥npm run uninstall:full❌ 全部删除全局包npmnpm uninstall -g omniroute按是否删目录而定Docker 容器 数据卷docker rmdocker volume rm❌ 卷删除即清除Compose 全栈docker compose down -v❌ 卷删除即清除仅停服务、保留数据docker compose down✅ 保留卷数据英文原版文档位于 docs/guides/UNINSTALL.md俄语等 40 语言版本分布在 docs/i18n/ru/docs/guides/UNINSTALL.md 及同目录各语言文件夹下安装与日常使用的更多细节可参考 docs/guides/SETUP_GUIDE.md 与 docs/guides/USER_GUIDE.md。【免费下载链接】OmniRouteNever stop coding. Free MIT AI gateway: one endpoint, 352 providers (150 free), 1200 models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline Copilot. Quota-aware auto-fallback, RTKCaveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550 contributors项目地址: https://gitcode.com/GitHub_Trending/om/OmniRoute创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考