【Code With SOLO】OpenTool - 可扩展的办公效率工具箱

【Code With SOLO】OpenTool - 可扩展的办公效率工具箱

一、摘要

我用 SOLO 从零开发了一个可扩展的办公效率工具箱 OpenTool,类似 uTools/Wox 的模块化效率启动器。支持 Ctrl+Alt+Space 快捷键唤起9个内置功能脚本文件全盘索引秒级搜索暗黑模式自动跟随系统Python环境探测与配置。整个开发过程约 2小时,代码量约 2500行,实现了从核心框架到完整功能的端到端解决方案。

二、背景

我是一名日常办公用户,经常需要处理各种琐碎任务:复制粘贴时想找历史记录、文件夹乱成一团想整理、想快速打开常用程序、想记录临时想法、想计算一些数据…每次都要打开不同的软件,效率极低。

核心痛点

  • 剪贴板只能存一条:复制新内容就覆盖旧的,想找回之前复制的内容很麻烦

  • 文件搜索太慢:Windows搜索慢且不准,Everything又要单独安装

  • 文件夹一团糟:下载文件夹堆满各种文件,手动整理太累

  • 重复操作多:每天打开同样的程序、输入同样的文本

  • 工具分散:计算器、记事本、取色器…每个功能都要单独的软件

三、实践过程

1. 需求分析与技术方案

首先,我让 SOLO 帮我分析技术方案:

Prompt:我想做一个类似uTools的效率工具,支持快捷键唤起、插件扩展、文件搜索等功能,用什么技术栈比较好?

SOLO 建议:使用 Python + PyQt5 技术栈,原因:

  • PyQt5 跨平台GUI成熟稳定

  • Python生态丰富,方便扩展

  • 可以打包成独立exe,无需用户安装Python

  • 开发效率高,适合快速迭代

2. 核心架构设计

Prompt:帮我设计一个可扩展的插件系统,要求:

  • 插件以脚本形式存在,主程序只负责运行时

  • 支持热加载,添加新脚本无需重启

  • 低代码扩展,新功能只需写一个.py文件

SOLO 设计了脚本引擎架构

opentool/
├── main.py              # 入口(轻量)
├── core/
│   ├── script_engine.py # 脚本引擎(exec解释执行)
│   ├── file_index.py    # 文件索引(SQLite)
│   └── system_utils.py  # 系统工具(主题/Python探测)
├── scripts/             # 所有功能=纯脚本
│   ├── calc.py          # 计算器
│   ├── clipboard.py     # 剪贴板
│   ├── file_search.py   # 文件搜索
│   └── ...
└── ui/
    └── panel.py         # 搜索面板

3. 核心功能开发

3.1 脚本引擎

Prompt:帮我实现一个脚本引擎,用exec()动态加载脚本,支持热加载

SOLO 实现了

  • 使用 解释执行脚本exec(compile(source, filepath, "exec"))

  • 注入 、、、 等常用模块__file__Resultosjson

  • 支持脚本热加载,修改后自动重新加载

  • 脚本只需定义 、、、 四个要素namekeywordquery()execute()

3.2 文件索引系统

Prompt:文件搜索在大目录会卡死,帮我实现一个索引系统

SOLO 实现了

  • SQLite数据库存储文件路径、名称、扩展名、修改时间

  • 后台线程建立索引,不阻塞UI

  • 智能过滤:跳过系统文件(.dll/.sys)、依赖目录(node_modules/.git)

  • 毫秒级搜索:SQL LIKE查询,不走磁盘遍历

  • 超时保护:5秒超时,返回已找到的结果

3.3 暗黑模式

Prompt:帮我实现暗黑模式,自动跟随Windows系统主题

SOLO 实现了

  • 读取注册表 检测系统主题AppsUseLightTheme

  • ThemeWatcher每2秒检测变化,自动切换

  • Catppuccin Mocha 配色方案,专业美观

  • 所有组件完整适配:卡片、列表、编辑器、按钮

3.4 Python环境探测

Prompt:打包后用户可能没有Python,帮我实现Python探测和配置

SOLO 实现了

  • 自动扫描PATH、LOCALAPPDATA、常见安装路径

  • 支持用户手动指定Python路径(含venv虚拟环境)

  • 配置持久化到python_config.json

  • 无Python时弹窗提示,主程序仍可使用

4. 内置脚本开发

4.1 剪贴板增强

Prompt:帮我实现剪贴板历史记录和智能文本处理

SOLO 实现了

  • 自动记录复制历史(最多50条)

  • 智能处理:JSON格式化、大小写转换、Base64/URL编解码

  • 空查询时自动显示当前剪贴板内容

  • 检测到JSON自动提供格式化选项

4.2 文件搜索

Prompt:帮我实现文件搜索,使用索引加速

SOLO 实现了

  • 全盘索引,首次启动自动建立

  • 支持通配符搜索(*.py)

  • 多关键词AND搜索(照片 2024)

  • 显示文件大小、修改时间

  • 点击直接打开文件

4.3 快捷启动器

Prompt:帮我实现一个快捷启动器,可以打开常用程序

SOLO 实现了

  • 预置常用程序:Chrome、VS Code、记事本、计算器等

  • 支持自定义添加:go add wechat D:\WeChat\WeChat.exe

  • 模糊搜索匹配

  • 支持打开网址

4.4 其他脚本

脚本 功能
note 快捷备忘,随时记录想法
color 屏幕取色,获取HEX/RGB/HSL
focus 番茄钟,专注计时+托盘提醒
tidy 文件智能归档,按类型/日期整理
rename 批量重命名,序号/替换/前缀/后缀
calc 快捷计算,数学表达式+单位换算

5. 踩过的坑

问题1:文件搜索在大目录卡死

解决:SOLO建议使用后台线程+索引系统,搜索走SQLite而非磁盘遍历

问题2:脚本中使用 报错__file__

解决:SOLO在脚本引擎中注入 变量__file__

问题3:暗黑模式切换后组件颜色不更新

解决:SOLO设计了 函数,动态获取配色get_colors(dark)

问题4:stuck_out_tongue: yInstaller打包后找不到脚本

解决:SOLO设计了 目录不打包的策略,脚本以文件形式放在exe旁边scripts/

四、成果展示

功能演示

工具特点

  • 快捷键唤起:Ctrl+Alt+Space 随时呼出,不干扰当前工作

  • 9个内置脚本:覆盖日常办公80%的重复操作

  • 文件秒搜:全盘索引,毫秒级返回结果

  • 暗黑模式:自动跟随Windows系统主题

  • 可扩展:添加新功能只需写一个.py文件

  • 低门槛:无需Python基础也能使用,打包后双击运行

使用流程

Ctrl+Alt+Space → 输入关键词 → 选择结果 → Enter执行

技术亮点

  1. 脚本引擎:exec()解释执行,零编译,热加载

  2. 文件索引:SQLite存储,智能过滤,毫秒级搜索

  3. 主题系统:自动检测系统主题,完整适配所有组件

  4. Python探测:自动检测/手动配置,支持虚拟环境

  5. 异步查询:后台线程执行,不阻塞UI

五、效果与总结

提效数据

维度 传统方式 使用 OpenTool 提效比例
剪贴板历史 手动记录 自动保存50条
文件搜索 30秒+ <100毫秒 300倍
打开程序 找图标/开始菜单 输入2字母 5倍
批量重命名 手动一个个改 一键批量 10倍

与其他工具对比

特性 OpenTool uTools 沃克斯 一切
开源免费 :white_check_mark: :cross_mark: :white_check_mark: :cross_mark:
可扩展 :white_check_mark: 脚本 :white_check_mark: 插件 :white_check_mark: 插件 :cross_mark:
文件搜索 :white_check_mark: 索引 :cross_mark: :cross_mark: :white_check_mark: 索引
剪贴板历史 :white_check_mark: :white_check_mark: :cross_mark: :cross_mark:
暗黑模式 :white_check_mark: 自动 :white_check_mark: 手动 :cross_mark: :cross_mark:
Python扩展 :white_check_mark: :cross_mark: :white_check_mark: :cross_mark:
学习成本

可复用方法论

  1. AI辅助开发流程

    • 先让AI做架构设计

    • 再逐步实现功能模块

    • 遇到问题立即让AI排查

  2. 脚本引擎设计

    • 主程序=轻量运行时

    • 功能=纯脚本文件

    • exec()解释执行,零编译

  3. 用户体验优化

    • 快捷键唤起,不干扰工作

    • 记住位置,减少眼球移动

    • 智能默认,减少用户输入

独行价值

  • 降低门槛:不懂PyQt5也能开发桌面应用

  • 提升效率:从想法到实现,2小时完成

  • 学习工具:通过AI生成的代码学习新技术

  • 质量保障:SOLO的代码质量高,减少调试时间

结语

通过 SOLO,我成功在2小时内完成了原本需要几天才能开发的效率工具。这个项目不仅解决了我的实际办公痛点,也让我深刻体验到了AI辅助开发的强大能力。OpenTool 不只是一个效率工具,更是可扩展的办公自动化平台——任何人都可以通过简单的Python脚本添加新功能。

项目亮点

  • :rocket: 真正实用:9个脚本覆盖日常办公80%的重复操作

  • :wrench: 可扩展:添加新功能只需写一个.py文件

  • :artist_palette: 美观:暗黑模式自动跟随系统

  • :high_voltage: 高效:文件搜索毫秒级响应

  • :light_bulb: 创新:脚本引擎+索引系统的技术组合

开源链接:本项目完整代码已在对话中展示,目录结构如下:

F:\work\trea\trae比赛\opentool\


如果各位感觉有趣或者有帮助请帮忙投一票!如果有什么新想法也欢迎在评论区指出,我也很想跟各位大佬一起学习交流!

1 个赞