Visual HTML Renderer
u-ichi/reviewable-html-workbench
HTMLを最終成果物として生成・検証・プレビューしたい時に使う共通レンダラー。Use this shared renderer when the user wants content turned into a final, validated, previewable HTML artifact.
基于潘农菲翻译的《时间盒》,为 OpenClaw 打造的全天任务执行系统。早晨用一段对话规划全天、讨论优先级、锁定时间盒;执行时 AI 完全不打扰;每盒结束做 30 秒快速收集;全天结束生成每日总结并自动同步到 Flomo、Notion 等工具。支持苹果日历、飞书、Google…
$ npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-timebox-cpr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills openclaw-timebox-cpr --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/openclaw-timebox .claude/skills/openclaw-timebox-cpr && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "openclaw-timebox-cpr" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/openclaw-timebox into .claude/skills/openclaw-timebox-cpr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-timebox-cpr", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/openclaw-timeboxType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-timebox-cpr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills openclaw-timebox-cpr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/openclaw-timebox .agents/skills/openclaw-timebox-cpr && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "openclaw-timebox-cpr" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/openclaw-timebox into .agents/skills/openclaw-timebox-cpr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-timebox-cpr", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-timebox-cpr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills openclaw-timebox-cpr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/openclaw-timebox .cursor/skills/openclaw-timebox-cpr && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "openclaw-timebox-cpr" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/openclaw-timebox into .cursor/skills/openclaw-timebox-cpr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-timebox-cpr", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/openclaw-timebox--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-timebox-cpr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills openclaw-timebox-cpr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/openclaw-timebox .gemini/skills/openclaw-timebox-cpr && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "openclaw-timebox-cpr" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/openclaw-timebox into .gemini/skills/openclaw-timebox-cpr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-timebox-cpr", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills openclaw-timebox-cprInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-timebox-cpr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/openclaw-timebox .github/skills/openclaw-timebox-cpr && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "openclaw-timebox-cpr" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/openclaw-timebox into .github/skills/openclaw-timebox-cpr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-timebox-cpr", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-timebox-cpr -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills openclaw-timebox-cpr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/openclaw-timebox .opencode/skills/openclaw-timebox-cpr && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "openclaw-timebox-cpr" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/openclaw-timebox into .opencode/skills/openclaw-timebox-cpr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-timebox-cpr", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
openclaw-timebox-cpr基于潘农菲翻译的《时间盒》,为 OpenClaw 打造的全天任务执行系统。早晨用一段对话规划全天、讨论优先级、锁定时间盒;执行时 AI 完全不打扰;每盒结束做 30 秒快速收集;全天结束生成每日总结并自动同步到 Flomo、Notion 等工具。支持苹果日历、飞书、Google…
Openclaw Timebox Cpr is an agent skill from LeoYeAI/openclaw-master-skills. 基于潘农菲翻译的《时间盒》,为 OpenClaw 打造的全天任务执行系统。早晨用一段对话规划全天、讨论优先级、锁定时间盒;执行时 AI 完全不打扰;每盒结束做 30 秒快速收集;全天结束生成每日总结并自动同步到 Flomo、Notion 等工具。支持苹果日历、飞书、Google 日历自动占位,以及将时间盒任务双向同步到滴答清单(TickTick)。触发词:"时间盒"、"timebox"、"开始今天的规划"、"帮我规划任务"、"start timebox"、"task planning"。
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `README.md`, `_meta.json` and `ticktick_auth.py`).
It sits in Agent Workflows, covering Planning. It works with Notion. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
python3npmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.ticktick.comopen.feishu.cnticktick.comgoogleapis.comapi.notion.comdocs.googleapis.comAlso links to:
clawhub.aideveloper.ticktick.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
CLIENT_SECRETFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Openclaw Timebox Cpr loads about 4.7k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 728 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 728 words, ~4,652 tokens.
.claude/skills/openclaw-timebox-cpr/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.一套全天维度的任务管理工作法,分四个阶段:
早晨规划(PLAN)→ 执行时间盒(RUN)→ 单盒收集(CHECK)→ 全天复盘(REVIEW)每个时间盒是一个不可拆分的执行单元,AI 不干预盒内执行细节,只负责规划、衔接和复盘。
/openclaw-timebox-cpr # 开始今天的规划
/openclaw-timebox-cpr --run # 跳过规划,直接开始一个时间盒
/openclaw-timebox-cpr --check # 完成一个时间盒后做快速收集
/openclaw-timebox-cpr --review # 全天结束后做整体复盘
/openclaw-timebox-cpr --log # 查看今日日志摘要按优先级搜索以下路径,找到即用:
{project}/.baoyu-skills/openclaw-timebox-cpr/EXTEND.md~/.baoyu-skills/openclaw-timebox-cpr/EXTEND.md如果 EXTEND.md 不存在,MUST 执行首次配置(见下方章节),完成后继续。
default_timebox: 25 # 默认单个时间盒时长(分钟)
calendar: macos # 日历工具(见支持列表)
calendar_name: 工作 # 日历名称/账户
calendar_alert_before: 2 # 提醒提前几分钟
log_backend: local # 日志工具(见支持列表)
log_dir: ~/.openclaw/logs # 仅 local 模式使用
log_token: # 第三方日志工具的 Token/Key(如需要)
log_workspace: # 第三方日志工具的空间/数据库 ID(如需要)
task_sync: none # 任务同步:ticktick(国际版)| dida365(中国版,使用 dida-cli)| none
ticktick_token_file: ~/.config/timebox/ticktick.json # ticktick 国际版 token 文件路径
ticktick_project_id: # ticktick 国际版:同步到哪个清单(留空则用收件箱)
dida_project_id: # dida365 中国版:同步到哪个清单 ID(留空则用收件箱)
lang: zh # zh | en
runtime: codebuddy # 运行环境:codebuddy | openclawEXTEND.md 不存在时,一次性提问以下四项,创建文件后继续。
你常用的专注时长是多少分钟? 推荐:25 分钟(番茄钟)/ 45 分钟(深度工作)/ 90 分钟(长任务)/ 自定义
你用哪个日历记录时间安排?时间盒会自动在日历里创建占位事件。
| 选项 | 说明 |
|---|---|
macos | 苹果日历(Apple Calendar),本地,无需配置 |
wecom | 企业微信日历,需要企业微信登录态 |
feishu | 飞书日历,需要飞书 API Token |
google | Google 日历,需要 Google OAuth |
none | 不使用日历 |
选择后追问:
macos:使用哪个日历名称?(默认"工作",不存在则用默认日历)feishu / google / wecom:需要提供对应 Token 或引导完成授权是否将每个时间盒任务自动同步到滴答清单?规划时创建任务,完成时标记勾选。
| 选项 | 说明 |
|---|---|
ticktick | 同步到 TickTick 国际版(ticktick.com) |
dida365 | 同步到滴答清单中国版(dida365.com,使用 dida-cli) |
none | 不同步(默认) |
⚠️ 国际版与中国版账号完全独立,token 不互通,请根据你的实际登录平台选择。
dida365(中国版,推荐)使用 dida-cli 方案,无需注册开发者 App,一条命令完成授权。
Step 1:检查 dida-cli 是否已安装且已登录
dida auth statusStep 2:安装 dida-cli 并授权
npm install -g @suibiji/dida-cli
dida auth login浏览器弹出滴答清单授权页,登录并授权后返回命令行即完成。授权完成后再次执行 dida auth status 确认。
Step 3:选择同步清单
"要同步到哪个清单?(留空用收件箱,或告诉我清单名称)"
AI 拉取用户现有清单并展示:
dida project list --json用户选择后,将清单 ID 写入 dida_project_id(留空则用收件箱)。
ticktick(国际版)Step 1:检查 token 是否已存在且有效
python3 -c "
import json, urllib.request
try:
t = json.load(open('$HOME/.config/timebox/ticktick.json'))
req = urllib.request.Request('https://api.ticktick.com/open/v1/project')
req.add_header('Authorization', f'Bearer {t[\"access_token\"]}')
urllib.request.urlopen(req); print('ok')
except Exception as e: print('fail')
"ok → 跳到 Step 4fail → 继续 Step 2Step 2:引导注册开发者 App(首次必做,约 3 分钟)
AI 告知用户:
"需要先在 TickTick 开放平台注册一个 App,获取 client_id 和 client_secret,整个过程约 3 分钟,只需做一次。
请按以下步骤操作:
- 访问 https://developer.ticktick.com/ 用 TickTick 账号登录
- 点击「Register App」
- App Name 随意填(如
timebox-local)- Redirect URI 填:
http://localhost:8765/callback- 提交后复制 Client ID 和 Client Secret,告诉我。"
Step 3:写入授权脚本并执行
AI 收到 client_id 和 client_secret 后,将授权脚本写入 ~/.config/timebox/ticktick_auth.py(填入真实 credentials,见滴答清单集成章节脚本模板),然后告知用户运行:
python3 ~/.config/timebox/ticktick_auth.py用户完成浏览器授权后,AI 重新执行 Step 1 验证。
Step 4:选择同步清单
"要同步到哪个清单?(留空用收件箱,或告诉我清单名称)"
python3 -c "
import json, urllib.request
t = json.load(open('$HOME/.config/timebox/ticktick.json'))
req = urllib.request.Request('https://api.ticktick.com/open/v1/project')
req.add_header('Authorization', f'Bearer {t[\"access_token\"]}')
data = json.loads(urllib.request.urlopen(req).read())
for p in data: print(p['id'], '|', p['name'])
"用户选择后,将清单 ID 写入 ticktick_project_id(留空则用收件箱)。
你用什么记录工作日志?每个时间盒的执行记录和复盘会自动写入。
| 选项 | 说明 |
|---|---|
local | 本地 Markdown 文件(默认,无需配置) |
feishu_doc | 飞书文档,需要飞书 API Token + 文档 ID |
wecom_doc | 企业微信文档,需要企业微信登录态 |
notion | Notion,需要 Integration Token + Database ID |
google_doc | Google Docs,需要 Google OAuth |
flomo | Flomo,需要 Flomo API URL(在 Flomo 个人设置页面获取) |
选择后追问对应的 Token / ID / 路径配置项(若需要)。
中文 / English
[Timebox #{N}] {任务名}macOS Apple Calendar(AppleScript)
tell application "Calendar"
set targetCal to first calendar whose name is "{calendar_name}"
-- 若不存在则用 first calendar whose writable is true
tell targetCal
make new event with properties {
summary: "[Timebox #{N}] {任务名}",
start date: {开始时间},
end date: {开始时间} + {时长} * minutes,
description: "优先级:{priority} · 紧急程度:{urgency}"
}
end tell
end tell飞书日历(Feishu Calendar API)
# 请求方式:POST
# 接口:https://open.feishu.cn/open-apis/calendar/v4/calendars/{calendar_id}/events
# 请求头:需携带飞书 API Token(header: X-Token: {log_token})
# 请求体:
{
"summary": "[Timebox #{N}] {任务名}",
"start_time": { "timestamp": "{unix_ts}" },
"end_time": { "timestamp": "{unix_ts}" },
"description": "优先级:{priority} · 紧急程度:{urgency}"
}企业微信日历(WeCom)
企业微信日历暂无开放 API,使用 AppleScript 控制企业微信桌面端或提示用户手动创建。
Google Calendar API
# 请求方式:POST
# 接口:https://www.googleapis.com/calendar/v3/calendars/{calendarId}/events
# 请求头:需携带 Google OAuth Token(header: X-Token: {oauth_token})
# 请求体:
{
"summary": "[Timebox #{N}] {任务名}",
"start": { "dateTime": "{ISO8601}" },
"end": { "dateTime": "{ISO8601}" }
}本地 Markdown(local)
存储结构:
{log_dir}/
├── {YYYY-MM}/
│ └── {YYYY-MM-DD}.md
└── index.md飞书文档(feishu_doc)
POST https://open.feishu.cn/open-apis/docx/v1/documents/{document_id}/blocks
-- 在指定文档末尾追加当天日志块企业微信文档(wecom_doc)
通过企业微信文档 API 写入,需要企业自建应用 Token。
Notion
# 请求方式:POST
# 接口:https://api.notion.com/v1/pages
# 请求头:需携带 Notion Integration Token(header: X-Token: {log_token})
# 在指定 Database 创建新 Page,每天一条
# 追加内容通过 PATCH blocks endpoint 实现Google Docs
# 通过 Google Docs API batchUpdate 在文档末尾追加内容
# 接口:https://docs.googleapis.com/v1/documents/{documentId}:batchUpdateFlomo
# 请求方式:POST
# 接口:{flomo_api_url}(在 Flomo 个人设置中获取)
# 请求体:{ "content": "[Timebox #{N}] {任务名}\n{执行记录}\n{复盘内容}" }
# Flomo 每条为独立笔记,建议每个时间盒一条,复盘单独一条仅当
task_sync: ticktick或task_sync: dida365时生效。
| 国际版(ticktick) | 中国版(dida365) | |
|---|---|---|
| 授权方式 | Python OAuth 脚本(需注册 App) | dida-cli(dida auth login,无需注册 App) |
| 任务操作 | REST API(api.ticktick.com) | dida task CLI 命令 |
| 清单配置字段 | ticktick_project_id | dida_project_id |
两个版本账号独立,token 不互通。
所有操作通过 @suibiji/dida-cli 完成,无需手动管理 token。
每次操作前先确认 CLI 已安装且已登录:
dida auth status若未登录,提示用户执行 dida auth login;若未安装,提示先运行 npm install -g @suibiji/dida-cli。
dida task create \
--title "[Timebox #{N}] {任务名}" \
--project {dida_project_id} \
--content "优先级:{priority} · 紧急程度:{urgency}\n计划时间:{HH:MM},时长 {duration} 分钟" \
--dueDate "{ISO8601_end}" \
--json
--project留空则创建到收件箱(dida_project_id 为空时省略该参数)。 从返回 JSON 中取id字段,写入日志:[ticktick_id: {id}]
从日志取出该时间盒的 ticktick_id(即 dida task id):
dida task update {task_id} \
--project {dida_project_id} \
--content "原有 content\n\n── CHECK 结果 ──\n{结果}\n{一句话描述}\n实际用时:{N} 分钟(计划 {M} 分钟)"dida task complete {dida_project_id} {task_id}API_BASE = "https://api.ticktick.com/open/v1"每次调用前从 ticktick_token_file 读取 access_token:
import json, os
token_data = json.load(open(os.path.expanduser(ticktick_token_file)))
access_token = token_data["access_token"]
headers = {"Authorization": f"Bearer {access_token}", "Content-Type": "application/json"}若读取失败或文件不存在,提示用户重新运行 ticktick_auth.py。
# POST {API_BASE}/task
payload = {
"title": "[Timebox #{N}] {任务名}",
"content": "优先级:{priority} · 紧急程度:{urgency}\n计划时间:{HH:MM},时长 {duration} 分钟",
"startDate": "{ISO8601_start}",
"dueDate": "{ISO8601_end}",
"priority": {ticktick_priority}, # 高→3, 中→1, 低→0
"projectId": "{ticktick_project_id}", # 留空用收件箱
"tags": ["timebox"]
}
# 返回值取 task["id"] 存入日志:[ticktick_id: {task_id}]# POST {API_BASE}/task/{taskId}
payload = {
"id": "{task_id}",
"projectId": "{ticktick_project_id}",
"content": "原有 content\n\n── CHECK 结果 ──\n{结果}\n{一句话描述}\n实际用时:{N} 分钟(计划 {M} 分钟)"
}# POST {API_BASE}/task/{taskId}/complete
# 无需 body,返回 200 即成功脚本存放在 ~/.config/timebox/ticktick_auth.py:
#!/usr/bin/env python3
"""TickTick 国际版一次性 OAuth 授权脚本 - 由 timebox skill 自动生成"""
import http.server, webbrowser, json, urllib.parse, urllib.request, base64, threading, sys
from pathlib import Path
CLIENT_ID = "{user_client_id}"
CLIENT_SECRET = "{user_client_secret}"
REDIRECT_URI = "http://localhost:8765/callback"
TOKEN_FILE = Path.home() / ".config" / "timebox" / "ticktick.json"
PORT = 8765
AUTH_URL = "https://ticktick.com/oauth/authorize"
TOKEN_URL = "https://ticktick.com/oauth/token"
received_code = None
class Handler(http.server.BaseHTTPRequestHandler):
def do_GET(self):
global received_code
params = urllib.parse.parse_qs(urllib.parse.urlparse(self.path).query)
if "code" in params:
received_code = params["code"][0]
self.send_response(200); self.send_header("Content-type","text/html;charset=utf-8"); self.end_headers()
self.wfile.write("<h2 style='font-family:sans-serif;padding:40px'>✅ 授权成功!可以关闭此页面。</h2>".encode())
else:
self.send_response(400); self.end_headers()
threading.Thread(target=self.server.shutdown).start()
def log_message(self, *args): pass
def main():
TOKEN_FILE.parent.mkdir(parents=True, exist_ok=True)
server = http.server.HTTPServer(("localhost", PORT), Handler)
params = urllib.parse.urlencode({"client_id":CLIENT_ID,"response_type":"code","redirect_uri":REDIRECT_URI,"scope":"tasks:write tasks:read"})
print("正在打开浏览器授权页..."); webbrowser.open(f"{AUTH_URL}?{params}")
print("等待授权完成..."); server.serve_forever()
if not received_code: print("❌ 未收到授权码"); return
cred = base64.b64encode(f"{CLIENT_ID}:{CLIENT_SECRET}".encode()).decode()
data = urllib.parse.urlencode({"grant_type":"authorization_code","code":received_code,"redirect_uri":REDIRECT_URI}).encode()
req = urllib.request.Request(TOKEN_URL, data=data, method="POST")
req.add_header("Authorization", f"Basic {cred}"); req.add_header("Content-Type","application/x-www-form-urlencoded")
token = json.loads(urllib.request.urlopen(req).read())
TOKEN_FILE.write_text(json.dumps(token, indent=2, ensure_ascii=False))
print(f"✅ 授权成功!Token 已保存到:{TOKEN_FILE}")
if __name__ == "__main__": main()运行方式:
python3 ~/.config/timebox/ticktick_auth.py国际版用户运行方式:
python3 ~/.config/timebox/ticktick_auth.py触发时机:每天开始工作时,或用户说"开始今天的规划"。
AI 开启一段开放式收集对话,让用户把今天所有想做的事都说出来:
"今天有哪些事要做?把脑子里所有的都说出来,可以同时告诉我优先级、紧急程度、预计时间和时长,没有的话我们之后再确认。说完告诉我'说完了'。"
用户可以一次说完,也可以分多条输入,格式自由,例如:
AI 在这个阶段只做一件事:逐条记录,不插话。
用户说完后,AI 将所有任务整理成结构化清单,尽可能从用户输入中提取已有信息:
今天的任务清单(共 N 项):
序号 任务名 优先级 紧急程度 计划时间 预计时长
────────────────────────────────────────────────────────
1. {任务名} {高/中/低} {高/中/低} {HH:MM 或 —} {N 分钟 或 —}
2. {任务名} ...
...
有没有需要修改、补充或删除的?—,不在此处追问,进入 Step 3 统一补充清单确认后,AI 只针对有缺失字段的任务一次性追问,按任务分组:
"以下任务还缺一些信息,帮我确认一下:
回复客户邮件:优先级和紧急程度怎么看?大概需要多久?有没有要在特定时间做?
写周报:计划几点开始?"
用户补充后,AI 更新清单。若用户仍未提供某字段,AI 根据上下文合理推断并标注"(推断)",不再追问。
清单完整后,AI 与用户讨论执行顺序。用自然对话,不用表格,针对清单提出 2–3 个引导性问题:
根据用户回答,AI 输出排序后的执行顺序建议并说明理由。
基于优先级排序、固定时间锚点和用户可用时间,AI 给出完整的今日安排:
今日时间盒安排(建议):
┌──────────────────────────────────────────────────┐
│ #1 {任务名} 优先级:高 紧急:高 09:00 25分钟 │
│ #2 {任务名} 优先级:高 紧急:中 09:30 45分钟 │
│ 📌 {外部事项}(非时间盒) 10:00 1小时 │
│ #3 {任务名} 优先级:中 紧急:低 11:30 25分钟 │
│ 合计约 {X} 小时 │
└──────────────────────────────────────────────────┘固定时间事项(会议、外出等)标注为 📌,不放入时间盒编号。
用户确认或调整后:
calendar 配置批量创建日历事件task_sync: dida365:为每个时间盒执行 dida task create,将返回的任务 id 追加到日志执行记录中(格式:[ticktick_id: {id}])task_sync: ticktick:为每个时间盒调用 POST /open/v1/task 创建任务,将返回的 task_id 追加到日志执行记录中(格式:[ticktick_id: {id}])触发时机:用户说"开始"、"开始第 N 个"或"开始做{任务名}"。
AI 做两件事,然后不再干预:
runtime 显示不同提示):codebuddy 模式:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⏱ 时间盒 #{N} · {duration} 分钟
🎯 {任务名}
预计 {HH:MM} 结束 → 完成后回复我开始收集
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━openclaw 模式:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⏱ 时间盒 #{N} · {duration} 分钟
🎯 {任务名}
预计 {HH:MM} 结束 → 时间到我会来提醒你
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━在本地日志写入启动记录:[HH:MM] ⏱ 时间盒 #{N} 开始 · {任务名}
仅 openclaw 模式:注册一个 cron job,在时间盒计划结束时间触发 REMIND:
# cron 注册格式
{HH} {MM} * * * openclaw trigger remind --timebox {N} --task "{任务名}"然后等待,期间不发送任何消息,不向外部工具同步。
原则:时间盒内是用户的专注时间,AI 不拆解任务、不询问进度、不主动打扰(codebuddy 模式靠用户主动回来,openclaw 模式靠 cron 到点提醒)。
触发时机(仅 openclaw 模式):cron job 在时间盒计划结束时间触发。
AI 发送一条简短提醒,引导用户进入 CHECK:
⏰ 时间盒 #{N}「{任务名}」时间到了!
完成了吗?回复我做个 30 秒收集 →触发时机:用户完成(或中断)一个时间盒后,说"完成了"、"结束了"、"超时了"等。
AI 用一次性提问收集结果:
"快速记录一下:
- 完成了吗?(完成 / 部分完成 / 未完成)
- 一句话说说结果或卡点?
- 有没有新冒出来的任务?"
收到回复后,AI:
task_sync: dida365:从日志取出该时间盒的 ticktick_id,执行 dida task update {id} 追加 CHECK 结果task_sync: ticktick:从日志中取出该时间盒的 ticktick_id,调用 POST /open/v1/task/{id} 更新任务 content,追加 CHECK 结果✅ #{N} 已归档
下一个:#{N+1} {任务名}({duration} 分钟)
准备好了说"开始"。若今日所有时间盒执行完毕,提示进入 REVIEW:
✅ 今天的时间盒全部完成,说"复盘"开始全天总结。原则:CHECK 最多 1 轮对话,不展开分析,分析留给全天 REVIEW。
触发时机:用户说"今天结束了"、"复盘"、"review",或所有时间盒执行完毕后用户确认。
AI 基于全天日志生成每日总结报告:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 全天复盘 · {YYYY-MM-DD}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 今天完成了什么
完成 {X}/{N} 个时间盒
· #{1} {任务名} — ✅ 完成 实际 {N} 分钟(计划 {M} 分钟)
· #{2} {任务名} — ⏳ 未完成
· #{3} {任务名} — ✅ 完成,超时 {K} 分钟
🔍 遇到了什么问题
· {从 CHECK 收集的卡点汇总}
· 超时任务分析
· 未完成原因
🗺 明天怎么走
· 移入明日:{未完成任务列表}
· 时间估算规律:{AI 观察,如"沟通类任务建议 ×1.5"}
· 明日建议优先处理:{任务名}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━复盘完成后:
index.md(local 模式)或对应平台索引task_sync: dida365:对所有已完成的时间盒任务执行 dida task complete {project_id} {task_id};未完成任务保留在清单(供次日处理)task_sync: ticktick:对所有已完成的时间盒任务调用 POST /open/v1/task/{id}/complete;未完成任务保留在清单(供次日处理){YYYY-MM-DD}.md)---
date: {YYYY-MM-DD}
timebox_count: {N}
completed: {X}/{N}
---
## 今日规划
| # | 任务名 | 优先级 | 紧急程度 | 计划时间 | 预计时长 |
|---|--------|--------|---------|---------|---------|
| 1 | ... | 高 | 高 | 09:00 | 25min |
## 执行记录
- [HH:MM] ⏱ 时间盒 #1 开始 · {任务名}
- [HH:MM] ✅ 时间盒 #1 结束 · {结果一句话} · 实际 {N} 分钟
- [HH:MM] 📌 外部事项:{事项名}
...
## 每日总结(外部工具同步此段)
- ✅ #{1} {任务名} — 完成,实际 {N} 分钟(计划 {M} 分钟)
- ⏳ #{2} {任务名} — 未完成,{原因一句话}
- ✅ #{3} {任务名} — 完成,超时 {K} 分钟,{原因一句话}
## 全天复盘(外部工具同步此段)
### 今天完成了什么
...
### 遇到了什么问题
...
### 明天怎么走
...| 日期 | 时间盒数 | 完成率 | 关键词 |
|------|---------|--------|--------|
| 2026-03-22 | 4 | 3/4 | 领跑配置、首页设计 || 场景 | 联动 Skill |
|---|---|
| 将全天复盘生成可视化卡片 | baoyu-infographic |
| 将复盘整理成汇报 PPT | baoyu-slide-deck |
| 分享复盘到社交平台 | baoyu-post-to-wechat / baoyu-post-to-weibo |
© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files in skills/openclaw-timebox of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Openclaw Timebox Cpr next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Openclaw Timebox Cpr this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.7k | Automated safety check: Pass | MIT | |
| Visual HTML Rendereru-ichi/reviewable-html-workbench | 298 | 1 repos | ~8.7k | Automated safety check: Pass | MIT | |
| Notion Spec To ImplementationJetBrains/skills | 366 | 5 repos | ~904 | Automated safety check: Pass | MIT | |
| Notion Spec To Implementationrongxinzy/RongxinAI | 154 | 2 repos | ~2.2k | Automated safety check: Pass | AGPL-3.0 | |
| Executing Plans Inlineobra/superpowers | 297k | 2 repos | ~5.1k | Automated safety check: Pass | MIT | |
| Interview Meaddyosmani/agent-skills | 104k | 6 repos | ~3.8k | Automated safety check: Pass | MIT |
u-ichi/reviewable-html-workbench
HTMLを最終成果物として生成・検証・プレビューしたい時に使う共通レンダラー。Use this shared renderer when the user wants content turned into a final, validated, previewable HTML artifact.
JetBrains/skills
Turn Notion specs into implementation plans, tasks, and progress tracking; use when implementing PRDs/feature specs and creating Notion plans + tasks from them.
rongxinzy/RongxinAI
Turns product or tech specs into concrete Notion tasks that Claude code can implement.
obra/superpowers
Has the agent carry out an implementation plan itself, task by task in the current session, keeping a ledger, proving each step with a test and ending with one whole-branch review.
addyosmani/agent-skills
Asks one question at a time, each with a best guess attached, until the agent is about 95 percent sure what you really want, before any plan, spec or code.
Fission-AI/OpenSpec
Walks you through a complete OpenSpec workflow cycle with narration while doing real work in your codebase.
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Works with
Categories
基于潘农菲翻译的《时间盒》,为 OpenClaw 打造的全天任务执行系统。早晨用一段对话规划全天、讨论优先级、锁定时间盒;执行时 AI 完全不打扰;每盒结束做 30 秒快速收集;全天结束生成每日总结并自动同步到 Flomo、Notion 等工具。支持苹果日历、飞书、Google…. Openclaw Timebox Cpr is an agent skill from LeoYeAI/openclaw-master-skills.
Openclaw Timebox Cpr fits situations like: tasks that involve Planning.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-timebox-cpr -a claude-code`. Or copy the skill folder (skills/openclaw-timebox in LeoYeAI/openclaw-master-skills) into .claude/skills/openclaw-timebox-cpr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-timebox-cpr -a codex`. Or copy the skill folder (skills/openclaw-timebox in LeoYeAI/openclaw-master-skills) into .agents/skills/openclaw-timebox-cpr in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-timebox-cpr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/openclaw-timebox-cpr, .gemini/skills/openclaw-timebox-cpr, .github/skills/openclaw-timebox-cpr and .opencode/skills/openclaw-timebox-cpr in your project.
Going by SKILL.md and its folder, Openclaw Timebox Cpr needs Python for the scripts in its folder, the command-line tools its instructions call (python3 and npm) and credentials named CLIENT_SECRET. Our summary lists: Python 3; Node.js.
SKILL.md names 8 domains. In commands or code: api.ticktick.com, open.feishu.cn, ticktick.com, googleapis.com, api.notion.com and docs.googleapis.com; the agent is likely to contact these when it follows the instructions. As links in the text: clawhub.ai and developer.ticktick.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Openclaw Timebox Cpr is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Openclaw Timebox Cpr: Visual HTML Renderer (u-ichi/reviewable-html-workbench, 298 stars), Notion Spec To Implementation (JetBrains/skills, 366 stars), Notion Spec To Implementation (rongxinzy/RongxinAI, 154 stars) and Executing Plans Inline (obra/superpowers, 297k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.