<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Peonping on 乐的博客</title><link>https://liujiale.me/tags/peonping/</link><description>Recent content in Peonping on 乐的博客</description><generator>Hugo -- 0.152.2</generator><language>zh-CN</language><copyright>2015-2026 CC BY-NC-ND 4.0</copyright><lastBuildDate>Wed, 08 Apr 2026 06:36:09 +0800</lastBuildDate><atom:link href="https://liujiale.me/tags/peonping/index.xml" rel="self" type="application/rss+xml"/><item><title>解决 peon-ping 没声音的问题</title><link>https://liujiale.me/til/peon-ping-no-sound-ssh-audio/</link><pubDate>Tue, 07 Apr 2026 16:31:00 +0800</pubDate><guid>https://liujiale.me/til/peon-ping-no-sound-ssh-audio/</guid><description>&lt;h2 id="现象"&gt;现象&lt;/h2&gt;
&lt;p&gt;Claude Code 装了 peon-ping，按照设置本该在 agent 跑完任务、弹权限请求，这些本该有提示音的时候，一点动静都没有。配置看着没问题， &lt;code&gt;enabled: true&lt;/code&gt; ，音量 0.5，peasant 音效包也在。&lt;/p&gt;
&lt;h2 id="排查"&gt;排查&lt;/h2&gt;
&lt;p&gt;先开 debug 日志：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;peon debug on
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 触发一次事件后查看&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;peon logs&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;日志里事件确实触发了， &lt;code&gt;category&lt;/code&gt; 也分配对了（ &lt;code&gt;task.complete&lt;/code&gt; 、 &lt;code&gt;input.required&lt;/code&gt; ），声音文件也选好了。但播放那行写着：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[play] backend=ssh file=PeasantYes1.wav volume=0.5 async=true&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;backend=ssh&lt;/code&gt; 。这就是问题所在。&lt;/p&gt;
&lt;h2 id="原因"&gt;原因&lt;/h2&gt;
&lt;p&gt;peon-ping 的 &lt;a href="https://github.com/PeonPing/peon-ping/blob/main/peon.sh#L7-L30"&gt;&lt;code&gt;detect_platform()&lt;/code&gt;&lt;/a&gt; 函数在启动时检查 &lt;code&gt;SSH_CONNECTION&lt;/code&gt; 或 &lt;code&gt;SSH_CLIENT&lt;/code&gt; 环境变量，只要有一个有值就把平台标记为 &lt;code&gt;ssh&lt;/code&gt; 。后续 &lt;a href="https://github.com/PeonPing/peon-ping/blob/main/peon.sh#L272-L354"&gt;&lt;code&gt;play_sound()&lt;/code&gt;&lt;/a&gt; 走 SSH 分支，把音频请求发往 relay（默认 &lt;code&gt;localhost:19998&lt;/code&gt; ），而不是直接调本机的 &lt;code&gt;afplay&lt;/code&gt; 。&lt;/p&gt;</description></item></channel></rss>