如何配置 CodeWhale Hooks 生命周期钩子:session_start 与 pre/post 三类事件实战指南

发布时间:2026/8/30 13:41:58

如何配置 CodeWhale Hooks 生命周期钩子:session_start 与 pre/post 三类事件实战指南
如何配置 CodeWhale Hooks 生命周期钩子session_start 与 pre/post 三类事件实战指南【免费下载链接】CodeWhaleOpen-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome.项目地址: https://gitcode.com/GitHub_Trending/de/CodeWhaleCodeWhale是一个用 Rust 编写的开源终端编码智能体Coding Agent。它的Hooks生命周期钩子机制可以让你在会话启动session_start、工具调用前后pre/post等 11 个关键时刻自动运行自己的 shell 命令——发通知、拦截危险操作、注入临时凭证全部由你掌控 一、什么是 Hooks 生命周期钩子把 Hooks 理解成事件订阅器当 CodeWhale 的交互式 TUI 到达某个生命周期节点时它会自动执行你在配置文件里注册的一条 shell 命令。每条钩子就是一个普通进程通过环境变量接收上下文如DEEPSEEK_SESSION_ID、DEEPSEEK_WORKSPACE、DEEPSEEK_MODEL部分事件还会通过stdin 传入 JSON 负载其中 3 类事件甚至能反向改变CodeWhale 的下一步行为注意Hooks 是 TUI 运行时功能——codewhale exec无头模式和 CLI 子命令不会触发钩子。权威参考文档见 docs/HOOKS.md事件枚举定义在 crates/tui/src/hooks/config.rs。二、快速上手5 分钟配置第一个 session_start 钩子打开或新建~/.codewhale/config.toml加入下面这段即可——当 TUI 引擎就绪、首次界面渲染前session_start钩子会触发一次[hooks] enabled true [[hooks.hooks]] name announce event session_start command echo CodeWhale 会话已启动配置完成后在 TUI 中输入/hooks命令即可查看全部已注册的钩子、全局开关状态以及加载时被拒绝的条目/hooks events则列出全部 11 个事件名非常适合初学者探索命令实现见 crates/tui/src/commands/groups/core/hooks.rs。三、三类事件全景11 个事件按能不能改变行为分CodeWhale 共提供 11 个钩子事件按干预能力可归为三类1️⃣ 观察型Observer——只看不改如session_start、session_end、tool_call_after、turn_end、on_error、subagent_spawn、subagent_complete、mode_change等。它们的结果会被忽略stdout 直接丢弃非零退出码只记录警告。这类钩子适合打日志、发通知、推送告警——不能改变 CodeWhale 的后续行为但可以产生任意外部副作用它毕竟是以你的身份运行的命令。2️⃣ Pre 类——行动前拦截/改写tool_call_beforepre 工具调用在每次工具执行前触发可输出 JSON 裁决——allow/deny/ask还能用updatedInput改写工具入参、用additionalContext追加给模型的上下文message_submitpre 消息提交在消息进入历史和模型之前可替换或拦截你发送的文本退出码2表示阻断3️⃣ Post / 环境注入类tool_call_afterpost 工具调用工具结果落定后触发适合审计与统计shell_env在每次exec_shell前同步运行把 stdout 按KEYVALUE解析成环境变量注入——注入临时凭证、按技能调整 PATH 的神器 四、实战pre/post 钩子的三个高频用法用法 1危险命令守门员pre[[hooks.hooks]] name gate event tool_call_before command ~/.codewhale/hooks/gate.sh condition { type tool_name, name exec_shell } continue_on_error falsegate.sh检查$DEEPSEEK_TOOL_ARGS中的命令想拦截就输出{decision:deny,reason:原因}。注意continue_on_error false的语义守门人没给出裁决就不算放行——超时或异常退出会直接拒绝该工具调用。用法 2工具调用审计post[[hooks.hooks]] event tool_call_after command echo $DEEPSEEK_TOOL_NAME $DEEPSEEK_TOOL_EXIT_CODE ~/audit.log通过DEEPSEEK_TOOL_CALL_ID可以把同一次调用的 before/after/error 记录精确关联起来。用法 3临时凭证注入[[hooks.hooks]] name aws-creds event shell_env command aws-vault export my-profile --formatenv condition { type tool_category, category shell }解析后的键名而非值会写入~/.codewhale/audit.log方便事后对账。五、配置要点与避坑清单 ⚠️要点说明超时是覆盖不是默认[hooks].default_timeout_secs一旦设置会覆盖所有钩子自己的timeout_secs设为0会被直接拒绝加载background 钩子不能裁决后台钩子提交后不被等待永远无法 allow/deny/改写只适合观察条件不支持的钩子会被拒绝加载期即拒/hooks list中显示rejected:而不是静默失效项目级钩子需信任仓库可自带.codewhale/hooks.toml但仅在用户配置中信任工作区后生效多个钩子按配置顺序执行后一个钩子能看到前一个的输出updatedInput以最后一个为准完整字段示例可参考 config.example.toml 中被注释的[hooks]段落执行器核心逻辑在 crates/tui/src/hooks/executor.rs设计背景见 docs/rfcs/1364-hooks-lifecycle.md。六、安全须知钩子是来自你自己配置的可执行命令——请把~/.codewhale/config.toml当作可执行代码对待钩子进程继承 CodeWhale 的完整环境但本地exec_shell只拿到净化白名单 你的shell_env注入值所有负载工具参数、结果、错误信息都有字节上限钩子输入输出不可能无限复制对话内容写在最后Hooks 是 CodeWhale 从能用走向合你心意的关键开关session_start打个招呼、tool_call_before守住边界、tool_call_after留好审计痕迹——三层防线全在你的一条 TOML 配置里。更多细节欢迎通读 docs/HOOKS.md它是逐事件契约的权威出处。【免费下载链接】CodeWhaleOpen-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome.项目地址: https://gitcode.com/GitHub_Trending/de/CodeWhale创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Joplin 跨平台笔记同步:从装好到多设备互通

Joplin 跨平台笔记同步:从装好到多设备互通

2026/8/30 13:41:58

Joplin 跨平台笔记同步:从装好到多设备互通 【免费下载链接】joplin Joplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS. 项目地址: https://gitcode.com/GitHub_Trending/jo/joplin 你在工…

no-mistakes e2e测试体系:recorded fixtures与fakeagent命令

no-mistakes e2e测试体系:recorded fixtures与fakeagent命令

2026/8/30 13:41:58

no-mistakes e2e测试体系:recorded fixtures与fakeagent命令 【免费下载链接】no-mistakes git push no-mistakes 项目地址: https://gitcode.com/GitHub_Trending/no/no-mistakes no-mistakes 是一个"git push 即质检"的守护流水线工具&#xff1…

全栈前端的自动巡检与状态监控

全栈前端的自动巡检与状态监控

2026/8/30 13:41:58

全栈前端的自动巡检与状态监控后端健康接口返回成功,只能说明服务进程或某个依赖可响应,不能证明用户页面可用。静态资源缓存错配、脚本加载失败、前端运行时异常、登录态或关键接口错误,都可能让用户看到空页面或无法完成操作。前端巡检应覆…

智能体框架如何防止优化回退?AutoSaddler核心设计全解析

智能体框架如何防止优化回退?AutoSaddler核心设计全解析

2026/8/30 14:42:01

如果你正在做 Agent 应用,大概率遇到过这样一种状态:Demo 跑得不错,但没有人敢动 prompt。不是不想优化,而是每次调整都像抽卡。某次把工具调用成功率提升了 5 个点,用户意图分类却垮了;某次给 system prom…

文本框边框消失、箭头变圆点?draw.io 桌面版 Mermaid 导入异常完整排查与修复指南

文本框边框消失、箭头变圆点?draw.io 桌面版 Mermaid 导入异常完整排查与修复指南

2026/8/30 14:42:01

文本框边框消失、箭头变圆点?draw.io 桌面版 Mermaid 导入异常完整排查与修复指南 【免费下载链接】drawio-desktop Official electron build of draw.io 项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop 先说结论:如果你在用 …

PowerShell 5个场景快速上手:排错与模块扩展

PowerShell 5个场景快速上手:排错与模块扩展

2026/8/30 14:42:01

PowerShell 5个场景快速上手:排错与模块扩展 【免费下载链接】PowerShell PowerShell for every system! 项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell PowerShell 是微软推出的跨平台命令行与脚本引擎,主打系统管理与自动化任务。本文带你从确认版本、…

CrewAI 单元测试:从第一个可运行用例到失败排查

CrewAI 单元测试:从第一个可运行用例到失败排查

2026/8/30 14:42:01

CrewAI 单元测试:从第一个可运行用例到失败排查 【免费下载链接】crewAI Framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tas…

如何让你和设计文件用同一套语言说话?开源设计工具 Penpot 完全指南

如何让你和设计文件用同一套语言说话?开源设计工具 Penpot 完全指南

2026/8/30 14:42:00

如何让你和设计文件用同一套语言说话?开源设计工具 Penpot 完全指南 【免费下载链接】penpot Penpot: The open-source design platform for Product teams that need scalable collaboration. 项目地址: https://gitcode.com/GitHub_Trending/pe/penpot Pen…

Joplin笔记应用:5平台一键同步,数据彻底握在自己手里

Joplin笔记应用:5平台一键同步,数据彻底握在自己手里

2026/8/30 14:32:00

Joplin笔记应用:5平台一键同步,数据彻底握在自己手里 【免费下载链接】joplin Joplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS. 项目地址: https://gitcode.com/GitHub_Trending/j…

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/8/30 0:01:07

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/8/30 0:01:07

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/8/30 0:01:07

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/8/30 0:01:07

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/8/30 0:01:07

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/8/30 0:01:07

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/28 7:35:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/28 7:34:51

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/28 7:34:35

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…