关于 daemon-setup
用于在 macOS 上安装和验证 asciinema chunker 守护进程的交互式技能。它引导用户配置凭据并安装 launchd 服务,使守护进程独立于 Claude Code 运行。
主要功能
- 01安装前依赖检查
- 02处理现有安装
- 03GitHub PAT 配置与验证
- 04可选配置 Pushover
- 05launchd 安装与健康检查
适用场景
- 01首次安装 chunker 守护进程
- 02保留凭据重新安装
- 03重置凭据并全新安装
- 04排查守护进程启动或通知问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ terrylica/ cc-skills --skill daemon-setup安装后在 Claude Code 中输入/daemon-setup确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/evolution-log.mdlaunchd-installation.mdpat-setup-guide.mdpushover-setup-guide.mdverification-and-troubleshooting.md详细介绍
/asciinema-tools:daemon-setup
用于设置 asciinema 分块守护进程的交互式向导。此守护进程独立于 Claude Code 运行,并使用存储在 macOS 钥匙串中的专用凭据。
自我演进技能:此技能会在使用过程中不断改进。如果指令有误、参数发生偏差或需要变通方案,请立即修复此文件,不要拖延。仅针对真实且可复现的问题进行更新。
为什么要使用守护进程?
| 旧方案的问题 | 守护进程的解决方案 |
|---|---|
使用 gh auth token(共享) | 使用钥匙串中的专用 PAT |
| 终端关闭后就会退出 | launchd 会使其持续运行 |
| 推送失败时没有提示 | 记录日志并发送 Pushover 通知 |
| 依赖 Claude Code 会话 | 完全独立运行 |
设置阶段概览
| 阶段 | 名称 | 详情 |
|---|---|---|
| 1 | 预检 | 见下文 |
| 2 | 检查现有安装 | 见下文 |
| 3 | GitHub PAT 设置 | PAT 设置指南 |
| 4 | Pushover 设置 | Pushover 设置指南 |
| 5-6 | 配置 + 安装 | launchd 安装指南 |
| 7 | 验证 + 故障排查 | 验证与故障排查 |
执行
阶段 1:预检
检查必需的工具:
/usr/bin/env bash << 'PREFLIGHT_EOF'
MISSING=()
for tool in asciinema zstd git curl jq; do
command -v "$tool" &>/dev/null || MISSING+=("$tool")
done
# macOS-specific: security command for Keychain
if [[ "$(uname)" == "Darwin" ]]; then
command -v security &>/dev/null || MISSING+=("security (macOS Keychain)")
fi
if [[ ${#MISSING[@]} -gt 0 ]]; then
echo "MISSING:${MISSING[*]}"
exit 1
fi
echo "PREFLIGHT:OK"
PREFLIGHT_EOF
如果 MISSING 不为空,请使用 AskUserQuestion:
Question: "Missing required tools: {MISSING}. How would you like to proceed?"
Header: "Dependencies"
Options:
- label: "Install via Homebrew (Recommended)"
description: "Run: brew install {MISSING}"
- label: "I'll install manually"
description: "Pause setup and show install instructions"
- label: "Abort setup"
description: "Exit the setup wizard"
如果选择“通过 Homebrew 安装”:运行 brew install {MISSING} 并继续。
阶段 2:检查现有安装
/usr/bin/env bash << 'CHECK_EXISTING_EOF'
PLIST_PATH="$HOME/Library/LaunchAgents/com.cc-skills.asciinema-chunker.plist"
DAEMON_RUNNING="false"
if [[ -f "$PLIST_PATH" ]]; then
echo "PLIST_EXISTS:true"
if launchctl list 2>/dev/null | grep -q "asciinema-chunker"; then
DAEMON_RUNNING="true"
fi
else
echo "PLIST_EXISTS:false"
fi
echo "DAEMON_RUNNING:$DAEMON_RUNNING"
# Check if PAT already in Keychain
if security find-generic-password -s "asciinema-github-pat" -a "$USER" -w &>/dev/null 2>&1; then
echo "PAT_EXISTS:true"
else
echo "PAT_EXISTS:false"
fi
CHECK_EXISTING_EOF
如果 PLIST_EXISTS=true,请使用 AskUserQuestion:
Question: "Existing daemon installation found. What would you like to do?"
Header: "Existing"
Options:
- label: "Reinstall (keep credentials)"
description: "Update daemon script and plist, keep Keychain credentials"
- label: "Fresh install (reset everything)"
description: "Remove existing credentials and start fresh"
- label: "Cancel"
description: "Exit without changes"
阶段 3:GitHub PAT 设置
完整的交互流程请参阅 PAT 设置指南:PAT 创建流程、钥匙串存储和验证。
阶段 4:Pushover 设置(可选)
完整的交互流程请参阅 Pushover 设置指南:Pushover 说明、应用创建、凭据存储和测试通知。
阶段 5-6:守护进程配置和 launchd 安装
关于分块设置选择、根据模板生成 plist 以及服务安装,请参阅 launchd 安装指南。
阶段 7:验证
关于守护进程运行状况检查、安装后验证、最终成功消息和故障排查表,请参阅 验证与故障排查。
快速参考
故障排查
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 钥匙串访问被拒绝 | 未授予 macOS 权限 | 在“系统设置”中授予访问权限 |
| PAT 测试失败 | 令牌已过期或作用域无效 | 生成具有 repo 作用域的新令牌 |
| launchctl 加载失败 | plist 语法错误 | 检查 plutil -lint <plist-path> |
| 守护进程不断停止 | 脚本错误或崩溃 | 检查 /asciinema-tools:daemon-logs |
| Pushover 无法正常工作 | 凭据无效 | 使用正确的应用密钥/用户密钥重新运行设置 |
| 健康状态文件缺失 | 守护进程未运行 | 运行 /asciinema-tools:daemon-start |
相关命令
| 命令 | 描述 |
|---|---|
/asciinema-tools:daemon-status | 检查守护进程状态 |
/asciinema-tools:daemon-logs | 查看日志 |
/asciinema-tools:daemon-stop | 停止守护进程 |
/asciinema-tools:daemon-start | 启动守护进程 |
执行后反思
此技能完成后,在结束任务前进行反思:
- 确认当前位置。 — 编辑前,查找此 SKILL.md 的规范路径(使用 Glob 搜索此技能的名称)。所有修正都针对此文件及其同级的 references/ — 绝不要修改其他文档。
- 哪里出了问题? — 修复导致问题的指令。如果问题可能再次发生,将其添加为反模式。
- 哪些方面比预期更好? — 将其提升为推荐做法,并记录原因。
- 哪些内容出现了偏差? — 任何与实际情况不符的脚本、参考资料或外部依赖,都要立即修正。
- 记录下来。 — 每项更改都要在演进日志中记录触发原因、修复内容和证据。
不要推迟。下一次调用会继承你留下的一切。
评论
支持 Markdown