⚡ Supatask
基于Redis的本地任务管理器,具有现代web界面、丰富的CLI和MCP服务器集成。
特性
- ✅ 任务管理:带有标签和状态跟踪的完整CRUD操作
- ⏱️ 时间跟踪:具有历史跟踪功能的任务的启动/停止计时器
- 📊 过滤:按状态、标记和日期范围筛选任务
- 📝 日志记录:带有历史分析的活动和系统日志
- 🌐 web界面:现代、灵敏的暗模式用户界面
- 💻 丰富的CLI:带有表格和颜色的漂亮命令行界面
- 🤖 MCP服务器:通过模型上下文协议集成AI助手
建筑
- 后端:FastAPI(Python 3.11+)
- 数据库:具有AOF持久性的Redis
- 前端:带有现代CSS的普通JavaScript
- 命令行界面:打字机+富人
- 部署:Docker编写
快速开始
1.启动应用程序
# Start Docker containers
docker compose up -d
# Verify services are running
curl http://localhost:8000/health2.访问Web界面
打开http://localhost:8000在浏览器中显示功能齐全的web UI。
3.安装CLI(可选)
单线安装:
./install-cli.sh手动安装:
cd cli4.使用CLI
# List tasks
python cli/supatask_cli.py list
# Add a task
python cli/supatask_cli.py add "Fix bug" --tags "urgent,backend"
# Start time tracking
python cli/supatask_cli.py start 1
# Stop time tracking
python cli/supatask_cli.py stop 1
# View logs
python cli/supatask_cli.py logs --limit 20CLI命令
| 命令 | 描述 |
|---|---|
list | 列出带有可选筛选器(--status、--tags、--created after、--createed before)的任务 |
add | 创建新任务(--description、--status、--tags) |
view | 通过时间跟踪查看任务详细信息 |
update | 更新任务(--title、--description、--status、--tags) |
delete | 删除任务 |
start | 开始时间跟踪 |
stop | 停止时间跟踪 |
logs | 查看活动/系统日志(--type,--limit) |
API终点
任务
POST /tasks-创建任务GET /tasks-列出任务(查询参数:状态、标签、created_after、created_before)GET /tasks/{id}-获取任务详细信息PUT /tasks/{id}-更新任务DELETE /tasks/{id}-删除任务POST /tasks/{id}/start-启动计时器POST /tasks/{id}/stop-停止计时器
日志
GET /logs-获取日志(查询参数:log_type、start_time、end_time、limit)
MCP(HTTP流传输)
POST /mcp/-JSON-RPC 2.0端点(初始化、工具/列表、工具/调用、ping)GET /mcp/-服务器发起的消息的可选SSE流
MCP集成
Supatask包括一个MCP服务器,实现 HTTP流传输 (MCP规范2025-06-18)用于AI辅助集成。
可用工具
create_task-创建带有标签的任务read_task-阅读任务详细信息list_tasks-使用筛选器列出任务update_task-更新任务delete_task-删除任务get_logs-检索活动/系统日志
Claude代码配置
添加到 ~/.config/claude-code/mcp.json:
{
"mcpServers": {
"supatask": {
"url": "http://localhost:8000/mcp/",
"transport": "http"
}
}
}协议细节
- 规格说明:药品监督管理委员会2025-06-18
- 运输:HTTP流式传输
- 消息格式:JSON-RPC 2.0
- 会话管理:通过
Mcp-Session-Id标头
示例用法
# Initialize connection
curl -X POST http://localhost:8000/mcp/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}},"id":1}'
# List available tools
curl -X POST http://localhost:8000/mcp/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":2}'
# Create a task
curl -X POST http://localhost:8000/mcp/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"create_task","arguments":{"title":"My Task","tags":["work"]}},"id":3}'数据模型
任务存储在Redis中,结构如下:
task:{id} Hash with title, description, status, created_at, updated_at
task:{id}:tags Set of tags
task:{id}:time Stream of time tracking entries
tasks Set of all task IDs
tasks:by_status:{status} Set of task IDs by status
logs:activity Stream of user-facing activity logs
logs:system Stream of debug/system logs发展
后端开发
后端支持开发模式下的热重载:
docker-compose up编辑文件 backend/ 服务器将自动重新加载。
停止应用程序
docker-compose down要删除Redis数据卷,请执行以下操作:
docker-compose down -v配置
环境变量(设置于 docker-compose.yml):
REDIS_URL-Redis连接URL(默认值:redis://redis:6379)LOG_LEVEL-日志记录级别(默认值:INFO)
许可证
麻省理工学院
