又凑合着过了四年,然后决定自己解决问题——这是音乐管理,以及歌词 的续集。

君がスパークルだから 僕は生きていける あーあ…なんかもう憧れの人だよ

契机

其实没有契机,可能是因为 Kimi 2.7 Coding 这个大语言模型好用?

最近描述模型好用的流行语是“指哪打哪”,于是我打开 Paseo:

hi. i want a local music player for windows.

顺便,Paseo 是一个好软件。它解决了我远程控制的需求,还解决了我不知道自己有的需求——给 coding agent 一个 UI. 我顽固地认为,使用 monospace 等距字体展示 prose 行文是不合乎周礼的,或者至少是不美观的。 但最近流行的 CLI 都只能通过等距字体展示行文,只有 Paseo 能顺便做到这一点。而且他们 bug 修得很快,move fast and break things, 而且确实有 things 被 break 了,更新之后根本打不开

Exposer 里提到,Foobar2000 自由度很高。 但还有什么比自己(通过 coding agent)写代码自由度更高的呢?

实现

技术栈

我并没有选择技术栈,而 Kimi 选择了 Svelte + Tauri. 不错的选择,我没有遇到任何构建的问题。

我还问了一句 Rust 后端是否支持音频、解码等功能;这些也没问题。

倒是有个第三方包的问题,于是 coding agent 自己打了个补丁

功能

虽然 MusicBee 并不开源,但它的插件开源。 于是我下载了一些开源插件,让 coding agent 实现功能。

途中我意识到功能是加不完的,于是决定差不多了就发布;现在差不多了。

简单地说的话:

  • 支持多位专辑艺术家
  • 支持 Windows 媒体控制和 Discord Rich Presence
  • 好看——至少我觉得好看
  • 可以搜索歌词和艺术家图片
  • 支持扫描文件夹当作播放列表

就是感觉 QQ音乐和网易云音乐的歌词都是延后 200ms 的,不知道为什么。还差点做了提前200毫秒的功能。

Coding agent

写到一半,Kimi 3 发布了,于是我换成了 Kimi 3. 可能是音乐播放器这个需求比较简单,我并没有感到十分不同。 倒是终于不用担心 256K 的上下文长度了。

烧了两天 Kimi 3 之后,我开始担心额度,毕竟还要留着干正事(工作)。 于是换成了 GPT 5.6 Luna (max), 据 Artificial Analysis 说在 pareto frontier 上。

封面很大,不错。

发布

于是我发布了 Sparkle.

所以为什么 GitHub Actions 上构建 .msi 需要20分钟呢?

当然,既然是免费的,我也不应该抱怨。

不过再次感叹,coding agent 能做的事情真不少。连 GitHub Actions 都是它自己找的。

开源许可

这似乎是我第一次发布东西,于是找 Codex 确认了一下 LICENSE. 于是发现有些 AI 参考的仓库是 MIT 的,有些是 Apache 2.0 的;于是请求 coding agent 修改之。

感想

  • 模型:这三个模型都是“指哪打哪”的,挺好用。
  • Tauri: 好用,甚至安装包都能打包好,完全不用操心。
  • 心情:很有成就感,即使是 LLM 写的。毕竟用着很舒服,有什么需求改代码就行。
  • 音质:没有变化。倒是统计出了我有不少歌是 Hi-Res 的。