mcpField
D
daemon-setup

daemon-setup

github.com/terrylica云与 DevOps192 次安装今天更新
代码仓库

关于 daemon-setup

用于在 macOS 上安装和验证 asciinema chunker 守护进程的交互式技能。它引导用户配置凭据并安装 launchd 服务,使守护进程独立于 Claude Code 运行。

主要功能

  1. 01安装前依赖检查
  2. 02处理现有安装
  3. 03GitHub PAT 配置与验证
  4. 04可选配置 Pushover
  5. 05launchd 安装与健康检查

适用场景

  1. 01首次安装 chunker 守护进程
  2. 02保留凭据重新安装
  3. 03重置凭据并全新安装
  4. 04排查守护进程启动或通知问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/terrylica/cc-skills --skill daemon-setup

安装后在 Claude Code 中输入/daemon-setup确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
evolution-log.md
launchd-installation.md
pat-setup-guide.md
pushover-setup-guide.md
verification-and-troubleshooting.md

详细介绍

/asciinema-tools:daemon-setup

用于设置 asciinema 分块守护进程的交互式向导。此守护进程独立于 Claude Code 运行,并使用存储在 macOS 钥匙串中的专用凭据。

自我演进技能:此技能会在使用过程中不断改进。如果指令有误、参数发生偏差或需要变通方案,请立即修复此文件,不要拖延。仅针对真实且可复现的问题进行更新。

为什么要使用守护进程?

旧方案的问题守护进程的解决方案
使用 gh auth token(共享)使用钥匙串中的专用 PAT
终端关闭后就会退出launchd 会使其持续运行
推送失败时没有提示记录日志并发送 Pushover 通知
依赖 Claude Code 会话完全独立运行

设置阶段概览

阶段名称详情
1预检见下文
2检查现有安装见下文
3GitHub PAT 设置PAT 设置指南
4Pushover 设置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启动守护进程

执行后反思

此技能完成后,在结束任务前进行反思:

  1. 确认当前位置。 — 编辑前,查找此 SKILL.md 的规范路径(使用 Glob 搜索此技能的名称)。所有修正都针对此文件及其同级的 references/ — 绝不要修改其他文档。
  2. 哪里出了问题? — 修复导致问题的指令。如果问题可能再次发生,将其添加为反模式。
  3. 哪些方面比预期更好? — 将其提升为推荐做法,并记录原因。
  4. 哪些内容出现了偏差? — 任何与实际情况不符的脚本、参考资料或外部依赖,都要立即修正。
  5. 记录下来。 — 每项更改都要在演进日志中记录触发原因、修复内容和证据。

不要推迟。下一次调用会继承你留下的一切。

评论

支持 Markdown