首页龙虾技能列表 › 时迹 — 实用工具

时迹 — 实用工具

v1.0.0

时迹是一款实用的工具技能,能够帮助用户完成相关任务,提升工作效率。

0· 138·0 当前·0 累计
by @masir1128 (Masir1128)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/13
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
技能说明与运行时指令基本一致,但 SKILL.md 需要 TIMEFRIEND_TOKEN(将用户内容发送到 timefriend.xin),而注册表元数据没有声明该凭证,这一不一致值得注意。
评估建议
该技能会把你的时间记录、日记和待办等内容发送到外部域名 timefriend.xin,并要求在环境变量中放入 TIMEFRIEND_TOKEN,但技能元数据没有声明该凭证。建议在安装前:1) 确认 timefriend.xin 是否为你信任的服务,查看其隐私政策和服务条款;2) 确认 TIMEFRIEND_TOKEN 的权限范围(是否可撤销、是否仅限该服务);3) 不要用重要账户或全局凭证,若可能为该技能创建单独/最小权限的 token;4) 要求技能发布者/维护者在注册表元数据中明确列出 TIMEFRIEND_TOKEN 作为必需凭证(并把 primary credential 设置为该项);5) 先用非敏感测试数据验证功能;6) 如果你不能确认服务信誉或 token 的最小权限性,慎重安装并避免将私密日记等敏感内容通过此技能发送。
详细分析 ▾
用途与能力
技能名称与描述(记录时间、写复盘、待办、收集箱、今日统计)与 SKILL.md 中对 https://timefriend.xin 的 API 调用一致;这些 API 调用与声明的功能相符。
指令范围
运行时指令只描述如何解析自然语言并向 timefriend.xin 的特定端点发起请求(records, daily-reviews, todos, inbox-categories 等)。指令未要求读取本地文件、其他环境变量或将数据发送到除 timefriend.xin 之外的端点。但需注意:复盘日记按原文追加并上报,用户私密文字会被原样传送到外部服务。
安装机制
无安装规范且为仅指令(没有代码文件),不会在本地写入或执行下载内容,安装风险低。
凭证需求
SKILL.md 明确要求在 OpenClaw 环境变量中设置 TIMEFRIEND_TOKEN(用于 Bearer 授权),但注册表元数据没有列出任何必需环境变量或主凭证(primary credential 为 none)。这是一个透明性/一致性问题:技能在运行时需要访问敏感凭证但并未在元数据中声明,用户/平台无法在安装前看到这一需求。凭证本身会授予对用户时间记录、日记、待办等数据的访问/修改权限,应确认该 Token 的作用域、撤销方式和隐私政策。
持久化与权限
技能没有请求长期常驻(always: false),默认允许模型按需调用(平台默认),且没有指令修改其它技能或系统范围配置。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/3/18

首次发布 TimeFriend 时迹 Skill。 支持 7 项操作: - 自然语言记录时间段(含标签、时区解析) - 追加写复盘日记(保留原文,不改写) - 创建待办任务 - 添加到收集箱(支持多分类选择) - 查询今日待办清单 - 查询收集箱内容 - 查询今日时间记录统计 需在 timefriend.xin 设置页生成 Token 后配置 TIMEFRIEND_TOKEN 环境变量使用。

● 无害

安装命令 点击复制

官方npx clawhub@latest install shiji-timefriend
镜像加速npx clawhub@latest install shiji-timefriend --registry https://cn.clawhub-mirror.com

技能文档

通过自然语言向 TimeFriend 记录时间、写复盘日记、创建待办,并查询今日统计。

配置

在 OpenClaw 环境变量中设置:

TIMEFRIEND_TOKEN=tf_你的Token(在 timefriend.xin 设置页生成)

支持的操作

1. 记录时间

触发词:用户说"记录时间"、"刚才做了什么"、"帮我记一下"

调用:

POST https://timefriend.xin/api/records
Authorization: Bearer {TIMEFRIEND_TOKEN}
Content-Type: application/json

{ "content": "活动名称", "startTime": "2026-03-11T08:00:00+08:00", "endTime": "2026-03-11T09:30:00+08:00", "tags": ["标签1", "标签2"] }

自然语言解析规则

  • "8:00-9:30 读书 #学习" → content=读书, tags=["学习"]
  • "今天下午3点到5点开会 #工作/项目" → 换算为当天具体时间, tags=["工作", "项目"]
  • 标签以 # 开头,多级用 / 分隔
  • 时间默认为今天;若用户说"昨天"则用前一天日期
  • 默认时区:北京时间(UTC+8),所有口语时间按北京时间解析后提交
  • 成功后回复:✅ 已记录:{content} {startTime}-{endTime}

2. 写复盘日记(追加模式)

触发词:用户说"写日记"、"记录复盘"、"我今天的思考"、"追加到日记"、"记一下"(后面跟一段感想/思考类内容)

逻辑(两步操作)

第一步:获取 今日已有内容

GET https://timefriend.xin/api/daily-reviews/{今日日期YYYY-MM-DD}
Authorization: Bearer {TIMEFRIEND_TOKEN}
  • 如果返回 200:拿到 data.content(HTML 格式),准备追加
  • 如果返回 404:今天还没有日记,从空内容开始

第二步:PUT 拼接后的完整内容

PUT https://timefriend.xin/api/daily-reviews/{今日日期YYYY-MM-DD}
Authorization: Bearer {TIMEFRIEND_TOKEN}
Content-Type: application/json

{ "content": "{已有内容}{新段落}" }

拼接规则

  • 新内容用

    标签包裹:

    用户说的文字

  • 若今天已有内容,直接在末尾拼接:{existing_content}

    新内容

  • 若今天没有内容,直接发:

    新内容

  • 内容原文存入,不做 AI 改写,保持用户的原始表达

成功后回复:📝 已追加到今日复盘(共 {wordCount} 字)

3. 创建待办任务(添加到待办清单)

触发词:用户说"添加待办"、"记一个任务"、"todo"、"加到待办"

调用:

POST https://timefriend.xin/api/todos
Authorization: Bearer {TIMEFRIEND_TOKEN}
Content-Type: application/json

{ "title": "任务名称", "status": "pending" }

成功后回复:✅ 待办已添加:{title}

4. 添加到收集箱

触发词:用户说"加到收集箱"、"放进收集箱"、"inbox"、"先收集一下"

收集箱和待办清单不同:收集箱用于临时存放想法/任务,不需要指定日期。

逻辑(两步操作)

第一步:获取用户的收集箱分类列表

GET https://timefriend.xin/api/inbox-categories
Authorization: Bearer {TIMEFRIEND_TOKEN}

返回示例:

{
  "success": true,
  "data": [
    { "id": 12, "name": "工作", "sortOrder": 0 },
    { "id": 13, "name": "想法", "sortOrder": 1 }
  ]
}
  • 如果 data 为空数组:告知用户"你还没有创建收集箱分类,请先在 timefriend.xin 的收集箱页面创建一个分类",终止操作
  • 如果只有一个分类:直接使用该分类的 id
  • 如果有多个分类:询问用户"你有以下收集箱分类:{分类名列表},请问放到哪个?",等用户选择后再继续

第二步:创建收集箱条目

POST https://timefriend.xin/api/todos
Authorization: Bearer {TIMEFRIEND_TOKEN}
Content-Type: application/json

{ "title": "条目名称", "status": "pending", "categoryId": {第一步获取的分类id} }

注意:收集箱条目不需要 taskDate 字段(留 null 即可)。

成功后回复:📥 已加入收集箱「{分类名}」:{title}

5. 查询待办清单

触发词:用户说"今天有什么待办"、"我的任务"、"待办有哪些"、"查一下我的待办"

调用:

GET https://timefriend.xin/api/todos?taskDate=今天日期(YYYY-MM-DD)
Authorization: Bearer {TIMEFRIEND_TOKEN}

将返回的待办列表整理后告知用户,例如: "今天有 3 个待办:✅ 整理会议纪要(已完成)、⏳ 写周报(未完成)、⏳ 回复邮件(未完成)"

  • status 为 待处理 → 未完成
  • status 为 在...中-progress → 进行中
  • status 为 已完成 → 已完成

6. 查询收集箱

触发词:用户说"收集箱里有什么"、"查收集箱"、"我收集了什么"

逻辑(两步操作)

第一步:获取收集箱分类名称(用于显示)

GET https://timefriend.xin/api/inbox-categories
Authorization: Bearer {TIMEFRIEND_TOKEN}

第二步:获取所有收集箱条目

GET https://timefriend.xin/api/todos?taskDate=null
Authorization: Bearer {TIMEFRIEND_TOKEN}

⚠️ 极其重要:URL 中必须包含 taskDate=null(字面字符串 "null"),这是区分收集箱与普通待办的唯一依据。

  • ✅ 正确:/api/todos?taskDate=空
  • ❌ 错误:/api/todos(不带参数,会返回所有日期的待办,数量会远超实际收集箱条目数)
  • ❌ 错误:/api/todos?status=待处理(只过滤状态,不限制 taskDate,同样会混入普通待办)

返回的每条数据包含 categoryId,对照第一步的分类列表显示分类名。

展示规则

  • 只显示 status待处理在...中-progress 的活跃任务
  • 过滤掉 status已取消已完成 的条目
  • 如果有 已完成 的任务,在最后补一句:"另有 X 条已完成,如需查看请告知"

整理后告知用户,例如: "你的收集箱共有 5 条: 📁 工作:写一篇关于时间管理的文章、整理 Q1 复盘 📁 想法:买一本《心流》、学习 Swift 语言 📁 未分类:看牙医"

注意:categoryId 为 null 的条目显示为"未分类"。

7. 查询今日统计

触发词:用户说"今天记录了什么"、"查统计"、"今天怎么样"

调用:

GET https://timefriend.xin/api/records?date=今天日期(YYYY-MM-DD)
Authorization: Bearer {TIMEFRIEND_TOKEN}

将返回的记录列表整理后用自然语言告知用户,例如: "今天共记录了 5 段时间,合计 6.5 小时。最长一段:工作/项目(3小时)。"

错误处理

  • 401:令牌 无效或已撤销,提示用户去 timefriend.xin 重新生成
  • 400:参数错误,检查格式是否正确(若提示 source 不 allowed,请去掉 source 字段)
  • 其他:提示"服务暂时不可用,请稍后再试"

示例对话

用户:帮我记一下今天早上 8 点到 9 点半读书,标签学习 OpenClaw:✅ 已记录:读书 08:00-09:30 #学习

用户:添加一个待办,整理会议纪要 OpenClaw:✅ 待办已添加:整理会议纪要

用户:把"买一本关于时间管理的书"加到收集箱 OpenClaw:(你有两个分类:工作、想法,请问放到哪个?) 用户:想法 OpenClaw:📥 已加入收集箱「想法」:买一本关于时间管理的书

用户:写日记,今天状态很好,上午专注工作了三小时,感觉效率很高,下午和团队开了个很有成效的会 OpenClaw:📝 已追加到今日复盘(共 42 字)

用户:再补充一下,晚上读了半小时书,感觉很放松 OpenClaw:📝 已追加到今日复盘(共 63 字)

数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务