238 lines
8.3 KiB
Markdown
238 lines
8.3 KiB
Markdown
# XCDesktop
|
||
|
||
<div align="center">
|
||
|
||
[](https://www.electronjs.org/)
|
||
[](https://react.dev/)
|
||
[](https://www.typescriptlang.org/)
|
||
[](https://vitejs.dev/)
|
||
[](https://tailwindcss.com/)
|
||
|
||
一站式 AI 工作台 - 集成笔记管理、时间追踪、远程桌面控制、AI 辅助等多种功能
|
||
|
||
</div>
|
||
|
||
## ✨ 核心特性
|
||
|
||
- **🖥️ 远程桌面控制** - 屏幕监控与远程控制,支持内网穿透,随时随地访问
|
||
- **🤖 AI 编程助手** - Web 版 OpenCode 界面,随时随地编程
|
||
- **🤖 AI 集成** - 深度集成通义万相、豆包等 AI 能力,支持语音转文字、视频解析、PPT 提取等
|
||
- **📝 Markdown 笔记管理** - 基于 Milkdown 编辑器,支持数学公式(KaTeX)、代码高亮(Prism)、表格、任务列表等
|
||
- **⏱️ 时间追踪** - 记录学习和工作时间,生成生产力统计图表
|
||
- **✅ 任务管理** - 完善的 TODO 功能,支持时间规划和任务统计
|
||
- **🗂️ 文件管理** - 树形文件结构,支持拖拽、重命名、删除等操作
|
||
- **🔍 全文搜索** - 快速搜索笔记内容
|
||
- **🌐 远程网页** - 内置浏览器,集成微信读书、B 站等常用网站
|
||
- **🧩 模块化架构** - 前端模块热插拔,易于扩展新功能
|
||
- **🖥️ 桌面原生体验** - Electron 打包,离线可用,支持系统主题
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 环境要求
|
||
|
||
- Node.js 18+
|
||
- npm 9+
|
||
- Windows 10+
|
||
|
||
### 安装依赖
|
||
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
### 运行开发模式
|
||
|
||
```bash
|
||
# 启动前端开发服务器
|
||
npm run dev
|
||
|
||
# 或者使用 Electron 开发模式(推荐)
|
||
npm run electron:dev
|
||
```
|
||
|
||
### 构建项目
|
||
|
||
```bash
|
||
# 构建前端
|
||
npm run build
|
||
|
||
# 构建 Electron 应用
|
||
npm run electron:build
|
||
```
|
||
|
||
构建完成后,安装包位于 `release` 目录下。
|
||
|
||
## 📁 项目结构
|
||
|
||
```
|
||
XCDesktop/
|
||
├── src/ # 前端源代码
|
||
│ ├── components/ # React 组件
|
||
│ ├── contexts/ # React Context
|
||
│ ├── hooks/ # 自定义 Hooks
|
||
│ │ ├── domain/ # 业务逻辑 Hooks
|
||
│ │ ├── events/ # 事件处理
|
||
│ │ ├── ui/ # UI 交互 Hooks
|
||
│ │ └── utils/ # 工具函数
|
||
│ ├── lib/ # 工具库
|
||
│ │ ├── api/ # API 客户端
|
||
│ │ ├── editor/ # 编辑器配置
|
||
│ │ └── utils/ # 工具函数
|
||
│ ├── modules/ # 功能模块
|
||
│ │ ├── home/ # 首页
|
||
│ │ ├── settings/ # 设置
|
||
│ │ ├── search/ # 搜索
|
||
│ │ ├── todo/ # 任务管理
|
||
│ │ ├── time-tracking/ # 时间追踪
|
||
│ │ ├── recycle-bin/ # 回收站
|
||
│ │ ├── pydemos/ # Python Demo
|
||
│ │ ├── weread/ # 微信读书
|
||
│ │ └── remote/ # 远程网页
|
||
│ │ │ ├── opencode/ # AI 编程助手
|
||
│ │ │ ├── sdd/ # 规范驱动开发
|
||
│ │ │ └── terminal/ # 终端
|
||
│ ├── stores/ # Zustand 状态管理
|
||
│ └── types/ # 类型定义
|
||
├── api/ # 后端 API (Express)
|
||
│ ├── config/ # 配置文件
|
||
│ ├── core/ # 核心功能
|
||
│ ├── errors/ # 错误处理
|
||
│ ├── modules/ # API 模块
|
||
│ │ ├── ai/ # AI 集成
|
||
│ │ ├── document-parser/ # 文档解析
|
||
│ │ ├── pydemos/ # Python Demo
|
||
│ │ ├── recycle-bin/ # 回收站
|
||
│ │ ├── remote/ # 远程网页
|
||
│ │ ├── time-tracking/ # 时间追踪
|
||
│ │ └── todo/ # 任务管理
|
||
│ ├── middlewares/ # 中间件
|
||
│ ├── schemas/ # 数据验证
|
||
│ ├── utils/ # 工具函数
|
||
│ ├── watcher/ # 文件监控
|
||
│ └── events/ # 事件总线
|
||
├── electron/ # Electron 主进程
|
||
├── shared/ # 共享类型和配置
|
||
├── remote/ # 远程桌面监控系统
|
||
│ ├── src/ # 后端服务
|
||
│ ├── public/ # 前端页面
|
||
│ ├── frp/ # 内网穿透 (FRP)
|
||
│ └── gitea/ # 自托管 Git 服务
|
||
├── service/ # Web 版 AI 编程助手
|
||
│ └── xcopencodeweb/ # OpenCode Web 界面
|
||
├── tools/ # 工具脚本
|
||
│ └── tongyi/ # 通义万相 AI 工具
|
||
├── command/ # 项目任务文档
|
||
├── public/ # 静态资源
|
||
├── notebook/ # 笔记数据存储(运行时)
|
||
└── release/ # 构建输出
|
||
```
|
||
|
||
## 🧩 功能模块
|
||
|
||
### 核心模块
|
||
|
||
| 模块 | 功能描述 |
|
||
|------|----------|
|
||
| 首页 | 欢迎页面,快速访问常用功能 |
|
||
| 文件管理 | 树形目录结构,管理 Markdown 笔记 |
|
||
| 编辑器 | 基于 Milkdown 的 Markdown 编辑器 |
|
||
| 搜索 | 全文搜索笔记内容 |
|
||
| 设置 | 主题、壁纸、字体大小等个性化配置 |
|
||
|
||
### 扩展模块
|
||
|
||
| 模块 | 功能描述 |
|
||
|------|----------|
|
||
| 远程桌面控制 | 屏幕监控与远程控制,支持内网穿透,随时随地访问 |
|
||
| AI 编程助手 | Web 版 OpenCode 界面,随时随地编程 |
|
||
| AI 集成 | 通义万相语音转文字、视频解析、PPT 提取等 |
|
||
| 文档解析 | 支持导入博客、PDF 等格式 |
|
||
| 时间追踪 | 记录工作/学习时间,统计生产力 |
|
||
| 任务管理 | TODO 列表,支持时间规划 |
|
||
| 回收站 | 误删恢复 |
|
||
| Python Demo | Python 脚本管理 |
|
||
| 微信读书 | 微信读书网页版集成 |
|
||
| 远程网页 | 内置浏览器,访问任意网页 |
|
||
| SDD | 规范驱动开发,自动化流程 |
|
||
| 终端 | 集成终端界面,管理和执行命令 |
|
||
|
||
## 🛠️ 技术栈
|
||
|
||
### 前端
|
||
|
||
- **框架**: React 18 + TypeScript
|
||
- **构建工具**: Vite 6
|
||
- **样式**: Tailwind CSS + Tailwind Typography
|
||
- **编辑器**: Milkdown (Markdown)
|
||
- **图表**: Recharts
|
||
- **图标**: Lucide React
|
||
- **路由**: React Router DOM
|
||
- **状态管理**: Zustand
|
||
- **拖拽**: @dnd-kit
|
||
|
||
### 后端
|
||
|
||
- **运行时**: Node.js
|
||
- **框架**: Express
|
||
- **验证**: Zod
|
||
- **文件监控**: Chokidar
|
||
|
||
### 桌面
|
||
|
||
- **框架**: Electron 40
|
||
- **日志**: electron-log
|
||
|
||
### 远程控制
|
||
|
||
- **屏幕捕获**: FFmpeg, H.264 编码
|
||
- **流媒体**: WebSocket
|
||
- **内网穿透**: FRP
|
||
- **Git 服务**: Gitea
|
||
|
||
### AI 工具
|
||
|
||
- **语音识别**: 通义听悟
|
||
- **视频解析**: Bilibili 视频下载与分析
|
||
- **PPT 提取**: 自动提取 PPT 内容
|
||
|
||
## 📝 数据存储
|
||
|
||
数据文件存储在系统文档目录下的 `XCDesktop` 文件夹中:
|
||
|
||
```
|
||
~/Documents/XCDesktop/
|
||
├── notebook/
|
||
│ ├── markdowns/ # Markdown 笔记
|
||
│ ├── pydemos/ # Python Demo
|
||
│ ├── images/ # 图片资源
|
||
│ └── time/ # 时间追踪数据
|
||
└── downloads/ # 下载文件
|
||
```
|
||
|
||
## ☁️ 远程服务
|
||
|
||
项目包含多个可选的远程服务组件,部署在远程被控电脑上:
|
||
|
||
### 远程桌面控制 (remote/)
|
||
|
||
**需部署在被控电脑上**的独立远程桌面监控系统:
|
||
- 屏幕捕获与 H.264 流媒体传输
|
||
- 远程鼠标、键盘控制
|
||
- FRP 内网穿透,支持外网访问
|
||
- 内置 Gitea 自托管 Git 服务
|
||
|
||
### AI 编程助手 (service/xcopencodeweb/)
|
||
|
||
Web 版 AI 编程助手(来自独立仓库 [XCOpenCodeWeb](https://github.com/anomalyco/XCOpenCodeWeb)),连接 OpenCode 服务器:
|
||
- 单文件 exe,直接运行
|
||
- 支持外部 OpenCode 服务器
|
||
- 随时随地编程
|
||
|
||
## 🤝 贡献指南
|
||
|
||
欢迎提交 Issue 和 Pull Request!请先阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。
|
||
|
||
## 📄 许可证
|
||
|
||
MIT License
|