任务管理器

基于Redis的本地任务管理器,提供现代Web界面、丰富的CLI和MCP服务器集成。

  • by sensolab
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 unmarco/supatask

使用说明

⚡ 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/health

2.访问Web界面

打开http://localhost:8000在浏览器中显示功能齐全的web UI。

3.安装CLI(可选)

单线安装:

./install-cli.sh

手动安装:

cd cli

4.使用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 20

CLI命令

命令 描述
list 列出带有可选筛选器(--status、--tags、--created after、--createed before)的任务
add <title> 创建新任务(--description、--status、--tags)
view <id> 通过时间跟踪查看任务详细信息
update <id> 更新任务(--title、--description、--status、--tags)
delete <id> 删除任务
start <id> 开始时间跟踪
stop <id> 停止时间跟踪
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)

许可证

麻省理工学院