Summary
Track whether Codeksei + Hermes can eventually deliver Weixin audio replies as native voice bubbles instead of ordinary file attachments.
This is not just a transport detail. For companion-style interactions, a Weixin voice bubble feels much more alive and conversational; a downloadable file attachment is usable, but it has a colder, more mechanical UX.
Current status as of 2026-04-21
Native outbound Weixin voice bubbles should be treated as not solved.
The strongest public repro is still:
- text delivery works
- file attachment delivery works
- real
.silk conversion works
- sending the resulting
.silk through outbound voice_item / native voice payload is rejected or dropped
Specific evidence:
NousResearch/hermes-agent#9971 remains open. The 2026-04-16 repro reports that real .silk + voice_item still returns {"ret": -2} from ilink/bot/sendmessage across multiple payload variants.
NousResearch/hermes-agent#11571 was merged as a partial fix, but it deliberately routes Weixin send_voice() to file attachments. The PR text says full voice-bubble TTS remains open.
Tencent/openclaw-weixin#18 remains open and includes evidence that a local outbound VOICE send path can report success while the WeChat client receives no voice bubble.
Tencent/openclaw-weixin#9 adds native outbound voice support, but it remains open and unmerged.
@tencent-weixin/openclaw-weixin@2.1.9 still does not expose a merged outbound sendVoiceMessageWeixin path in the published tarball. Its public README still describes sendMessage as text/image/video/file, and getUploadUrl as media types 1=IMAGE, 2=VIDEO, 3=FILE.
Why this matters for Codeksei
Codeksei's hosted Hermes flow can currently rely on audio file fallback for delivery, but that is not the desired companion UX.
For ADHD companion / check-in interactions, native voice bubbles are materially better because they:
- feel like a normal Weixin conversation instead of a file transfer
- reduce friction on mobile
- make proactive or reassuring check-ins feel more human
- better match the mental model of short spoken replies
So this deserves a dedicated tracking issue even if the current fallback is technically functional.
Current recommended behavior
Until upstream evidence changes:
- Do not claim Weixin native outbound voice bubbles are supported.
- Prefer reliable file attachment fallback for audio replies.
- If Codeksei or Hermes has a native
voice_item code path, keep it behind an explicit experiment / probe rather than enabling it by default.
- Treat
ret=-2 on sendmessage as a real delivery failure, not success.
- Keep the distinction clear in docs and smoke output: “audio attachment works” is not the same as “native voice bubble works”.
Things to re-check before closing
Close this only after one of these becomes true:
- Tencent documents outbound
voice_item support for personal Weixin iLink bots, including the exact required upload/send fields; and a real-device test confirms delivery as a native voice bubble.
Tencent/openclaw-weixin merges and releases a working outbound voice path, and Codeksei/Hermes verifies it on current stable.
- Hermes adds a verified native Weixin voice-bubble path with real-device proof, not just unit tests that construct
voice_item JSON.
- Tencent or maintainers explicitly confirm outbound native voice bubbles are unsupported for this bot API, and Codeksei records the fallback as a product limitation rather than a pending bug.
Follow-up checklist
Related tracking
Summary
Track whether Codeksei + Hermes can eventually deliver Weixin audio replies as native voice bubbles instead of ordinary file attachments.
This is not just a transport detail. For companion-style interactions, a Weixin voice bubble feels much more alive and conversational; a downloadable file attachment is usable, but it has a colder, more mechanical UX.
Current status as of 2026-04-21
Native outbound Weixin voice bubbles should be treated as not solved.
The strongest public repro is still:
.silkconversion works.silkthrough outboundvoice_item/ native voice payload is rejected or droppedSpecific evidence:
NousResearch/hermes-agent#9971remains open. The 2026-04-16 repro reports that real.silk+voice_itemstill returns{"ret": -2}fromilink/bot/sendmessageacross multiple payload variants.NousResearch/hermes-agent#11571was merged as a partial fix, but it deliberately routes Weixinsend_voice()to file attachments. The PR text says full voice-bubble TTS remains open.Tencent/openclaw-weixin#18remains open and includes evidence that a local outbound VOICE send path can report success while the WeChat client receives no voice bubble.Tencent/openclaw-weixin#9adds native outbound voice support, but it remains open and unmerged.@tencent-weixin/openclaw-weixin@2.1.9still does not expose a merged outboundsendVoiceMessageWeixinpath in the published tarball. Its public README still describessendMessageas text/image/video/file, andgetUploadUrlas media types1=IMAGE,2=VIDEO,3=FILE.Why this matters for Codeksei
Codeksei's hosted Hermes flow can currently rely on audio file fallback for delivery, but that is not the desired companion UX.
For ADHD companion / check-in interactions, native voice bubbles are materially better because they:
So this deserves a dedicated tracking issue even if the current fallback is technically functional.
Current recommended behavior
Until upstream evidence changes:
voice_itemcode path, keep it behind an explicit experiment / probe rather than enabling it by default.ret=-2onsendmessageas a real delivery failure, not success.Things to re-check before closing
Close this only after one of these becomes true:
voice_itemsupport for personal Weixin iLink bots, including the exact required upload/send fields; and a real-device test confirms delivery as a native voice bubble.Tencent/openclaw-weixinmerges and releases a working outbound voice path, and Codeksei/Hermes verifies it on current stable.voice_itemJSON.Follow-up checklist
NousResearch/hermes-agent#9971for maintainer response or closure.NousResearch/hermes-agent#11571and any follow-up PRs after the file-attachment fallback.Tencent/openclaw-weixin#18andTencent/openclaw-weixin#9.@tencent-weixin/openclaw-weixinnpm tarball for a realsendVoiceMessageWeixinimplementation.Related tracking