@qq33357486/oh-my-task 1.4.25 → 1.4.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -93
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,21 +1,39 @@
|
|
|
1
1
|
# oh-my-task
|
|
2
2
|
|
|
3
|
-
AI
|
|
3
|
+
面向个人和 AI Agent 的轻量任务管理器。核心是通过 AI + MCP 管理个人任务,而不是把网页拖拽操作作为主要工作流。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**公共服务**:[https://task.duojie.games](https://task.duojie.games)<br>
|
|
6
|
+
**自托管**:Docker 一条命令启动,数据保存在你自己的 SQLite 文件中。
|
|
6
7
|
|
|
7
|
-
-
|
|
8
|
-
- **智能排期** — 自动跳过周末和中国法定节假日
|
|
9
|
-
- **MCP 集成** — 11 个工具,AI 助手直接管理任务
|
|
10
|
-
- **管理后台** — 统计面板、用户管理、系统配置
|
|
11
|
-
- **权限体系** — 首位用户自动成为管理员,Session + Bearer Token 双认证
|
|
12
|
-
- **Docker 部署** — 零配置一键启动
|
|
8
|
+

|
|
13
9
|
|
|
14
|
-
##
|
|
10
|
+
## 为什么使用 oh-my-task
|
|
15
11
|
|
|
16
|
-
|
|
12
|
+
- **面向个人管理**:每个人管理自己的项目、版本、主任务和子任务;它不是团队协作套件。
|
|
13
|
+
- **版本生命周期清晰**:创建 → 启动/锁定 → 完成 → 归档,适合阶段性交付。
|
|
14
|
+
- **智能排期**:根据预计天数自动计算排期,并跳过周末和中国法定节假日。
|
|
15
|
+
- **AI 交互优先**:提供 REST API 和 MCP 工具,AI 助手可以直接创建、查询、推进和完成任务。
|
|
16
|
+
- **网页辅助查看**:Web 界面用于查看任务状态、版本进度、排期和 Token 配置。
|
|
17
|
+
- **公共服务与自托管并存**:可以直接使用 `task.duojie.games`,也可以部署到自己的服务器。
|
|
18
|
+
- **可自行扩展团队能力**:如果需要团队流程、组织权限或多人协作,可以基于开源版本自行修改。
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
## 直接使用公共服务
|
|
21
|
+
|
|
22
|
+
1. 打开 [task.duojie.games](https://task.duojie.games)。
|
|
23
|
+
2. 注册账号并创建项目。
|
|
24
|
+
3. 创建版本和任务,或在设置页创建 Token 后接入 MCP。
|
|
25
|
+
|
|
26
|
+
公共服务适合快速开始和个人项目管理。如果你需要完全掌控数据,可以使用下面的 Docker 自托管方式;如果需要团队功能,需要基于项目自行扩展。
|
|
27
|
+
|
|
28
|
+
## 页面预览
|
|
29
|
+
|
|
30
|
+

|
|
31
|
+
|
|
32
|
+

|
|
33
|
+
|
|
34
|
+
## Docker 自托管
|
|
35
|
+
|
|
36
|
+
一条命令启动:
|
|
19
37
|
|
|
20
38
|
```bash
|
|
21
39
|
docker run -d --name oh-my-task \
|
|
@@ -24,7 +42,7 @@ docker run -d --name oh-my-task \
|
|
|
24
42
|
ghcr.io/qq33357486/oh-my-task:latest
|
|
25
43
|
```
|
|
26
44
|
|
|
27
|
-
|
|
45
|
+
使用 `docker-compose.yml`:
|
|
28
46
|
|
|
29
47
|
```yaml
|
|
30
48
|
services:
|
|
@@ -45,16 +63,16 @@ services:
|
|
|
45
63
|
docker compose up -d
|
|
46
64
|
```
|
|
47
65
|
|
|
48
|
-
|
|
66
|
+
访问 `http://localhost:17173` 打开 Web 界面。空库初始化时,首位注册用户会自动成为管理员。
|
|
49
67
|
|
|
50
|
-
|
|
68
|
+
## 本地开发
|
|
51
69
|
|
|
52
70
|
```bash
|
|
53
71
|
# 安装依赖
|
|
54
72
|
npm install
|
|
55
73
|
cd web && npm install && cd ..
|
|
56
74
|
|
|
57
|
-
#
|
|
75
|
+
# 构建后端和前端
|
|
58
76
|
npm run build
|
|
59
77
|
cd web && npm run build && cd ..
|
|
60
78
|
|
|
@@ -68,26 +86,20 @@ PowerShell:
|
|
|
68
86
|
$env:WEB_DIST_PATH = "web/dist"; $env:API_PORT = "17173"; npm start
|
|
69
87
|
```
|
|
70
88
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
### 前端热更新调试(可选)
|
|
89
|
+
开发时也可以分别启动后端和 Vite:
|
|
74
90
|
|
|
75
91
|
```bash
|
|
76
92
|
npm run dev
|
|
77
93
|
cd web && npm run dev
|
|
78
94
|
```
|
|
79
95
|
|
|
80
|
-
Vite
|
|
96
|
+
Vite 的 `http://localhost:5173` 仅用于前端热更新调试;正式入口、Docker 和功能 QA 都使用统一端口 `17173`。
|
|
81
97
|
|
|
82
98
|
## 配置 MCP
|
|
83
99
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
oh-my-task 通过**项目名称**来区分不同项目,建议将 MCP 配置在**项目级**(如 `.cursor/mcp.json`、`.claude/mcp.json`),而非全局配置。这样每个项目使用各自的项目名,AI 工具自动定位到正确的任务空间。
|
|
100
|
+
在 Web 设置页创建 Token:右上角 → 设置 → 创建 Token。
|
|
87
101
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
在项目根目录创建 `.cursor/mcp.json` 或 `.claude/mcp.json`:
|
|
102
|
+
oh-my-task 通过**项目名称**区分不同任务空间,推荐把 MCP 配置放在项目级文件中,例如 `.cursor/mcp.json` 或 `.claude/mcp.json`。
|
|
91
103
|
|
|
92
104
|
```json
|
|
93
105
|
{
|
|
@@ -96,8 +108,8 @@ oh-my-task 通过**项目名称**来区分不同项目,建议将 MCP 配置在
|
|
|
96
108
|
"command": "npx",
|
|
97
109
|
"args": ["@qq33357486/oh-my-task"],
|
|
98
110
|
"env": {
|
|
99
|
-
"OMT_SERVER_URL": "
|
|
100
|
-
"OMT_TOKEN": "你的Token",
|
|
111
|
+
"OMT_SERVER_URL": "https://task.duojie.games",
|
|
112
|
+
"OMT_TOKEN": "你的 Token",
|
|
101
113
|
"OMT_PROJECT_NAME": "当前项目名称"
|
|
102
114
|
}
|
|
103
115
|
}
|
|
@@ -105,57 +117,39 @@ oh-my-task 通过**项目名称**来区分不同项目,建议将 MCP 配置在
|
|
|
105
117
|
}
|
|
106
118
|
```
|
|
107
119
|
|
|
108
|
-
|
|
120
|
+
如果使用本地 Docker 服务,把 `OMT_SERVER_URL` 改为:
|
|
109
121
|
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
"mcpServers": {
|
|
113
|
-
"oh-my-task": {
|
|
114
|
-
"command": "npx",
|
|
115
|
-
"args": ["@qq33357486/oh-my-task"],
|
|
116
|
-
"env": {
|
|
117
|
-
"OMT_SERVER_URL": "http://localhost:17173",
|
|
118
|
-
"OMT_TOKEN": "你的Token",
|
|
119
|
-
"OMT_PROJECT_NAME": "项目名称"
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
122
|
+
```text
|
|
123
|
+
http://localhost:17173
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
### MCP
|
|
126
|
+
### MCP 工具
|
|
127
127
|
|
|
128
128
|
| 工具 | 说明 |
|
|
129
|
-
|
|
129
|
+
| --- | --- |
|
|
130
130
|
| `init_project` | 初始化项目 |
|
|
131
131
|
| `create_task` | 创建任务 |
|
|
132
132
|
| `list_tasks` | 列出任务 |
|
|
133
133
|
| `get_task` | 获取任务详情 |
|
|
134
|
-
| `activate_task` |
|
|
135
|
-
| `complete_task` |
|
|
134
|
+
| `activate_task` | 开始任务 |
|
|
135
|
+
| `complete_task` | 完成任务 |
|
|
136
136
|
| `delete_task` | 删除任务 |
|
|
137
137
|
| `create_version` | 创建版本 |
|
|
138
138
|
| `list_versions` | 列出版本 |
|
|
139
139
|
| `get_current_task` | 获取当前进行中的主任务及子任务 |
|
|
140
|
-
| `auto_schedule` |
|
|
140
|
+
| `auto_schedule` | 自动排期并跳过节假日 |
|
|
141
141
|
|
|
142
|
-
##
|
|
142
|
+
## 常见使用方式
|
|
143
143
|
|
|
144
|
-
|
|
144
|
+
创建版本:
|
|
145
145
|
|
|
146
|
-
```
|
|
146
|
+
```text
|
|
147
147
|
创建版本 v1.0:用户系统
|
|
148
148
|
```
|
|
149
149
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
```
|
|
153
|
-
在 v1.0 下创建任务:用户登录功能
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
### 3. 批量创建
|
|
150
|
+
批量创建任务:
|
|
157
151
|
|
|
158
|
-
```
|
|
152
|
+
```text
|
|
159
153
|
在 v1.0 下批量创建任务:
|
|
160
154
|
- 用户登录
|
|
161
155
|
- 登录表单
|
|
@@ -164,56 +158,42 @@ oh-my-task 通过**项目名称**来区分不同项目,建议将 MCP 配置在
|
|
|
164
158
|
- 列表页面
|
|
165
159
|
```
|
|
166
160
|
|
|
167
|
-
|
|
161
|
+
推进任务:
|
|
168
162
|
|
|
169
|
-
```
|
|
163
|
+
```text
|
|
170
164
|
开始做「用户登录功能」
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
任务状态变为进行中。
|
|
174
|
-
|
|
175
|
-
### 5. 完成任务
|
|
176
|
-
|
|
177
|
-
```
|
|
178
165
|
「用户登录功能」做完了
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
### 6. 版本生命周期
|
|
182
|
-
|
|
183
|
-
```
|
|
184
|
-
启动版本 v1.0 → 锁定版本,不能再添加任务
|
|
185
|
-
完成版本 v1.0 → 所有任务完成
|
|
186
|
-
归档版本 v1.0 → 移入归档
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
### 7. 查看当前任务
|
|
190
|
-
|
|
191
|
-
```
|
|
192
166
|
当前在做什么?
|
|
193
167
|
```
|
|
194
168
|
|
|
195
|
-
|
|
169
|
+
自动排期:
|
|
196
170
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
```
|
|
171
|
+
```text
|
|
200
172
|
给 v1.0 的任务自动排期,从下周一开始
|
|
201
173
|
```
|
|
202
174
|
|
|
203
|
-
自动跳过周末和中国法定节假日。
|
|
204
|
-
|
|
205
175
|
## 环境变量
|
|
206
176
|
|
|
207
177
|
| 变量 | 说明 | 默认值 |
|
|
208
|
-
|
|
178
|
+
| --- | --- | --- |
|
|
209
179
|
| `API_PORT` | Web/API 统一服务端口 | `17173` |
|
|
210
180
|
| `DB_PATH` | SQLite 数据库路径 | `./data/data.db` |
|
|
211
181
|
| `WEB_DIST_PATH` | 前端构建产物目录 | `web/dist` |
|
|
212
|
-
| `
|
|
213
|
-
| `
|
|
214
|
-
| `
|
|
182
|
+
| `FRONTEND_URL` | Vite 调试模式 CORS origin | `http://localhost:5173` |
|
|
183
|
+
| `SESSION_SECRET` | Session 密钥 | `omt-session-secret-change-in-production` |
|
|
184
|
+
| `OMT_SERVER_URL` | MCP/API 服务地址 | `http://localhost:17173` |
|
|
185
|
+
| `OMT_TOKEN` | MCP Bearer Token | 空 |
|
|
186
|
+
| `OMT_PROJECT_NAME` | MCP 默认项目名称 | 空 |
|
|
187
|
+
|
|
188
|
+
## 技术栈
|
|
189
|
+
|
|
190
|
+
- 后端:Express.js + TypeScript + SQLite
|
|
191
|
+
- 前端:React 19 + Vite + TanStack Query + Tailwind CSS 4
|
|
192
|
+
- AI 交互:REST API + MCP stdio server
|
|
193
|
+
- 部署:Docker / Node.js 统一服务入口
|
|
215
194
|
|
|
216
|
-
##
|
|
195
|
+
## 链接
|
|
217
196
|
|
|
218
|
-
- [
|
|
219
|
-
- [
|
|
197
|
+
- 公共服务:[https://task.duojie.games](https://task.duojie.games)
|
|
198
|
+
- 英文版:[README_EN.md](README_EN.md)
|
|
199
|
+
- GitHub:[https://github.com/qq33357486/oh-my-task](https://github.com/qq33357486/oh-my-task)
|