@qq33357486/oh-my-task 1.4.25 → 1.4.26
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 +72 -93
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,21 +1,38 @@
|
|
|
1
1
|
# oh-my-task
|
|
2
2
|
|
|
3
|
-
AI
|
|
3
|
+
面向个人、小团队和 AI Agent 的轻量任务管理系统。用一个统一入口管理项目、版本、任务、排期、REST API 和 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
|
+
- **适合真实项目推进**:按项目、版本、主任务、子任务组织工作,不只是普通 TODO。
|
|
13
|
+
- **版本生命周期清晰**:创建 → 启动/锁定 → 完成 → 归档,适合阶段性交付。
|
|
14
|
+
- **智能排期**:根据预计天数自动计算排期,并跳过周末和中国法定节假日。
|
|
15
|
+
- **AI 协作友好**:提供 REST API 和 MCP 工具,AI 助手可以直接创建、查询、推进和完成任务。
|
|
16
|
+
- **公共服务与自托管并存**:可以直接使用 `task.duojie.games`,也可以部署到自己的服务器。
|
|
17
|
+
- **权限与后台**:支持 Session 登录、Bearer Token、用户管理、系统配置和统计面板。
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
## 直接使用公共服务
|
|
20
|
+
|
|
21
|
+
1. 打开 [task.duojie.games](https://task.duojie.games)。
|
|
22
|
+
2. 注册账号并创建项目。
|
|
23
|
+
3. 创建版本和任务,或在设置页创建 Token 后接入 MCP。
|
|
24
|
+
|
|
25
|
+
公共服务适合快速开始、个人项目和轻量团队协作。如果你需要完全掌控数据,可以使用下面的 Docker 自托管方式。
|
|
26
|
+
|
|
27
|
+
## 页面预览
|
|
28
|
+
|
|
29
|
+

|
|
30
|
+
|
|
31
|
+

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