keros68

Niulai — AI skill for Claude Code

AI community

任务完成,牛来报喜 🐂 通用 AI Agent 完成提醒桌宠(Claude Code / Codex / Gemini / Kimi Code).

How to install Niulai

This entry records only its repository, not the path inside it, so there is no exact command to give. Open keros68/niulai and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Niulai does

任务完成,牛来报喜 🐂 通用 AI Agent 完成提醒桌宠(Claude Code / Codex / Gemini / Kimi Code).

Alternatives in AI

  • System Prompts Leaks — Extracted system prompts from ChatGPT (GPT-5.4, GPT-5.3, Codex), Claude (Opus 4.6, Sonnet 4.6, Claude Code), G 38.6k ★
  • AIHawk — Open-source AI browser agent: describe any task in plain language and it autonomously browses, clicks, types a 30.3k ★
  • CLI 代理 API — English 中文 一个为 CLI 提供 OpenAI/Gemini/Claude/Codex 兼容 API 接口的代理服务器 19k ★

README

牛来 NiuLai

AI Agent 任务完成提醒:agent 回合结束时,桌宠站住、播放音效、弹出红字。形象与音频提取自动画电影《牛来》的网络热梗片段。

Desktop notifier for coding agents: when a turn completes, the bull stops and yells. Works with Claude Code, Codex, Gemini CLI and Kimi Code.

![牛来](assets/walk_png/walk_04.png)

支持的 Agent

Agent 接入方式 说明
Claude Code Stop hook
Codex CLI Stop hook 新 hook 需在 CLI 里 /hooks 信任一次
Codex 桌面端 rollout 日志监听 桌面端无 hook 机制,由桌宠监听 task_complete 事件
Gemini CLI AfterAgent hook 部分版本有不触发的 bug(issue #27712)
Kimi Code Stop hook
Kimi Work 无公开 hook 机制,暂不支持

安装与移除通过桌宠右键菜单的 **Agent 开关**完成,只增删牛来自身的条目,不影响已有 hook。

快速开始

**exe(无需 Python)**:从 [Releases](https://github.com/keros68/niulai/releases) 下载:

  • niulai-setup-x64.exe:安装版,一键安装到当前用户目录(无需管理员),可选桌面快捷方式;
  • niulai-windows-x64.zip:绿色版,解压后运行 niulai.exe

**源码**:

git clone https://github.com/keros68/niulai.git
cd niulai
python -m venv .venv
.venv\Scripts\pip install pyside6 pillow

运行 `启动桌宠.cmd`。

桌宠操作

  • 左键拖动:移动位置;纵向、环绕模式下松手后吸附最近的屏幕边缘
  • 滚轮或"大小"菜单滑块:20–360px 缩放,实时生效
  • 走法:横向(底部)/ 纵向(左缘、右缘)/ 全屏环绕(沿四边循环,过角自动转向)
  • 暂停行走:停止移动与动画,提醒照常
  • 开机自动启动:写入当前用户的注册表 Run 键,再次点击取消
  • 切换音频:妈妈 / 哈哈 / 醒醒 / 牛来 / 打鸣,选中即试听,庆祝红字与音频名一致
  • 显示/隐藏:右键菜单、托盘左键,或再次运行 启动桌宠.cmd
  • 退出:右键菜单或托盘菜单
  • 所有功能在牛的右键菜单和系统托盘图标的菜单里都有;牛藏起来后托盘照样能操作
  • 自动更新:桌宠每天自动检查 GitHub 新版本,发现后托盘菜单出现"点击更新",确认即下载并自动重启完成升级;也可在菜单里手动"检查更新"

工作原理

agent 回合结束 → hook 调用 niulai.ps1
  ├─ 桌宠在线 → 写触发文件 %TEMP%\niulai_trigger → 桌宠站住 + 放音 + 炸红字
  └─ 桌宠不在 → 静默退出(不代为放音)
Codex 桌面端:桌宠增量监听 ~/.codex/sessions 与 archived_sessions 的
rollout jsonl,发现 task_complete 事件即触发(15 秒冷却去重)
  • 渲染:PySide6 逐像素透明窗口(WA_TranslucentBackground),PNG 序列帧 + SmoothTransformation 缩放
  • 单实例:命名互斥体;重复启动等效于显示/隐藏切换
  • 配置:niulai_pet_config.json(音频、音效开关、大小、走法)
  • 自动更新:桌宠定时查询 GitHub 最新 Release tag 比对内置版本号;确认更新后下载发布 zip,交给随包的 niulai_updater.ps1 完成"退出旧进程 → 覆盖解压 → 重启 → 自删除",用户配置不受影响

手动配置 hook

菜单开关不可用时的备用方式。把下面的 hook 合入对应文件(不覆盖已有内容),路径替换为实际项目位置:

**C