Files
XCDesktop/README.md

238 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# XCDesktop
<div align="center">
[![Electron](https://img.shields.io/badge/Electron-40.2.1-blue?style=flat-square)](https://www.electronjs.org/)
[![React](https://img.shields.io/badge/React-18.3.1-61DAFB?style=flat-square)](https://react.dev/)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.8.3-3178C6?style=flat-square)](https://www.typescriptlang.org/)
[![Vite](https://img.shields.io/badge/Vite-6.3.5-646CFF?style=flat-square)](https://vitejs.dev/)
[![Tailwind CSS](https://img.shields.io/badge/Tailwind%20CSS-3.4.17-06B6D4?style=flat-square)](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