【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
yInstaller打包后找不到脚本
解决:SOLO设计了 目录不打包的策略,脚本以文件形式放在exe旁边scripts/
四、成果展示
功能演示
工具特点:
-
快捷键唤起:Ctrl+Alt+Space 随时呼出,不干扰当前工作
-
9个内置脚本:覆盖日常办公80%的重复操作
-
文件秒搜:全盘索引,毫秒级返回结果
-
暗黑模式:自动跟随Windows系统主题
-
可扩展:添加新功能只需写一个.py文件
-
低门槛:无需Python基础也能使用,打包后双击运行
使用流程
Ctrl+Alt+Space → 输入关键词 → 选择结果 → Enter执行
技术亮点
-
脚本引擎:exec()解释执行,零编译,热加载
-
文件索引:SQLite存储,智能过滤,毫秒级搜索
-
主题系统:自动检测系统主题,完整适配所有组件
-
Python探测:自动检测/手动配置,支持虚拟环境
-
异步查询:后台线程执行,不阻塞UI
五、效果与总结
提效数据
| 维度 | 传统方式 | 使用 OpenTool | 提效比例 |
|---|---|---|---|
| 剪贴板历史 | 手动记录 | 自动保存50条 | ∞ |
| 文件搜索 | 30秒+ | <100毫秒 | 300倍 |
| 打开程序 | 找图标/开始菜单 | 输入2字母 | 5倍 |
| 批量重命名 | 手动一个个改 | 一键批量 | 10倍 |
与其他工具对比
| 特性 | OpenTool | uTools | 沃克斯 | 一切 |
|---|---|---|---|---|
| 开源免费 | ||||
| 可扩展 | ||||
| 文件搜索 | ||||
| 剪贴板历史 | ||||
| 暗黑模式 | ||||
| Python扩展 | ||||
| 学习成本 | 低 | 低 | 中 | 低 |
可复用方法论
-
AI辅助开发流程:
-
先让AI做架构设计
-
再逐步实现功能模块
-
遇到问题立即让AI排查
-
-
脚本引擎设计:
-
主程序=轻量运行时
-
功能=纯脚本文件
-
exec()解释执行,零编译
-
-
用户体验优化:
-
快捷键唤起,不干扰工作
-
记住位置,减少眼球移动
-
智能默认,减少用户输入
-
独行价值
-
降低门槛:不懂PyQt5也能开发桌面应用
-
提升效率:从想法到实现,2小时完成
-
学习工具:通过AI生成的代码学习新技术
-
质量保障:SOLO的代码质量高,减少调试时间
结语
通过 SOLO,我成功在2小时内完成了原本需要几天才能开发的效率工具。这个项目不仅解决了我的实际办公痛点,也让我深刻体验到了AI辅助开发的强大能力。OpenTool 不只是一个效率工具,更是可扩展的办公自动化平台——任何人都可以通过简单的Python脚本添加新功能。
项目亮点:
-
真正实用:9个脚本覆盖日常办公80%的重复操作 -
可扩展:添加新功能只需写一个.py文件 -
美观:暗黑模式自动跟随系统 -
高效:文件搜索毫秒级响应 -
创新:脚本引擎+索引系统的技术组合
开源链接:本项目完整代码已在对话中展示,目录结构如下:
F:\work\trea\trae比赛\opentool\
如果各位感觉有趣或者有帮助请帮忙投一票!如果有什么新想法也欢迎在评论区指出,我也很想跟各位大佬一起学习交流!