nagi-studio/Yokaze
nagi-studio/Yokaze has 30 GitHub stars and 3 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 05:50 UTC. Last push 2026-11-04.
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
Yokaze(夜風):好看的网易云音乐播放器。Tauri 2 桌面应用 + ypm TUI:迷你播放条、菜单栏歌词,终端里画封面、双语歌词与频谱。
Developer ToolsREADME.md
Original
Yokaze · 夜風
一个好看的网易云音乐播放器。桌面上是安静的窗口,终端里是 ypm。
macOS(Apple Silicon)· Windows · Ubuntu · 下载
能做什么
- 登录网易云账号,听每日推荐、私人 FM、歌单、专辑、歌手和云盘
- 歌词页大字滚动,原文下面跟着中文翻译
- 窗口压矮就变成一条迷你播放条,可以钉在最上层
- 菜单栏直接显示封面和当前这句歌词
- 灰色歌曲自动换源,最高支持无损和 Hi-Res
- 全局快捷键、系统媒体键、Last.fm 记录、Discord 状态
- 进度条上可以换成彩虹猫、Anon 或 Minecraft 苦力怕
- 同一个账号也能在终端里用
ypm听,封面、双语歌词和频谱都画在终端里
安装
到 Releases 下载 DMG,双击安装即可:
Apple Silicon(arm64),macOS 14 或更高。安装包经 Developer ID 签名与 Apple 公证,不需要额外放行。
想先用上新功能,可以装尝鲜版(canary)。 canary 和稳定版各走各的更新通道,互不干扰。
ypm TUI 的安装见下面的 ypm TUI。
签名、自动更新与 Sidecar 源码提供
DMG 内的 .app 由 Developer ID Application 身份签名、启用 Hardened Runtime,并经 Apple
公证,DMG 带 stapler ticket,因此离线也能通过 Gatekeeper 校验。签名与公证是发版门禁:
codesign --verify、spctl --assess 和 xcrun stapler validate 任一失败就不产出安装包。
从 tag 构建的包会在启动时静默检查更新,也可以在设置页手动检查、下载和安装。stable 只接收 stable 更新,canary 只接收 canary 更新;更新包使用 Tauri Minisign 验签,与 Apple Developer ID 无关。普通本地构建没有发布公钥,自动更新保持未配置状态。
同一 Release 会提供对应版本的 Yokaze_<version>_sidecar-source.tar.gz、SHA-256 与醒目的
SOURCE-OFFER 指引,这是 Rust Sidecar 的完整对应源码和离线重链接包。转发或镜像 DMG 时,
请同时保留源码资产和源码下载指引。
迷你播放条
窗口高度压到 340 以下会自动变成紧凑的播放条,最小 300×48。空间够时原文下面跟一行中文翻译, 纯音乐显示「纯音乐,请欣赏」,拉回大窗口自动还原。



播放条上的图钉能把窗口钉在最上层,切桌面、开全屏应用时也跟着走。按钮和红绿灯平时藏着,鼠标移上去才出现。
菜单栏歌词
菜单栏图标的位置显示专辑封面,旁边跟着当前歌词,按显示宽度截断,中日文和英文都能排得比较满。 迷你播放条开着时菜单栏只留封面,收起后歌词立刻回来。

ypm TUI
ypm(Yokaze Player for Music)是 Yokaze 的 TUI,和桌面版共用同一套网易云实现。封面直接画在终端里,歌词双语滚动,
带频谱,8 套内置主题,支持 Nerd Font 图标和自定义配色。

macOS(Apple Silicon)和 Linux(x86_64)用 Homebrew 安装:
brew tap nagi-studio/ypm && brew install ypm
较新版本的 Homebrew 会要求先 brew trust nagi-studio/ypm 信任第三方 tap。
formula 模板在 Formula/,发版后同步到 nagi-studio/homebrew-ypm。
也可以从 Releases 下载 ypm-macos-aarch64、ypm-linux-x64 或 ypm-windows-x64.exe:
chmod +x ypm-macos-aarch64 # Linux 对应 ypm-linux-x64
xattr -d com.apple.quarantine ypm-macos-aarch64 # 仅浏览器下载需要
./ypm-macos-aarch64
Linux x64 以 Ubuntu 22.04(glibc 2.35)为兼容基线,需要 libasound2;Windows 建议用 Windows Terminal。
主题、图标和配置文件
按 5 或 , 打开设置页;j/k 选项、h/l 或左右键调整,主题即时预览。
Enter 原子保存,Esc 取消并恢复原值。语言和封面模式在下次启动后生效。
内置主题:db16、pico8、gameboy、everforest、tokyo-night、tokyo-night-storm、
one-dark、transparent,其中 transparent 继承终端自己的前景色与背景色。
Nerd Font 图标在设置页把「图标」切到 nerd:
- macOS:
brew install font-symbols-only-nerd-font - Linux:安装任一 Nerd Font 后 fontconfig 会自动 fallback
- Windows Terminal:直接把终端字体换成 Nerd Font 变体
首次启动生成 ~/.config/ypm/config.toml,也可以直接编辑:
quality = "exhigh" # 128 | 192 | 320/exhigh | lossless | hires
cover_mode = "original" # 终端不支持原图协议时自动回退到 pixel
pixel_scale = 1.0 # pixel 模式采样细节;不会放大封面占用区域
cover_size = "auto" # compact | auto | large,封面占用区域大小
intro_animation = true # 启动时播放像素 logo 动画,任意键跳过
# cache_limit_mib = 8192 # 仅显式设置时更新 ypm 进程共享的缓存上限
配置文件里出现无法识别的字段、非法的值或语法错误时,ypm 会直接报错退出并指出问题所在, 不会带着默认值启动——否则下一次在设置页保存就会把你原来的配置覆盖掉。
不设置 cache_limit_mib 时沿用缓存数据库现有值,新数据库默认 8 GiB。
自定义主题放在 ~/.config/ypm/themes/<name>.toml,配置里写 theme = "<name>"。
色板需要 2–64 个 RGB 十六进制颜色,roles 的值是色板下标:
palette = ["#1a1b26", "#565f89", "#c0caf5", "#7aa2f7", "#bb9af7"]
[roles]
bg = 0
fg = 2
dim = 1
faint = 1
accent = 3
accent2 = 4
sel = 3
给 AI agent 的 skill
仓库自带一个 Agent Skill,让任何支持 SKILL.md 标准的
agent(Claude Code、Cursor、Codex、dsh 等)通过 ypm CLI 控制播放:
查在放的歌、暂停/继续、切歌、跳到指定时间(ypm seek <秒>)。
程序需要读取 TUI 状态时可运行 ypm --json --tui status。返回值包含
playing、title、artist、album、positionMs、durationMs、coverUrl、
seekable、iconStyle 和 source;coverUrl 是可选的 64×64 网易云 HTTPS CDN 封面地址,
没有封面时为 null。seekable 表示当前歌曲可接受绝对 seek,iconStyle 是 YPM 已选的
unicode / nerd 图标模式。这三个字段都是向后兼容的增量,调用方应接受旧版缺省。
需要实时可视化时,可从正在运行的 TUI 订阅版本化的 NDJSON 频谱流:
ypm --json --tui spectrum --fps 12
fps 可设为 1–20。每行是一个 version: 1 帧,包含当前 style、playing 和固定
32 个 0–255 的归一化 bins。接口只投影频谱,不暴露 PCM;首个订阅连接时才启用
分析,最后一个连接断开后自动停用。该流目前和其他 TUI 远程控制一样,只支持 macOS
与 Linux。
mkdir -p ~/.agents/skills/ypm && curl -fsSL \
https://raw.githubusercontent.com/nagi-studio/Yokaze/master/skills/ypm/SKILL.md \
-o ~/.agents/skills/ypm/SKILL.md
~/.agents/skills/ 是各家 agent 通用的位置;dsh 另外还认 ~/.dsh/skills/
和项目内 .dsh/skills/,Claude Code 认 ~/.claude/skills/,换个目标目录即可。
用 npx skills add nagi-studio/Yokaze -s ypm -g -a universal 也能装,
但那会为这一个文件克隆整个仓库。
体积与性能
.app 从 82.6 MiB 降到 23.0 MiB,DMG 12.0 MiB,Sidecar 常驻内存约 9 MiB。这来自三次重构:
| 阶段 | 改动 |
|---|---|
v0.6.0:桌面外壳 |
Electron → Tauri 2;升级 Vue 3、Vite 7、TypeScript 6 和 Pinia 4,改用系统 WebView |
v0.8.0:后台服务 |
Bun Sidecar → Rust Sidecar;页面托管、网易云 API、同源 /api 和 UNM 全部改写为 Rust,桌面包不再携带 Bun runtime |
v0.9.0:业务核心 |
网易云客户端逻辑下沉 core::ncm;桌面端与 TUI 共用同一份 Rust 实现,通用转发路由从 57 条减到 45 条 |
Windows
Windows x64 有一些 macOS 上没有的功能:
- 任务栏歌词:把迷你播放条拖到任务栏附近松手,它会收进任务栏的空位,显示封面、当前这句歌词和播放控件。 全屏玩游戏或看视频时自动藏起来,退出全屏后回来。不想要可以在设置里关掉「允许吸附到任务栏」。
- QQ 音乐一键登录:在官方登录页登录后,QQ 音源需要的 cookie 自动填好。
安装包是未签名的 NSIS .exe,第一次运行时 SmartScreen 会拦一下,点「更多信息」→「仍要运行」即可。
从 YesPlayMusic 升级时,安装器会自动卸掉旧版,登录状态和设置都保留。
Linux
Ubuntu x64 提供 AppImage 和 .deb。
Windows 和 Linux 包在 master push 时只产生 Actions artifact,推 v* tag 时和 macOS 包一起进入同一个草稿 Release。
本机构建用 bun run build:tauri:windows / bun run build:tauri:linux。这两个平台没有 afconvert,
精确 FLAC 拖动走播放器已有的回退路径。
自己构建
需要 Bun 1.4.3、Rust 1.89 以上,以及对应平台的 Tauri 系统依赖。
cp .env.example .env # 推荐:启用 Last.fm 等完整本地配置
bun install
bun run dev:tauri # 开发模式
bun run build:tauri # 按当前系统构建 Tauri 应用
bun run package:tauri:dmg # 生成 DMG、完整 Sidecar 源码包、下载指引与 SHA-256
不复制 .env 也能正常加载主界面和网易云 API。.env.example 里已经有可用配置,不需要另行申请密钥;
.env 不进版本库。运行仓库里的 npx 辅助命令时另需 Node 20 以上。
Tauri 产物在 src-tauri/target/<target-triple>/release/bundle/,macOS 的 DMG 和源码包在
dist_tauri/。TUI 单独构建:
cargo build --locked --release --manifest-path src-tauri/Cargo.toml -p yesplaymusic-tui
开发细节和踩过的坑都记在 AGENTS.md 里。
更多界面



致谢
Yokaze 从 qier222/YesPlayMusic 发展而来。界面设计、播放器、 歌词和音乐库的基础都来自 qier222 和 YesPlayMusic 的所有贡献者。
同样感谢这些开源项目:
- NeteaseCloudMusicApi 及其 维护分支:网易云 API 的实现
- UnblockNeteaseMusic:灰色歌曲解锁
- Vue、Vite、Tauri、Ratatui
界面设计的灵感来自 Apple Music、 YouTube Music 和 Spotify。
开源许可
本项目自有的前端与 Tauri 主程序代码沿用上游的 MIT license。Rust Sidecar
静态链接了 GPL-3.0-only 依赖,因此 Sidecar 组合程序及其源码按
GPL-3.0-only 分发。每个包含 Rust Sidecar 的新 Release 会在同一
下载页提供完整对应源码、第三方 notice、校验和与离线重链接说明。
MIT 与 GPL-3.0 均允许商业使用,本项目不附加“仅限个人或非商业用途”的代码许可限制。 使用者仍须自行遵守网易云音乐服务条款、适用法律和音乐版权要求;本项目不提供音乐内容, 也不授予任何音乐作品的商业使用权。