展示HN:我用更快、更简单的基于Markdown的任务追踪器取代了Beads。
Show HN: I replaced Beads with a faster, simpler Markdown-based task tracker

原始链接: https://github.com/wedow/ticket

## tk:基于 Git 的 AI 代理问题跟踪器 **tk** 是一款轻量级、基于 CLI 的问题跟踪器,旨在取代旧的“beads”系统,用于 AI 代理。它将工单存储为可读的 Markdown 文件,带有 YAML 前置信息,存储在 `.tickets/` 目录中,方便 AI 访问上下文窗口。 主要功能包括:依赖跟踪、工单链接、状态管理(打开、进行中、关闭)以及强大的查询功能(使用 `jq`)。工单通过嵌入在文件名中的 ID 标识,允许在 IDE 中快速导航(例如,通过 `git log` 和 Ctrl+Click)。 **安装** 通过 Homebrew (macOS/Linux)、Arch AUR 或克隆 Git 仓库非常简单——它是一个可移植的 bash 脚本,仅需要 coreutils 和 `jq`。 **使用** 围绕 `tk create`、`tk start`、`tk close`、`tk dep`(用于依赖项)、`tk ls`(列出工单)和 `tk query` 等命令展开。`migrate-beads` 命令简化了从 beads 系统迁移的过程。 tk 旨在易于被类似 Claude Opus 的 AI 模型理解,且无需过多提示。

## Ticket:为AI代理设计的更简单的任务追踪器 一位开发者用更精简、基于bash的“ticket”替代了日益复杂的Beads任务追踪器,该工具专为Claude Code等AI编码代理设计。其核心理念——基于图的任务依赖关系——得以保留,但为了提高速度和简洁性,移除了不必要的功能。 Ticket使用纯文本文件和核心工具(如`awk`),避免了像SQLite这样更复杂的解决方案。它旨在作为一种轻量级的“底层工具”,允许代理在编写代码的同时管理任务。 许多评论者也强调了类似的需求,提到了“Beans”(一种基于Markdown的追踪器)以及与现有问题追踪器(如GitHub Issues)集成的可能性。 讨论的重点是本地、对代理友好的任务管理与集中式Web系统之间的优势,任务依赖追踪的重要性,以及使用AI代理管理多个并行任务的挑战。作者计划发布Claude Skills来简化使用,并欢迎对潜在改进的反馈,包括删除功能以及与现有平台的集成。
相关文章

原文

The git-backed issue tracker for AI agents. tk is inspired by the Joe Armstrong post Minimal Viable Program with additional quality of life features for managing and querying against complex issue dependency graphs.

tk was written as a full replacement for beads. It shares many similar commands but without the need for keeping a SQLite file in sync or a rogue background daemon mangling your changes. It ships with a migrate-beads command to make this a smooth transition.

Tickets are markdown files with YAML frontmatter in .tickets/. This allows AI agents to easily search them for relevant content without dumping ten thousand character JSONL lines into their context window.

Using ticket IDs as file names also allows IDEs to quickly navigate to the ticket for you. For example, you might run git log in your terminal and see something like:

nw-5c46: add SSE connection management 

VS Code allows you to Ctrl+Click or Cmd+Click the ID and jump directly to the file to read the details.

Homebrew (macOS/Linux):

brew tap wedow/tools
brew install ticket

Arch Linux (AUR):

yay -S ticket  # or paru, etc.

From source (auto-updates on git pull):

git clone https://github.com/wedow/ticket.git
cd ticket && ln -s "$PWD/ticket" ~/.local/bin/tk

Or just copy ticket to somewhere in your PATH.

tk is a portable bash script requiring only coreutils, so it works out of the box on any POSIX system with bash installed. The query command requires jq. Uses rg (ripgrep) if available, falls back to grep.

Add this line to your CLAUDE.md or AGENTS.md:

This project uses a CLI ticket system for task management. Run `tk help` when you need to use it.

Claude Opus picks it up naturally from there. Other models may need additional guidance.

tk - minimal ticket system with dependency tracking

Usage: tk <command> [args]

Commands:
  create [title] [options] Create ticket, prints ID
    -d, --description      Description text
    --design               Design notes
    --acceptance           Acceptance criteria
    -t, --type             Type (bug|feature|task|epic|chore) [default: task]
    -p, --priority         Priority 0-4, 0=highest [default: 2]
    -a, --assignee         Assignee [default: git user.name]
    --external-ref         External reference (e.g., gh-123, JIRA-456)
    --parent               Parent ticket ID
  start <id>               Set status to in_progress
  close <id>               Set status to closed
  reopen <id>              Set status to open
  status <id> <status>     Update status (open|in_progress|closed)
  dep <id> <dep-id>        Add dependency (id depends on dep-id)
  dep tree [--full] <id>   Show dependency tree (--full disables dedup)
  undep <id> <dep-id>      Remove dependency
  link <id> <id> [id...]   Link tickets together (symmetric)
  unlink <id> <target-id>  Remove link between tickets
  ls [--status=X]          List tickets
  ready                    List open/in-progress tickets with deps resolved
  blocked                  List open/in-progress tickets with unresolved deps
  closed [--limit=N]       List recently closed tickets (default 20, by mtime)
  show <id>                Display ticket
  edit <id>                Open ticket in $EDITOR
  add-note <id> [text]     Append timestamped note (or pipe via stdin)
  query [jq-filter]        Output tickets as JSON, optionally filtered
  migrate-beads            Import tickets from .beads/issues.jsonl

Tickets stored as markdown files in .tickets/
Supports partial ID matching (e.g., 'tk show 5c4' matches 'nw-5c46')
tk migrate-beads

# review new files if you like
git status

# check state matches expectations
tk ready
tk blocked

# compare against
bd ready
bd blocked

# all good, let's go
git rm -rf .beads
git add .tickets
git commit -am "ditch beads"

For a thorough system-wide Beads cleanup, see banteg's uninstall script.

MIT

联系我们 contact @ memedata.com