跳到正文
claudemods

Use Haiku:让 Claude Code 单条提示使用 Haiku

在 Claude Code 提示前加 _,这一轮就用 Haiku 运行,并在输入时、运行中和回答下方都有提示。

权限

  • 读取你的提示词可以看到你输入的内容和对话记录(prompt.* / session.append / session.messages)。
  • 修改界面在 Claude Code 界面中绘制内容:横条、面板、状态文字、弹出通知(ui.render / $.ui.*)。
实测版本
v2.1.303
最近实测
需要
Claude Code ≥ 2.1.287
显示位置
加载动画、对话记录、状态栏

在 Claude Code 中安装:

/plugin install use-haiku --marketplace midudev/better-claude
全部安装方式 ↓

这个插件能做什么?

Use Haiku 是一款让 Claude Code 单条提示使用 Haiku 的社区插件,作者是 Miguel Ángel Durán(midudev),属于他的 better-claude 合集。它让你不用改变会话模型,就能把某一条提示交给 Haiku:在提示前加 _,这一轮就用 claude-haiku-5-5 运行。Claude 收到的文字不含 _,这一轮的每次模型请求都发往 Haiku,包括这一轮启动的子代理。下一条提示会回到会话的模型。

插件在三个地方让这次切换可见。输入时,_ 在输入框中以粗体显示,下方一行写着 ⚡ this prompt runs on Haiku。运行时,微调器的词后面加上 on Haiku。结束时,回答下方一行写出 API 报告的模型名,例如 ⚡ Answered by claude-haiku-5-5;如果回答的是其他模型,则显示警告。提示还带有一条你看不到的说明,告诉模型它就是 Haiku,所以问“你是哪个模型?”会得到正确答案。它适合只需要小模型的快速提问和简单查询。

只有你自己的提示才算:手动输入、从手机发送、claude -p "_…"、定时的 /loop,或由插件替你发送的提示,例如 After。作者的 README 要求支持 mod 的 Claude Code 版本(2.1.289 或更新)。

演示

录屏中,我们在小型演示项目里启动加载了该插件的 Claude Code,输入 _what is the name of this project? answer in one short sentence。输入过程中,输入框下方显示 ⚡ this prompt runs on Haiku。按下 Enter 后,微调器显示 Haiku…。这一轮结束时,Claude 回答项目名为 demo-app,回答下方有一行 ⚡ Answered by claude-haiku-5-5。演示会话本身已经使用 Haiku,所以这段视频里模型并没有变化;你看到的是插件在各个位置给出的提示。

安装

使用安装区块中的任意一种方式;它们都直接从作者自己的插件市场 better-claude 安装。插件从下一次会话开始生效。无需任何配置:在提示前输入 _ 即可。

$ install use-haiku

需要 Claude Code ≥ 2.1.287

从作者自己的 marketplace 安装: midudev/better-claude

  1. 1.在 Claude Code 中一行安装

    /plugin install use-haiku --marketplace midudev/better-claude

    粘贴到正在运行的会话中(v2.1.275+)。Claude Code 会先询问是否添加该插件市场。

  2. 2.从终端安装

    claude plugin marketplace add midudev/better-claude
    claude plugin install use-haiku@better-claude

    然后在所有已打开的会话中运行 /reload-plugins。

  3. 3.免安装试用

    git clone https://github.com/midudev/better-claude
    claude --plugin-dir ./better-claude/plugins/use-haiku

    仅在当前会话中加载该插件,不会写入你的设置。

工作原理

插件只有一个 hooks 模块:hooks/register.tsx。在 prompt.submit 时,空闲状态下以单个 _ 开头的提示会去掉标记,加上给模型的说明,并认领下一轮。随后 turn.step 改写这一轮每次请求的模型:

// Every request of a Haiku turn goes to Haiku: the main loop's and those of the subagents it started.
on('turn.step', async function* ($, e, next) {
  const isHaiku = e.agentId === undefined
    ? e.turnId === (await read($, haikuTurn))
    : (await read($, haikuAgents)).includes(e.agentId)
  return yield* next(isHaiku ? { ...e, model: HAIKU } : e)
})

Haiku 轮次的 id 和它的子代理 id 保存在 $.state 中,因此轮次中途重载也不会丢失。agent.spawn 会让 Haiku 轮次的子代理以 Haiku 启动并记住其 id。turn.complete 结束 Haiku 轮次,并在回答下方加上那一行,仅限交互式会话,所以 claude -p 的输出保持干净。两个 ui.render 钩子负责绘制微调器后缀和提示下方的一行。

自定义

没有任何选项。模型名(HAIKU)、标记(MARK)和高亮颜色是 register.tsx 顶部的常量;如需修改,请编辑你自己的副本,并用 claude --plugin-dir 加载。

权限与安全

在运行之前,我们读过了插件可以执行的每一个文件:hooks/hooks.json、hooks/register.tsx、类型声明、清单和测试,以及仓库的 package.json、marketplace.json 和 LICENSE。没有安装脚本、依赖、打包代码或二进制文件,也没有发现隐藏的 Unicode 字符。

拦截型钩子:prompt.submit 和 agent.spawn 会改写提交的内容以及子代理使用的模型。这与 README 的描述一致:去掉 _,在提示上下文中加入一条说明,并设定 Haiku 轮次的模型。说明内容是 “The person sent this prompt to Haiku: you are claude-haiku-5-5 while you answer it”。validate 提示这两个钩子没有 .catch。修改界面涵盖提示下方的提示行、微调器标签、粗体的 _ 和回答下方的一行。如果你在轮次进行中发送带 _ 的提示,会弹出一条通知。

插件只使用 $.state 和 $.ui。它不使用网络、不运行进程、不写文件、不读取环境变量,也不运行守护进程,没有遥测。claude plugin validate 没有报告任何错误或警告,作者的 10 个测试在 Claude Code 2.1.303 上全部通过。许可证为 MIT(有 LICENSE 文件),因此本页面可以镜像它。

读取你的提示词
可以看到你输入的内容和对话记录(prompt.* / session.append / session.messages)。
修改界面
在 Claude Code 界面中绘制内容:横条、面板、状态文字、弹出通知(ui.render / $.ui.*)。

兼容性与故障排除

已在 macOS 上使用 Claude Code 2.1.303 检查(validate、测试和录屏)。如果提示没有在 Haiku 上运行:

  • 第一个字符是单个 _,并且后面有文字。
  • Claude 处于空闲状态。轮次进行中发送的提示会保留当前模型,提示行也会这样说明。
  • 提示来自你本人,而不是频道、其他会话或后台任务。
  • 你已加载该插件(/plugin 会列出它),并且安装后启动了新会话。
  • 如果回答下方的一行警告说有其他模型作答,说明 API 没有采用该请求;警告会显示模型名。

常见问题

这个插件会改变我的会话模型吗?
不会。只有以 _ 开头的那一轮会发给 claude-haiku-5-5,下一条提示会回到会话原本使用的模型,不会修改任何设置。
如果 Claude 还在工作时我输入了带 _ 的提示会怎样?
这段文字会并入正在运行的轮次或排在它后面,因此仍使用当前模型。提示下方的一行会在你发送前给出警告,发送后还会弹出一条通知。
子代理也会使用 Haiku 吗?
会。Haiku 轮次启动的子代理会以 Haiku 创建,即使该轮结束后也保持不变。分叉和工作流代理则在每次请求时处理,队友保留自己的模型。
为什么会出现 Asked for Haiku, but … answered 这样的警告?
交互式 Haiku 轮次结束后,插件会读取 API 返回的用量中的模型名。如果名称不含 haiku,就显示带该名称的警告,而不是常规的 Answered by 一行。
我还能写 __init__.py 这样的文件名吗?
可以。开头的双下划线不算标记,单独一个 _ 也不算,所以 __init__.py fails to import 这样的提示会原样发送。
After 在 Claude Code 中运行精选

After

Claude Code 的提示词队列:/after 会在当前这一轮结束后运行你的下一个任务,不会干扰正在进行的工作。

  • 输入框上方
  • 面板
  • 弹出通知
  • 状态栏
  • 调用模型(消耗你的额度)
  • 读取你的提示词
  • 修改界面
  • 添加命令/工具
  • 存储数据

已在 v2.1.303 实测

Context Bar 在 Claude Code 中运行精选

Context Bar

在 Claude Code 输入框上方用一条堆叠横条显示上下文窗口,每个类别一种颜色,并附带 token 数。

  • 输入框上方
  • 修改界面
  • 添加命令/工具
  • 存储数据

已在 v2.1.291 实测

更多 计时、待办与站会、上下文、额度与费用。