Token导航 LogoToken导航TokenDH.com
tasklog (Mzfr) logo
开发工具stdio官方级别未说明来源级核验

tasklog (Mzfr)

MCP Server

@modelcontextprotocol/inspector

tl 是一个极简的全局 Markdown 任务日志工具,提供 CLI、交互式 TUI 和 MCP 服务器支持,可在不改变现有 Markdown 结构的情况下管理任务。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
命令行工具Rust任务管理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

mzfr

提供方

mzfr

最后核验

2026/5/17 20:23

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @modelcontextprotocol/inspector tl mcp

详细介绍

太长了

具有CLI、交互式TUI和MCP服务器的最小全局标记任务日志。

灵感源自 Backlog.md,但其核心思想是保持现有markdown文件的原样。 tl 将结构化任务叠加在自由形式的markdown之上,而无需重写或重组内容。它支持具有不同角色的多个文件,因此您可以有一个主工作日志、一个单独的愿望清单和其他任何东西,所有这些都可以通过一个工具进行管理。

Backlog.md感觉更适合团队协作,需要单独的目录设置。我已经有了 log.md 我使用的文件混合了TODO、思想转储和活动更新。问题是低优先级任务一直被埋没,如果我在给定日期写一个TODO,它会在一周内消失在新条目下,我必须手动滚动以确保没有遗漏任何内容。这个想法与 tl 我可以继续以相同的方式使用我的日志,但每个TODO都会以结构化的方式进行跟踪,因此无论任务有多旧,都不会丢失。添加MCP支持是因为通过 PLAN.md 可能很难审查,让代理在任何项目中创建和跟踪任务并附上简短的注释似乎是一种更好的方法。

运作原理

tl 将日志文件视为事实的来源。它识别遵循严格模式的结构化任务:

- [ ] tag-1 some task title
	- a note on this task
- [x] tag-2 a completed task
- [ ] tag-3! a high priority task

文件中的其他所有内容(自由形式的项目符号、散文、标题、链接)都保持不变。各节由日期标题分隔:

### 12/02/2026
- [ ] dev-1! review the scan results
	- check the false positives
	- escalate critical findings

### 11/02/2026
- [x] infra-3 rotate production keys

标签充当项目标识符。每个标签都有自己的自动递增计数器,所以 dev-1, dev-2, infra-1等等都是独立的。

__优先__ 标有a ! 在任务ID之后(例如。 dev-1!).默认情况下,所有内容都是低优先级的,可以随时切换。

__任务链接__ 自动检测。如果一张便条包含以下内容 continuing bb-5 with a modification,参考 bb-5 是公认的,可以在TUI中遵循。

安装

需要Rust 1.88+。

cargo install --path .

这将安装 tl 二进制到 ~/.cargo/bin/.

入门

# Initialize with the default log location (~/.config/tasklog/log.md)
tl init

# Or point to your existing log file
tl init --log ~/notes/log.md

这将创建:

  • ~/.config/tasklog/config.toml --配置
  • ~/.config/tasklog/state.json --用于ID分配的标记计数器
  • 您的日志文件(如果不存在则创建,如果存在则保留)

命令行界面

# Add a task
tl add dev implement the login flow
# => created dev-1

# Add a high priority task
tl add -p dev fix the auth bypass
# => created dev-2

# Mark a task as done
tl done dev-1
# => completed dev-1

# Reopen a completed task (moves it to today's section)
tl undo dev-1
# => reopened dev-1

# Edit a task's title
tl edit dev-1 implement the login flow v2
# => edited dev-1

# Delete a task and all its notes
tl delete dev-1
# => deleted dev-1

# Toggle priority
tl priority dev-2
# => dev-2 marked as high priority

# Add a note to a task
tl note infra-1 blocked on access request
# => noted on infra-1

# Rename a tag across the entire log
tl rename infra infrastructure
# => renamed infra -> infrastructure

# Search across tasks and notes
tl search rotate
# => [x] infra-1 rotate production credentials

# Show today's raw section
tl today

# Manage multiple log files (see Multi-file support)
tl file add --path ~/wishlist.md --label wishlist --mode fixed --tags wish --insert top
tl file list
tl file remove wishlist

文本用户界面

tl tui

TUI有三个面板: __项目__ (左)列出了所有具有打开/总计数的标签, __打开__ (中心)显示所选项目的未完成任务,以及 __完成__ (右)显示已完成的任务。

优先级任务排序到顶部并以红色呈现。标签截断为 当终端太窄时。

键绑定

关键行动
j / k向上/向下导航
h / l左/右开关面板
Tab / Shift+Tab循环面板焦点
Enter打开任务详细信息弹出窗口
a添加任务(如果在任务面板上,则自动选择标记)
e编辑所选任务标题
x删除所选任务(或在详细弹出窗口中注释)
d将所选任务标记为已完成
u撤消已完成的任务(从“已完成”面板)
n为所选任务添加注释
p切换优先级
R重命名标记(从“项目”面板)
/搜索
c清除搜索筛选器
.切换隐藏没有打开任务的项目
g / G跳到顶部/底部
r从磁盘刷新
b点击任务链接后返回
?显示帮助
q / Esc关闭弹出窗口或退出

详细信息弹出窗口

Enter 在任何任务上打开详细信息弹出窗口。里面:

  • j / k 选择单个笔记
  • x 删除所选注释(如果未选择注释,则删除任务本身)
  • e 编辑任务标题
  • p 切换优先级
  • 注释中的任务ID引用(如 bb-5)突出显示。按 n 在检测到的链接中循环 f 跟随/跳转到链接的任务。 b 回去。

MCP服务器

tl mcp

服务器通过以下方式进行通信 stdio 并公开了这些工具:

工具说明
init_log初始化任务日志环境
create_task使用标签和标题创建新任务
complete_task按ID将任务标记为已完成
add_note向现有任务添加注释
search_tasks搜索任务和笔记,可选择按标签过滤
get_today_section获取今天部分的原始文本

大多数MCP兼容工具接受服务器定义,如:

{
  "tasklog": {
    "type": "local",
    "command": ["tl", "mcp"]
  }
}

唯一的要求是 tl 在你的 PATH。您可以使用MCP检查器进行交互式测试:

npx @modelcontextprotocol/inspector tl mcp

多文件支持

默认情况下 tl 对单个日志文件进行操作。您可以使用以下命令以不同的模式和行为注册其他文件 tl file:

# Add a wishlist file that only accepts the "wish" tag, with new tasks at the top
tl file add \
  --path ~/notes/wishlist.md \
  --label wishlist \
  --mode fixed \
  --tags wish \
  --insert top

# Add a second general-purpose log
tl file add \
  --path ~/notes/work.md \
  --label work \
  --mode variable

# List configured files
tl file list
# => [main] ~/.config/tasklog/log.md (variable)
# => [wishlist] ~/notes/wishlist.md (fixed(wish), insert=top)
# => [work] ~/notes/work.md (variable)

# Remove a file
tl file remove work

当你添加第一个文件时, tl 自动迁移您现有的 log_path 随着 main 变量文件,这样就不会有任何损坏。

文件模式

__变量__ 文件接受任何标签。这是默认设置。如果你有多个变量文件,并添加了一个带有新标签的任务,TUI将显示一个文件选择器,这样你就可以选择它的位置。

__固定的__ 文件只接受特定的标签。一个固定文件 tags = ["wish"] 将永远不会收到任何其他标签的任务,并且 wish 标签将始终路由到该文件。这可以防止事情混淆。

插入位置

每个文件都有一个插入位置,用于控制新日期部分的显示位置:

  • bottom (默认)--新建 ### date 章节附在末尾。这是正常的按时间顺序的日志行为。
  • top --新的部分被添加到文件的顶部。当你有一个现有的文件,其中包含你想保留在下面的自由形式内容时,这很有用,比如一个带有注释和链接的愿望清单,应该放在底部,而新跟踪的任务则显示在顶部。

路由如何工作

当您添加任务时,路由器会决定将其发送到哪个文件:

  1. 如果任何固定文件声明了标签,则任务将转到那里。
  2. 否则,所有变量文件都符合条件。如果只有一个,它是自动的。如果有多个,TUI会显示一个选择器,CLI默认为第一个。

对于现有任务的操作(已完成、撤消、注释、编辑、删除),路由器会扫描所有文件,按ID查找任务。标记重命名也会在所有文件中操作。

今天搜索,TUI聚合每个注册文件中的任务。在多文件模式下,TUI面板在其标题中显示文件标签(例如。 Open — wish — wishlist).

配置格式

[[files]] 数组输入 config.toml 驱动多文件。如果缺席, log_path 用作单个变量文件:

log_path = "~/.config/tasklog/log.md"
date_format = "DD/MM/YYYY"
note_indent = 6
scan_window_lines = 5000

[[files]]
path = "~/.config/tasklog/log.md"
label = "main"
mode = "variable"

[[files]]
path = "~/notes/wishlist.md"
label = "wishlist"
mode = "fixed"
tags = ["wish"]
insert = "top"

配置

Config住在 ~/.config/tasklog/config.toml:

log_path = "~/.config/tasklog/log.md"
date_format = "DD/MM/YYYY"
note_indent = 6
scan_window_lines = 5000
字段描述默认值
log_path日志文件的路径(支持 ~)~/.config/tasklog/log.md
date_format节标题的日期格式DD/MM/YYYY
note_indent缩进注释的空格数6
scan_window_lines仅解析日志的最后N行以了解性能5000
files多文件配置(参见 多文件支持)未设置
hide_empty_projectsTUI从没有隐藏打开任务的项目开始(使用 .)false

关键在于 log_path 您可以将其指向您已经使用的现有markdown文件。 tl 将在您的自由形式内容旁边添加结构化任务,而不会干扰它。当您开始使用多文件时, log_path 如果没有,仍然可以作为后备方案 [[files]] 已配置。

设计决策

  • __叠加,而非接管__ -- tl 只读取和写入与其严格任务模式匹配的行。你的自由标记对它是不可见的,也从未被修改过。
  • __带路由的多文件__ --任务根据标记路由到正确的文件。固定文件强制标记边界,可变文件接受任何东西。ID在所有文件中都是全局唯一的。
  • __全局,而不是每个项目__ --一个用于所有事情的工具,带有用于分隔关注点的标签。多个文件允许您按域(工作日志、愿望清单等)拆分,而不会丢失统一视图。
  • __原子写入__ --所有文件突变都使用 write-to-temp 然后 rename,因此您的日志永远不会处于半写状态。
  • __文件锁定__ --通过以下方式并发CLI/TUI/MCP访问是安全的 flock.
  • __扫描窗口__ --每个文件只解析最后N行,因此即使在大型日志文件上,该工具也能保持快速。

目录标签

目录标签

命令行工具Rust任务管理本地部署Markdown工具CLI工具TUI界面MCP支持

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP