轻量级工单管理系统

一个与Claude Code集成的轻量级工单管理系统,用于跟踪任务、错误和功能,实现用户与Claude之间的共享工作流程。

  • by julianss
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 julianss/tickets

使用说明

门票-克劳德码迷你JIRA

一个轻量级的票务管理系统,与 克劳德代码 通过MCP。使用您和Claude之间的共享工作流跟踪任务、错误和功能。

安装

1.克隆到您的Claude配置目录

git clone https://github.com/julianss/tickets ~/.claude/tickets

2.创建虚拟环境并安装依赖项

cd ~/.claude/tickets
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

3.配置MCP服务器

将以下内容添加到您的 ~/.claude.json (如果文件不存在,则创建该文件)。替换 USER 使用您的系统用户名:

{
  "mcpServers": {
    "tickets": {
      "type": "stdio",
      "command": "/home/USER/.claude/tickets/.venv/bin/python",
      "args": ["/home/USER/.claude/tickets/mcp_server.py"]
    }
  }
}

提示: 跑 echo $HOME 要获取主目录路径,请在上面的配置中替换它。

如果 ~/.claude.json 已与其他MCP服务器一起存在,只需添加 "tickets" 进入现有 "mcpServers" 对象。

4.Shell别名(可选,用于CLI/TUI)

添加到您的 ~/.bashrc 或 ~/.zshrc:

alias tickets='~/.claude/tickets/.venv/bin/python ~/.claude/tickets/cli.py'
alias tickets-ui='~/.claude/tickets/.venv/bin/python ~/.claude/tickets/tui.py'

然后重新加载: source ~/.bashrc (或 source ~/.zshrc)

5.重新启动克劳德代码

Claude Code在启动时读取MCP配置。配置后,重新启动它,以便Claude拿起工单工具。

运作原理

票务系统允许克劳德访问这些MCP工具:

工具 说明
list_tickets 列出当前项目的门票
get_ticket 阅读门票详情和评论
create_ticket 创建新票
update_ticket_status 更改票证状态
add_comment 为门票添加评论
search_tickets 在所有票字段中搜索

门票是 按项目范围 (您当前的工作目录),因此每个项目都有自己的一组票,同时共享一个数据库。

用法

与克劳德

自然地和克劳德谈谈:

"Create a ticket for implementing user authentication"
"Work on ticket #3"
"What tickets are pending?"
"Mark ticket #5 as ready to test"

命令行界面

# List tickets (current project)
tickets list
tickets list --status pending
tickets list --priority high
tickets list --all-projects        # Show all projects

# View ticket details
tickets show 1

# Create ticket
tickets create "Title" "Description"
tickets create "Bug fix" "Details..." --priority high --tags "bug,urgent"

# Edit ticket
tickets edit 1 --title "New title"
tickets edit 1 --priority low --tags "feature"

# Change status
tickets status 1 in_progress
tickets status 1 ready_to_test
tickets status 1 closed

# Add comment
tickets comment 1 "This is my feedback"

# Delete ticket
tickets delete 1
tickets delete 1 --yes             # Skip confirmation

终端用户界面

启动交互式TUI:

tickets-ui

主列表快捷方式:

关键 行动
n 创建新票证
Enter 查看门票详情
r 刷新列表
a 切换所有项目/当前项目
q 退出

门票详细信息快捷方式:

关键 行动
e 编辑工单
s 更改状态
c 添加评论
d 删除工单
Escape 返回列表

工作流程

┌─────────────┐     ┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   pending   │ ──► │ in_progress │ ──► │ready_to_test│ ──► │   closed    │
└─────────────┘     └─────────────┘     └─────────────┘     └─────────────┘
     You                Claude              You (QA)            Done!
   creates            works on it         tests & approves
                                                │
                                                ▼
                                          ┌─────────────┐
                                          │  rejected?  │
                                          │  back to    │
                                          │ in_progress │
                                          └─────────────┘
  1. 你 通过CLI、TUI或询问Claude创建工单
  2. 你 告诉克劳德:“处理X号票”
  3. 克劳德 读取工单,执行它,添加进度注释
  4. 克劳德 标记它 ready_to_test 完成后
  5. 你 测试实现
  6. 你 关闭它或将其发送回 in_progress 有反馈

建筑

~/.claude/tickets/
├── requirements.txt # Python dependencies
├── db.py            # Database layer (SQLite)
├── cli.py           # Command-line interface (Click + Rich)
├── mcp_server.py    # MCP server for Claude
├── tui.py           # Terminal UI (Textual)
└── tickets.db       # SQLite database (created on first run)

所有三个接口(CLI、TUI、MCP)共享相同的 db.py 层和 tickets.db 数据库。

故障排除

克劳德没有票务工具:

  • 添加MCP配置后重新启动Claude Code
  • 验证 ~/.claude.json 有 mcpServers.tickets 进入
  • 检查配置中的路径是否指向实际的venv python mcp_server.py

“找不到票”,但票存在:

  • 票按工作目录在项目范围内。使用 --all-projects (CLI)或 a 按键(TUI)查看全部
  • 确保您位于创建票证的同一目录中

运行MCP服务器时出现导入错误:

  • 确保你跑了 pip install -r requirements.txt 里面 .venv
  • 配置在 ~/.claude.json 必须指向 .venv/bin/python,而不是你的系统python

需求

  • Python 3.10+
  • 克劳德代码