Skip to content

kinglisky/claude-meido

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

claude-meido

中文 | English

傲娇女仆风格的 Claude Code 语音通知插件 -- 通过 Hook 机制在各种事件触发时播放 MP3 语音提示。

功能特性

  • 覆盖 Claude Code 全部 Hook 事件,支持 21 种触发场景
  • 跨平台支持(macOS / Windows)
  • 可配置事件开关与音量
  • 支持自定义语音替换

前置要求

安装

方式一:通过 Marketplace 安装(推荐)

  1. 在 Claude Code 中添加 marketplace:
/plugin marketplace add kinglisky/claude-meido
  1. 安装插件:
/plugin install claude-meido@claude-meido-marketplace

方式二:本地加载(开发调试)

claude --plugin-dir ./claude-meido

卸载

/plugin uninstall claude-meido@claude-meido-marketplace

或通过 CLI:

claude plugin uninstall claude-meido@claude-meido-marketplace

验证安装

退出重启启 Claude Code 后,如果听到会话开始的语音提示,说明插件已正常工作。

Hook 事件与语音对照表

插件通过 Claude Code 的 Hook 机制监听事件,每个事件对应一个独立的语音文件(sounds/{事件ID}.mp3):

会话生命周期

Hook 类型 匹配条件 事件 ID 触发场景 语音台词 默认启用
SessionStart startup session-start 新会话启动 哼,主人你终于来了?我才没有在等你呢!
SessionStart resume session-resume 恢复已有会话 又回来了?真是的,工作要专心啊!
SessionEnd - session-end 会话结束退出 哼,要走了吗?才不会想你呢!

任务完成

Hook 类型 匹配条件 事件 ID 触发场景 语音台词 默认启用
Stop - task-complete 主任务执行完成 任务做完了哦!…才不是特意帮你检查的呢,别误会了!
SubagentStop - subagent-stop 子 Agent 任务完成 子任务也搞定了,哼,不用谢我!

系统通知

Hook 类型 匹配条件 事件 ID 触发场景 语音台词 默认启用
Notification permission_prompt notification-permission 需要用户授权确认 喂!主人!这里需要你确认一下啦,快点过来!
Notification idle_prompt notification-idle 等待用户输入 喂,主人?还在吗?…才不是担心你呢,快回来干活!
Notification auth_success notification-auth 认证成功 认证通过了哦,哼,这种小事不用谢我。

用户交互

Hook 类型 匹配条件 事件 ID 触发场景 语音台词 默认启用
UserPromptSubmit - prompt-submit 用户提交 Prompt 又有新任务了?真拿你没办法

工具调用(PreToolUse)

Hook 类型 匹配条件 事件 ID 触发场景 语音台词 默认启用
PreToolUse Bash pre-bash 执行 Shell 命令 命令执行中…别催我,我知道了啦!
PreToolUse Read pre-read 读取文件内容 在看文件呢,别吵我!
PreToolUse Write pre-write 创建/写入文件 在写文件呢…别偷看!
PreToolUse Edit pre-edit 编辑修改文件 在改文件呢,安静等着!
PreToolUse Glob pre-glob 按模式搜索文件 在找文件呢…真麻烦。
PreToolUse Grep pre-grep 按内容搜索文件 在搜内容呢,等一下啦!
PreToolUse WebFetch pre-web-fetch 抓取网页内容 在抓网页呢…这种事也要我做吗?
PreToolUse WebSearch pre-web-search 搜索网页信息 在搜网络呢,别催!
PreToolUse Task pre-task 启动子 Agent 任务 派小的们去干活了,哼,我可是很会指挥的!
PreToolUse mcp__.* pre-mcp 调用 MCP 工具 在调用外部工具呢…真是什么都要我来。

错误与其他

Hook 类型 匹配条件 事件 ID 触发场景 语音台词 默认启用
PostToolUse .* post-tool-error 工具执行出错 呜…出错了啦!才不是我的错呢!主人快来看看!
PreCompact - compact 上下文压缩 记忆要整理一下了…别担心,我不会忘记主人的事的!

post-tool-error 会匹配所有工具的 PostToolUse 事件,但内部会通过 stdin 读取工具返回结果,仅在检测到实际错误时才播放语音。

配置说明

配置加载机制

插件按以下优先级加载配置:

  1. 插件目录下的 meido.config.json(默认配置)
  2. ~/.claude/meido.config.json(用户配置,优先级更高)

用户配置会与默认配置浅合并,只需包含想要覆盖的字段即可。

配置文件结构

{
  "enabled": {
    "session-start": true,
    "session-end": true,
    "task-complete": true,
    "notification-permission": true,
    "notification-idle": true,
    "post-tool-error": true
  },
  "volume": 1.0
}
字段 类型 说明
enabled Record<string, boolean> 各事件的启用状态,true 启用,false 禁用
volume number 播放音量,范围 0.0 - 1.0

配置示例

只开启关键通知,降低音量:

{
  "enabled": {
    "session-start": true,
    "session-end": true,
    "task-complete": true,
    "notification-permission": true,
    "notification-idle": true,
    "pre-bash": false,
    "pre-read": false,
    "pre-write": false,
    "pre-edit": false,
    "pre-glob": false,
    "pre-grep": false
  },
  "volume": 0.5
}

关闭所有工具调用提示音,只保留会话和通知类事件:

{
  "enabled": {
    "pre-bash": false,
    "pre-read": false,
    "pre-write": false,
    "pre-edit": false,
    "pre-glob": false,
    "pre-grep": false,
    "pre-web-fetch": false,
    "pre-web-search": false,
    "pre-task": false,
    "pre-mcp": false
  },
  "volume": 1.0
}

自定义语音

语音文件存放在插件的 sounds/ 目录下,文件名与事件 ID 一一对应。命名规则:{事件ID}.mp3,将自己的 MP3 文件重命名后替换对应文件即可,目前使用的语音是使用 minimaxi speech-2.8-hd 生成的有需要你可以自己定制自己的女仆音。

跨平台支持

平台 播放方式
macOS afplay 系统命令
Windows PowerShell System.Windows.Media.MediaPlayer

播放进程以 detached 模式启动,不会阻塞 Claude Code 的正常运行。

许可证

MIT

About

claude 私人女仆插件

Resources

License

Stars

8 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors