# ActionFlow
**Repository Path**: vegd0g/ActionFlow
## Basic Information
- **Project Name**: ActionFlow
- **Description**: ActionFlow--一个基于 Electron 构建的现代化桌面命令启动器,旨在提高你的工作效率。通过简洁的界面和强大的功能,让你能够快速执行各种操作,无需在复杂的菜单中寻找。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 5
- **Created**: 2026-05-13
- **Last Updated**: 2026-05-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ActionFlow Launcher

**快速、优雅的桌面命令启动器**
[](https://github.com/yourusername/actionflow)
[](LICENSE)
[](https://www.microsoft.com/windows)
[功能特性](#功能特性) • [快速开始](#快速开始) • [使用指南](#使用指南) • [开发文档](#开发文档)
---
## 📖 简介
ActionFlow 是一个基于 Electron 构建的现代化桌面命令启动器,旨在提高你的工作效率。通过简洁的界面和强大的功能,让你能够快速执行各种操作,无需在复杂的菜单中寻找。
### 为什么选择 ActionFlow?
- 🚀 **极速启动** - 按下 `Ctrl+Space` 即可唤醒,启动时间 < 200ms
- 🎯 **智能搜索** - 支持模糊搜索和中英文双语关键词
- 📋 **剪贴板历史** - 自动记录复制内容,随时查看和重用
- 🔌 **插件系统** - 轻松扩展自定义命令
- 🎨 **现代界面** - 简洁美观的深色主题设计
- ⚡ **高性能** - 基于 React + Vite 构建,响应迅速
---
## ✨ 功能特性
### 核心功能
#### 🎯 命令启动器
- 快速搜索和执行系统命令
- 支持参数传递和预览
- 智能排序(基于使用频率)
- 模糊匹配算法
#### 📋 剪贴板历史管理
- 自动监控剪贴板变化
- 保存最近 50 条复制记录
- 支持关键词搜索历史
- 智能去重(最近 5 条)
- 一键复制历史内容
#### 🔧 内置命令
- **Open Downloads** - 打开系统下载目录
- **Copy Text** - 复制文本到剪贴板
- **Search Web** - 在默认浏览器中搜索
- **Find Files and Folders** - 搜索文件和文件夹(无需额外安装)
- **Show Time** - 显示当前时间
- **Open Path** - 打开文件或文件夹
- **Clipboard History** - 查看剪贴板历史
- **Clear Clipboard History** - 清空剪贴板历史
#### 🔌 自定义命令(插件)
- **Open Notepad** - 快速打开记事本
- **Open Calculator** - 快速打开计算器
- **Shutdown PC** - 定时关机(默认 60 秒)
- **Cancel Shutdown** - 取消计划的关机
- **Restart PC** - 定时重启(默认 30 秒)
### 技术特性
- ⚡ **快速响应** - 输入响应 < 50ms,搜索时间 < 100ms
- 🔄 **自动更新** - MRU(最近使用)算法优化搜索结果
- 💾 **数据持久化** - 自动保存使用历史和剪贴板记录
- 🎨 **现代 UI** - 基于 TailwindCSS 的响应式设计
- 🔒 **单实例运行** - 防止多开,保护数据一致性
---
## 🚀 快速开始
### 系统要求
- Windows 10/11
- Node.js 18+ (仅开发需要)
### 安装使用
#### 方式一:直接运行(推荐)
1. 下载最新版本的 `ActionFlow Setup.exe`
2. 双击安装程序,按照提示完成安装
3. 安装完成后,程序会自动启动
4. 按 `Ctrl+Space` 唤醒命令面板
#### 方式二:从源码构建
```bash
# 克隆仓库
git clone https://github.com/yourusername/actionflow.git
cd actionflow
# 安装依赖
npm install
# 开发模式运行
npm run dev
# 构建生产版本
npm run build
# 打包安装程序
npm run package
```
---
## 📚 使用指南
### 基本操作
#### 唤醒命令面板
按下 `Ctrl+Space` 快捷键,命令面板会出现在屏幕上方中央位置。
#### 搜索命令
在输入框中输入关键词,系统会自动搜索匹配的命令:
- 支持英文命令名(如 `time`, `copy`, `shutdown`)
- 支持中文关键词(如 `时间`, `复制`, `关机`)
- 支持模糊匹配(如输入 `down` 可以匹配 `downloads`)
#### 执行命令
- `↑` `↓` - 上下选择命令
- `Enter` - 执行选中的命令
- `Tab` - 预览命令效果
- `Esc` - 关闭命令面板
### 命令使用示例
#### 1. 复制文本
```
copy hello world
```
将 "hello world" 复制到剪贴板
#### 2. 网页搜索
```
search electron tutorial
```
在默认浏览器中搜索 "electron tutorial"
#### 3. 打开文件夹
```
path C:\Users\Documents
```
打开指定的文件夹
#### 4. 文件搜索
```
find project # 搜索包含project的文件/文件夹
find *.txt files # 仅搜索txt文件
find documents folders # 仅搜索文件夹
find report both 20 # 搜索两者,最多20个结果
open 1 # 打开第一个搜索结果
open 2 folder # 打开第二个结果所在的文件夹
```
#### 5. 定时关机
```
shutdown 300
```
300 秒后关机(可以用 `cancel` 取消)
#### 6. 查看剪贴板历史
```
clipboard
```
或
```
clipboard password
```
搜索包含 "password" 的历史记录
### 剪贴板历史功能
#### 自动记录
- 程序会自动监控剪贴板变化
- 每次复制内容都会被记录
- 最多保存 50 条历史记录
- 自动过滤重复内容(最近 5 条)
- 忽略超过 10000 字符的内容
#### 查看历史
输入 `clipboard` 或 `history` 打开剪贴板历史视图
#### 历史视图操作
- `↑` `↓` - 上下选择历史记录
- `Enter` - 复制选中的内容
- `Delete` - 删除选中的记录
- `Esc` - 返回主界面
- 双击 - 快速复制
#### 搜索历史
```
clipboard 关键词
```
搜索包含指定关键词的历史记录
#### 清空历史
```
clear clipboard
```
删除所有剪贴板历史记录
### 系统托盘
程序会在系统托盘显示图标,右键点击可以:
- 显示/隐藏命令面板
- 查看关于信息
- 退出程序
---
## 🔌 插件开发
### 创建自定义插件
在 `plugins` 目录下创建 `.plugin.json` 文件:
```json
{
"name": "my-plugin",
"version": "1.0.0",
"actions": [
{
"id": "plugin.myaction",
"title": "My Action",
"subtitle": "我的自定义命令",
"keywords": ["my", "action", "自定义"],
"risk": "low",
"params": [
{
"name": "arg1",
"type": "string",
"required": true,
"description": "参数说明"
}
],
"supportsPreview": true
}
]
}
```
### 插件字段说明
- `id` - 唯一标识符(必需)
- `title` - 命令标题(必需,建议英文)
- `subtitle` - 命令说明(必需,建议中文)
- `keywords` - 搜索关键词数组(必需,支持中英文)
- `risk` - 风险等级:`low` 或 `medium`
- `params` - 参数定义数组
- `supportsPreview` - 是否支持预览
### 实现命令逻辑
在 `electron/main/services/executor.ts` 中添加命令执行逻辑:
```typescript
case 'plugin.myaction':
result = await this.executeMyAction(args[0])
break
```
---
## 🛠️ 开发文档
### 项目结构
```
actionflow/
├── electron/ # Electron 主进程
│ ├── main/ # 主进程代码
│ │ ├── index.ts # 入口文件
│ │ ├── window.ts # 窗口管理
│ │ ├── tray.ts # 系统托盘
│ │ ├── shortcuts.ts # 全局快捷键
│ │ ├── builtinActions.ts # 内置命令定义
│ │ ├── services/ # 业务逻辑服务
│ │ ├── ipc/ # IPC 通信处理
│ │ └── types/ # 类型定义
│ └── preload/ # 预加载脚本
├── src/ # React 渲染进程
│ ├── App.tsx # 根组件
│ ├── ui/ # UI 组件
│ │ └── palette/ # 命令面板组件
│ ├── store/ # 状态管理(Zustand)
│ └── utils/ # 工具函数
├── plugins/ # 插件目录
├── resources/ # 应用资源(图标等)
└── tests/ # 测试文件
```
### 技术栈
- **框架**: Electron 28 + Vite 5
- **UI**: React 18 + TailwindCSS 3
- **状态管理**: Zustand 4
- **搜索引擎**: Fuse.js 7
- **测试**: Vitest + fast-check
- **语言**: TypeScript 5 (strict mode)
### 开发命令
```bash
# 开发模式(热重载)
npm run dev
# 构建项目
npm run build
# 运行测试
npm test
# 运行单元测试
npm run test:unit
# 运行属性测试
npm run test:property
# 类型检查
npm run lint
# 打包应用
npm run package
# 仅打包 Windows 版本
npm run package:win
```
### 性能指标
- 启动时间: < 200ms
- 输入响应: < 50ms
- 搜索时间: < 100ms
- 内存占用: < 100MB
---
## 🤝 贡献指南
欢迎贡献代码、报告问题或提出建议!
### 报告问题
如果你发现了 bug 或有功能建议,请:
1. 在 GitHub Issues 中搜索是否已有相关问题
2. 如果没有,创建新的 issue
3. 详细描述问题或建议,最好附上截图
### 提交代码
1. Fork 本仓库
2. 创建你的特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交你的更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启一个 Pull Request
---
## 📝 更新日志
查看 [CHANGELOG.md](CHANGELOG.md) 了解版本更新历史。
### 最新版本 v1.0.1
- ✨ 完整的中文界面
- 📋 剪贴板历史管理功能
- 🎨 优化 UI 设计
- 🐛 修复已知问题
---
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
---
## 🙏 致谢
- [Electron](https://www.electronjs.org/) - 跨平台桌面应用框架
- [React](https://reactjs.org/) - 用户界面库
- [Vite](https://vitejs.dev/) - 下一代前端构建工具
- [TailwindCSS](https://tailwindcss.com/) - CSS 框架
- [Fuse.js](https://fusejs.io/) - 模糊搜索库
---
## 🔍 本地文件搜索
ActionFlow 内置本地文件搜索,不要求用户安装额外工具。
### 功能特点
- 📁 **多驱动器支持** - 自动搜索已挂载的磁盘分区
- 🔧 **高级搜索语法** - 支持通配符、文件类型过滤等
- 🎯 **智能结果处理** - 自动打开单个结果,显示多个结果列表
### 使用说明
- `find project` - 搜索文件和文件夹
- `find *.txt files` - 仅搜索文本文件
- `find D:\ project folders 50` - 在 D 盘搜索文件夹,最多显示 50 个结果
### 常见问题
如果遇到搜索问题,请查看 [本地文件搜索文档](docs/file-search.md) 获取使用建议。
## 📧 联系方式
- 作者: Carmela
- 项目主页: [GitHub](https://github.com/yourusername/actionflow)
- 问题反馈: [Issues](https://github.com/yourusername/actionflow/issues)
---
**如果这个项目对你有帮助,请给一个 ⭐️ Star!**
Made with ❤️ by Carmela