claude-code - 💡(How to fix) Fix Hardware Buddy BLE cannot surface or answer AskUserQuestion options

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

When Claude Code/Desktop emits an AskUserQuestion tool use while a Hardware Buddy BLE device is connected, the BLE protocol only exposes a generic permission prompt snapshot (tool: AskUserQuestion, empty hint). The actual question/options are present only in the preceding assistant turn event, and the reference Buddy firmware only knows how to reply with generic permission decisions (once / deny).

This makes Hardware Buddy-compatible devices able to enter attention state, but unable to display or answer the actual AskUserQuestion choices in a protocol-supported way.

The official anthropics/claude-desktop-buddy repository currently has GitHub Issues disabled, so I am filing this here because the observed tool is AskUserQuestion from Claude Code/Desktop and the gap appears to be in the Desktop/Buddy wire protocol contract.

Root Cause

The official anthropics/claude-desktop-buddy repository currently has GitHub Issues disabled, so I am filing this here because the observed tool is AskUserQuestion from Claude Code/Desktop and the gap appears to be in the Desktop/Buddy wire protocol contract.

Fix Action

Fix / Workaround

For AskUserQuestion, prompt.hint is empty, so devices cannot show the question from the snapshot. They can parse the preceding assistant turn as a workaround, but there is no documented way to bind that tool_use.id to prompt.id or send a selected option back over BLE.

Code Example

{"evt":"turn","role":"assistant","content":[{"type":"tool_use","id":"toolu_01UbgrVmquGPLmtvaoVxaYC6","name":"AskUserQuestion","input":{"questions":[{"question":"Review 规模较大(8 个文件,284 行改动)。等待还是后台运行?","header":"运行方式","multiSelect":false,"options":[{"label":"Run in background (Recommended)","description":"后台运行,完成后通知你"},{"label":"Wait for results","description":"在此等待结果(约需 1–2 分钟)"}]}]},"caller":{"type":"direct"}}]}

---

{"total":6,"running":1,"waiting":1,"msg":"approve: AskUserQuestion","entries":["(called AskUserQuestion)"],"tokens":94936,"tokens_today":115492,"prompt":{"id":"1d855962-3903-45b3-8738-2da8e52a5367","tool":"AskUserQuestion","hint":""}}

---

{"evt":"turn","role":"user","content":[{"type":"tool_result","content":"Your questions have been answered: \"Review 规模较大(8 个文件,284 行改动)。等待还是后台运行?\"=\"Wait for results\". You can now continue with these answers in mind.","tool_use_id":"toolu_01UbgrVmquGPLmtvaoVxaYC6"}]}

---

{"total":6,"running":1,"waiting":0,"msg":"(called AskUserQuestion)","entries":["(called AskUserQuestion)"],"tokens":94936,"tokens_today":115492}

---

{"cmd":"permission","id":"<prompt.id>","decision":"once"}
{"cmd":"permission","id":"<prompt.id>","decision":"deny"}
RAW_BUFFERClick to expand / collapse

Summary

When Claude Code/Desktop emits an AskUserQuestion tool use while a Hardware Buddy BLE device is connected, the BLE protocol only exposes a generic permission prompt snapshot (tool: AskUserQuestion, empty hint). The actual question/options are present only in the preceding assistant turn event, and the reference Buddy firmware only knows how to reply with generic permission decisions (once / deny).

This makes Hardware Buddy-compatible devices able to enter attention state, but unable to display or answer the actual AskUserQuestion choices in a protocol-supported way.

The official anthropics/claude-desktop-buddy repository currently has GitHub Issues disabled, so I am filing this here because the observed tool is AskUserQuestion from Claude Code/Desktop and the gap appears to be in the Desktop/Buddy wire protocol contract.

Observed BLE traffic

First, Claude sends an assistant turn containing the real question and options:

{"evt":"turn","role":"assistant","content":[{"type":"tool_use","id":"toolu_01UbgrVmquGPLmtvaoVxaYC6","name":"AskUserQuestion","input":{"questions":[{"question":"Review 规模较大(8 个文件,284 行改动)。等待还是后台运行?","header":"运行方式","multiSelect":false,"options":[{"label":"Run in background (Recommended)","description":"后台运行,完成后通知你"},{"label":"Wait for results","description":"在此等待结果(约需 1–2 分钟)"}]}]},"caller":{"type":"direct"}}]}

Then Claude repeatedly sends a generic waiting snapshot:

{"total":6,"running":1,"waiting":1,"msg":"approve: AskUserQuestion","entries":["(called AskUserQuestion)"],"tokens":94936,"tokens_today":115492,"prompt":{"id":"1d855962-3903-45b3-8738-2da8e52a5367","tool":"AskUserQuestion","hint":""}}

After the user answers on Desktop, Claude sends a user turn with the result and clears waiting:

{"evt":"turn","role":"user","content":[{"type":"tool_result","content":"Your questions have been answered: \"Review 规模较大(8 个文件,284 行改动)。等待还是后台运行?\"=\"Wait for results\". You can now continue with these answers in mind.","tool_use_id":"toolu_01UbgrVmquGPLmtvaoVxaYC6"}]}
{"total":6,"running":1,"waiting":0,"msg":"(called AskUserQuestion)","entries":["(called AskUserQuestion)"],"tokens":94936,"tokens_today":115492}

Reference firmware behavior

The reference firmware in anthropics/claude-desktop-buddy does not appear to special-case AskUserQuestion, tool_use.input.questions, or tool_result. It only displays prompt.tool / prompt.hint and replies to any prompt with generic permission decisions:

{"cmd":"permission","id":"<prompt.id>","decision":"once"}
{"cmd":"permission","id":"<prompt.id>","decision":"deny"}

For AskUserQuestion, prompt.hint is empty, so devices cannot show the question from the snapshot. They can parse the preceding assistant turn as a workaround, but there is no documented way to bind that tool_use.id to prompt.id or send a selected option back over BLE.

Expected behavior / request

Please document or add a protocol path for Hardware Buddy devices to handle AskUserQuestion, for example one of:

  1. Include the question/options in prompt.hint or a structured prompt payload when prompt.tool == "AskUserQuestion".
  2. Document that devices should cache the preceding assistant turn tool_use payload and how it maps to the later prompt.id.
  3. Add/document a BLE response command for selecting an AskUserQuestion option, e.g. by option index/label/value, instead of only permission.once / permission.deny.
  4. If Hardware Buddy is intentionally not meant to answer AskUserQuestion options, document that limitation explicitly in REFERENCE.md.

Impact

Third-party Hardware Buddy-compatible devices, including iOS BLE peripheral implementations, can alert the user that an AskUserQuestion is pending but cannot present or answer the actual choices reliably. The only safe behavior today is to show a generic attention prompt and require the user to answer in Claude Desktop.

Environment

  • Claude Desktop Hardware Buddy BLE protocol
  • Claude Code/Desktop emitting AskUserQuestion
  • Hardware Buddy-compatible BLE peripheral implementation
  • Reference protocol consulted: anthropics/claude-desktop-buddy / REFERENCE.md

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING