Skip to content

一个高性能、可扩展的应用启动器和插件平台 uTools 的开源实现 | 支持 macOS 和 Windows

License

Notifications You must be signed in to change notification settings

ZToolsCenter/ZTools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZTools

一个高性能、可扩展的应用启动器和插件平台

uTools 的开源实现 | 支持 macOS 和 Windows

GitHub release License Platform

English | 简体中文


✨ 特性

  • 🚀 快速启动 - 拼音搜索、正则匹配、历史记录、固定应用
  • 🧩 插件系统 - 支持 UI 插件和无界面插件,完整的 API 支持
  • 📋 剪贴板管理 - 历史记录、搜索、图片支持、跨平台原生实现
  • 🎨 主题定制 - 系统/亮色/暗色模式,6 种主题色可选
  • 高性能 - LMDB 数据库、WebContentsView 架构、极速响应
  • 🌍 跨平台 - 原生支持 macOS 和 Windows,统一体验
  • 🔒 数据隔离 - 插件数据独立存储,安全可靠
  • 🛠️ 开发友好 - 完整的 TypeScript 类型支持,热重载开发
  • ⚙️ 最新技术栈 - Electron 38.5 + Node 22.20 + Chrome 140

📸 预览

ZTools 演示

快速启动应用和搜索功能演示

🚀 快速开始

安装

方式 1:下载预编译版本(推荐)

Releases 页面下载最新版本:

  • macOS: ztools-x.x.x.dmgZTools-x.x.x-arm64-mac.zip
  • Windows: ztools-x.x.x-setup.exeztools-x.x.x-win.zip

方式 2:从源码构建

# 克隆仓库
git clone https://github.com/ZToolsCenter/ZTools.git
cd ZTools

# 安装依赖
pnpm install

# 开发模式
pnpm dev

# 构建
pnpm build:mac    # macOS
pnpm build:win    # Windows

使用

  1. 启动应用后,使用快捷键 Option+Z(macOS)或 Alt+Z(Windows)唤起主界面
  2. 输入应用名称或命令进行搜索
  3. 选择,Enter 确认,Esc 退出

插件市场

ZTools 提供内置的插件市场,可以方便地浏览和安装插件:

主要功能

  • 📦 在线安装 - 一键下载安装插件
  • 🔄 插件升级 - 检测插件更新,一键升级到最新版本
  • 🔍 插件详情 - 查看插件描述、版本、作者等详细信息
  • 已装管理 - 已安装插件可直接打开或升级

使用方法

  1. 打开 ZTools 设置(点击头像)
  2. 切换到"插件市场"标签
  3. 浏览并安装感兴趣的插件
  4. 已安装插件会显示"打开"或"升级"按钮

技术实现

  • 插件托管在蓝奏云(https://ilt.lanzouu.com/b0pn75v9g),密码:5w87
  • 插件包格式:ZIP 压缩包,包含 plugin.json 和插件文件
  • 版本比较:自动对比本地版本和市场版本(语义化版本号)
  • 升级策略:先卸载旧版本,再安装新版本

应用内更新

ZTools 支持应用内一键更新,无需手动下载安装包:

更新流程

  1. 应用自动检查更新(启动时或手动检查)
  2. 发现新版本时显示更新提示
  3. 点击更新按钮开始下载更新包
  4. 下载完成后自动安装并重启应用

技术实现

  • 更新源:蓝奏云(https://ilt.lanzouu.com/b0pn8htad),密码:1f8i
  • 更新信息文件:ztools_update_x.x.x.txt(JSON 格式)
  • 更新包格式:ZIP 压缩包,包含新版本的 app.asar 文件
  • 更新程序:独立的 ztools-updater 可执行文件
    • macOS: ztools-updater(位于 Contents/MacOS/)
    • Windows: ztools-updater.exe(位于应用根目录)
  • 更新流程:
    1. 下载并解压更新包
    2. 启动独立的 updater 程序
    3. 应用退出
    4. updater 替换 app.asar 文件
    5. 自动重启应用

平台支持

  • ✅ macOS (Apple Silicon)
  • ✅ Windows (x64)

🧩 插件开发

ZTools 提供完整的插件系统,支持两种类型:

UI 插件

// plugin.json
{
  "name": "my-plugin",
  "version": "1.0.0",
  "description": "我的插件",
  "main": "index.html",
  "logo": "logo.png",
  "features": [
    {
      "code": "search",
      "explain": "搜索功能",
      "cmds": ["搜索"]
    }
  ]
}

无界面插件

无界面插件适合后台任务、数据处理等不需要 UI 的场景。

// plugin.json(注意:没有 main 字段)
{
  "name": "my-headless-plugin",
  "version": "1.0.0",
  "description": "后台处理插件",
  "logo": "logo.png",
  "features": [
    {
      "code": "process",
      "explain": "后台处理",
      "cmds": ["处理"]
    }
  ]
}
// preload.js
window.exports = {
  process: {
    mode: 'none', // 无界面插件标识
    args: {
      enter: async (action) => {
        // 处理逻辑
        window.ztools.showNotification('执行完成')
        return { success: true }
      }
    }
  }
}

插件 API

ZTools 提供丰富的 API:

  • 数据库 API - 持久化数据存储
  • 剪贴板 API - 访问和监听剪贴板
  • UI API - 控制窗口和界面
  • 对话框 API - 显示对话框和文件选择器
  • Shell API - 执行命令行命令
  • 窗口管理 API - 创建独立窗口

详细文档请查看 CLAUDE.md

🛠️ 技术栈

  • 框架: Electron 38 + Vue 3 + TypeScript
  • 构建: Vite + electron-vite
  • 数据库: LMDB(高性能键值存储)
  • 状态管理: Pinia
  • 搜索引擎: Fuse.js(拼音支持)
  • 原生模块: C++ (Node-API)
    • 剪贴板监听
    • 窗口管理
    • 区域截图(Windows)

📁 项目结构

ztools/
├── src/
│   ├── main/              # 主进程
│   │   ├── api/          # IPC API 模块
│   │   ├── core/         # 核心功能(数据库、原生模块)
│   │   ├── windowManager.ts
│   │   └── pluginManager.ts
│   ├── preload/          # Preload 脚本
│   └── renderer/         # 渲染进程(Vue)
│       ├── components/
│       ├── stores/       # Pinia 状态管理
│       └── App.vue
├── resources/            # 资源文件
│   ├── lib/             # 原生模块(.node)
│   └── preload.js       # 插件 Preload
└── CLAUDE.md            # 完整技术文档

📚 文档

💻 开发

环境要求

  • Node.js >= 18
  • npm >= 9
  • macOS 或 Windows 开发环境

开发命令

# 安装依赖
pnpm install

# 开发模式(热重载)
pnpm dev

# 类型检查
pnpm typecheck          # 全部
pnpm typecheck:node     # 主进程 + preload
pnpm typecheck:web      # 渲染进程

# 代码格式化
pnpm format             # Prettier 格式化
pnpm lint               # ESLint 检查

# 构建
pnpm build              # 仅编译源码
pnpm build:mac          # 打包 macOS 应用
pnpm build:win          # 打包 Windows 应用
pnpm build:unpack       # 打包但不生成安装包(调试用)

调试

  • 主进程:在 VS Code 中按 F5,或使用 pnpm dev 查看终端日志
  • 渲染进程:在应用中按 Cmd+Option+I(macOS)或 Ctrl+Shift+I(Windows)打开开发者工具
  • 插件:在插件页面点击"打开开发者工具"按钮

🗺️ 路线图

已完成 ✅

  • 应用快速启动和搜索
  • 插件系统(UI + 无界面)
  • 剪贴板历史管理
  • 跨平台支持(macOS + Windows)
  • LMDB 数据库迁移
  • 主题定制
  • 数据隔离
  • 插件市场
  • 全局快捷键自定义
  • 插件分离为独立窗口
  • 插件自动更新
  • 云同步(可选)
  • Linux 支持
  • MCP工具集

🐛 问题反馈

遇到问题?请在 Issues 中反馈。

提交 Issue 时请包含:

  • 操作系统版本
  • ZTools 版本
  • 复现步骤
  • 错误日志(如有)

📄 许可证

本项目采用 MIT License 许可证。

💝 致谢

  • uTools - 灵感来源
  • Electron - 跨平台桌面应用框架
  • Vue.js - 渐进式 JavaScript 框架
  • LMDB - 高性能嵌入式数据库

⭐ Star 历史

Star History Chart


如果这个项目对你有帮助,请给个 Star ⭐️

Made with ❤️ by lzx8589561