第1节我们讨论了一堆理论,但并没有去实践。这一节我们用一个实际的案例来熟悉下 CLI 的操作流程。感受下 CLI 和 API 有什么区别。
网易云音乐有个开源的 CLI 叫 ncm-cli,可以搜歌、放歌、建歌单,这些操作都可以在终端里完成。这些命令非常直白,比如:ncm-cli search song --keyword "王菲" 。
一眼就能看出,这是在搜索"王菲"的歌曲。
这个案例会完整走一遍 Agent 调 CLI 的流程。
该视频为课程站点内嵌片段,未收录于本地离线包;如需观看请回到线上课程对应课时。
3.1 ncm-cli 是什么
ncm-cli 是网易云音乐官方开源的命令行工具,让 AI Agent 或 开发者通过终端直接操作网易云音乐。它能做的事情不少:
| 功能 | 命令示例 | 说明 |
|---|---|---|
| 搜索 | ncm-cli search song --keyword "王菲" |
搜歌曲、歌单、专辑 |
| 播放 | ncm-cli play --song --encrypted-id <id> |
播放指定歌曲 |
| 歌单 | ncm-cli playlist create --name "我的歌单" |
创建、查看、管理歌单 |
| 推荐 | ncm-cli recommend daily |
获取每日推荐 |
| TUI | ncm-cli tui |
启动终端全屏播放器,带旋转黑胶动画和歌词 |
命令的命名很直白,search song、playlist create、recommend daily,不需要记参数,看名字就知道干嘛的。
3.2 安装与配置
第一步:安装 ncm-cli
npm install -g @music163/ncm-cli
装完之后我们来验证一下:
ncm-cli --version
能看到版本号就说明装好了。
第二步:配置
这一步有个前置条件:你得先去 网易云音乐开放平台 注册开发者账号,拿到 App ID 和 Private Key。

有了这两个东西,我们运行配置命令:
ncm-cli configure
它会问你三个问题:
- App ID — 你在开放平台拿到的应用标识

- Private Key — 对应的私钥,用于 API 认证
- 播放器选择 — 有两个选项: - 内置播放器(mpv):终端直接播放,不需要装网易云音乐客户端 - 网易云音乐 App:操控桌面客户端,保留完整 App 体验(封面、歌词、红心等)

我们选「网易云音乐 App」。内置的 mpv 实测有一些 bug,比如 Windows 下播放可能失败、TUI 功能异常等。用桌面客户端更稳定,而且能看到封面、歌词,体验也更完整。
所以在这一步之前,确保你已经下载了网易云音乐桌面客户端:
- macOS:下载网易云音乐 for Mac
- Windows:下载网易云音乐 for Windows
第三步:登录
ncm-cli login
终端会弹出一个二维码,你用网易云音乐 App 扫一下就行。
3.3 最佳实践:先自己跑通
这里有个教训。
我以前没这个习惯,装完工具直接让 Agent 接手。结果配置没搞好,Agent 直接报错,我排查了半天才发现是登录没做。
ncm-cli 使用动态命令系统,命令是从服务端同步下来的。如果没有登录,CLI 无法连接服务端,可用的命令非常少——比如 search 命令就看不到。所以一定要先完成登录,再用 ncm-cli help 查看完整的命令列表。

所以我现在的流程是:装完之后,先自己手动跑一条命令(非常简单的即可),确认一切正常,再交给 Agent。
ncm-cli search song --keyword "王菲"
如果看到输出了一大串 JSON 数据,里面包含歌名等信息,就说明 CLI 可用。
如果你想听的话,复制JSON 里某一首歌曲的加密 ID 和原始 ID,比如下面的歌是王菲的《我也不想这样》:
ncm-cli play --song --encrypted-id A8A661D00F894847A4614411C869C18C --original-id 300063
看看能不能打开你本地的网易云音乐客户端并播放这首歌。
3.4 让 Hermes 接管
刚才我们初步体验了下 CLI 播放歌曲,体验下来你就发现这基本不是给人用的。没错,CLI 本来就是给 Agent 来调用的。
现在 CLI 已经测通了,让 Hermes 接管就很简单了。
不过 Hermes 并不会自动知道你装了 ncm-cli。所以第一步是先告诉它:
我安装了 ncm-cli,这是网易云音乐的命令行工具
Hermes 会自己去跑 ncm-cli --help,学习这个工具有哪些命令、怎么用。等它学完了,你就可以直接用自然语言跟它说想干什么了:
帮我播放王菲的《红豆》
Hermes 会拼出搜索和播放命令,最后打开你本地的网易云音乐客户端播放这首歌。
你没告诉它用哪个命令,也没给它歌曲 ID。它会自己查 --help,来完成指令。
3.5 可选:使用网易提供的 Skill
Hermes 本质上可以看成是一个自然语言解析器。如果不给它一定的指导,你每次跟它说「帮我搜首歌」,它都得重新推理:看看 --help,看看子命令,再拼参数。这其实挺消耗 token 的,而且比较慢。
最好的做法是用 Skill,告诉它常规操作怎么做。比如搜索、创建歌单、播放歌曲这些操作,网易云已经提供了现成的 Skill(当然你可以让 Hermes 将这些沉淀为技能)。把下面两句话复制给 Hermes,它就会帮你安装:
帮我安装 netease-music-cli 技能
帮我安装 netease-music-assistant 技能
装完以后,你再跟 Hermes 说网易云音乐相关的操作,它就会按照这些 Skill 里的指导来操作,这样响应更快,也更省 token。
3.6 有趣的玩法
装了 Skill 以后,你可以用自然语言跟 Hermes 玩出很多花样:
场景化推荐歌单
推荐几首民谣
Hermes 会先分析你的红心歌单,从曲风、情绪、语言偏好、高频红心时段等维度生成偏好画像,然后自动决定搜索类型(歌单/专辑/单曲或混合),多关键词并行搜索,并自动去重已推荐和已收藏的内容。
这就是 Skill 的意义,它可以指导 Hermes 做出更有价值的操作,而不是对着 CLI 命令去“硬搜”。
刚开始用的时候,你的提示词未必能触发 Skill。建议在对话中明确提醒一下:「用网易云音乐 Skill 帮我推荐」。用几次之后,Hermes 会记住这个习惯,下次就知道主动调用 Skill 了。
下面是 Hermes 的推荐:
画像已建好。现在按标准格式出推荐——
> 🎵 音乐推荐 · 2026-06-13 16:30
>
> 基于您的红心偏好:高频民谣艺人(毛不易、王宇良)+ 经典怀旧取向,推荐以下民谣内容
① 🎶 老民谣(朴树,老狼,许巍,李健,赵雷,郑)
⭐ 评分:92
📝 理由:您的「七月乌托邦」歌单大量收录齐秦、许美静、朴树等千禧年前后民谣经典,这张123首歌单的气质与之一脉相承。集齐朴树、老狼、许巍、李健、赵雷——正是那个"用铅笔卷磁带"年代的声音。
🔗 https://music.163.com/#/playlist?id=2786894389
② 🎶 听·毛不易热门精选 | 像我这样的人
⭐ 评分:90
📝 理由:您的红心中毛不易出现频次排名第二(仅次于邓寓君),偏好明显。这张精选集收录40首毛不易代表作,从《消愁》到《东北民谣》到《一荤一素》,叙事民谣的顶级配置。
🔗 https://music.163.com/#/playlist?id=7662689703
③ 🎶 深夜治愈|民谣小酒馆
⭐ 评分:85
📝 理由:您的红心高峰期集中在22-24点晚间时段,这张101首的民谣歌单定位"饮一杯音乐的清酒,原谅生活的不如意",时段和情绪都匹配。治愈系民谣,适合深夜独处。
🔗 https://music.163.com/#/playlist?id=8268089528
④ 🎶 华语民谣 | 治愈民谣,温暖声线治愈心灵
⭐ 评分:80
📝 理由:98首精选民谣,涵盖毛不易、赵雷、房东的猫等。引用林清玄"秋日薄暮,用菊花煮竹叶青"作引——和您歌单里那股子文艺气息对得上。
🔗 https://music.163.com/#/playlist?id=14412268702
⑤ 🎶 单曲推荐:东北民谣 — 毛不易
⭐ 评分:88
📝 理由:您已经红心了毛不易3首歌,这首《东北民谣》是他的民谣代表作之一,可播。带有浓烈叙事感和地域色彩的民谣,毛不易的"八杯酒"风格。
🔗 https://music.163.com/#/song?id=1411558182
共5条。想播哪个?我可以直接放,或者把单曲加进队列。
锐评红心歌单
锐评一下我的红心歌单
Hermes 会分析你收藏的歌曲,以幽默或专业的口吻给出评价,帮你发现歌曲间的隐藏联系,从新的角度重新审视自己的听歌口味。
给出我的歌单的”锐评“:
好,两张红心歌单都看了一遍,来锐评一下。
一、「糖不甜123123喜欢的音乐」— 361首
自动收藏的"我喜欢的音乐",网易云替你攒的。
看一眼阵容:邓寓君4首排第一,毛不易3首排第二,然后是二大爷、周蕙、虎二、王菲、温拿乐队……这个搭配怎么说呢,像是一锅把冰箱里所有剩菜都倒进去煮的乱炖——有粤语老歌、有民谣翻唱、有DJ热播版、有Live现场、还有李宗盛给自己写的歌。口味跨度之大,让人怀疑是不是不同年份、不同心情、不同场景下随手点的红心,攒了十多年也没清理过。
更妙的是前20首歌里,12首visible=false播不了。说明歌单里有一大片是"历史的遗迹"——那些年还能听的歌,如今被版权大棒打成了灰色图标。361首歌,真正能点响的,怕是要打对折。
总结:量大管饱,但更像一个情绪垃圾桶,什么年代的渣都往里倒。
二、「七月乌托邦的红心歌曲」— 264首
这个名字起得挺好——"七月乌托邦",听着就是一个夏天傍晚吹着风扇、脑子里装着不切实际幻想的人建的。
看歌单气质就统一多了:齐秦、许美静、张震岳、李宗盛、朴树、老狼、赵雷、小柯……清一色的千禧年前后的民谣/流行,带着一股子"那时候天总是很蓝,日子总过得太慢"的味儿。《且听风吟》《南方姑娘》《爱的代价》《冬季校园》——这哪是歌单,这是80后的青春标本簿。
问题也是一样:前20首里13首播不了。朴树的《且听风吟》、老狼的《想把我唱给你听》、赵雷的《南方姑娘》——全灰了。好好的乌托邦,被版权割得七零八落。
总结:审美在线,有年代感,像一本被撕掉了一半的诗集。还能读,但每翻几页就缺一块。
两句不算题外的话:
第一,这两张歌单风格差挺远——一个乱炖一个精选,说明糖不甜这人在"随便听听"和"认真建歌单"之间,精神分裂得挺有层次。
第二,364首播不了这事儿(粗略估计),鲁迅他老人家早就说过了——"人生最苦痛的是梦醒了无路可以走。" 您的歌还在,路(版权)没了。王小波大概会补一句:网易云是个好产品,就是有时候会提醒你,自己喜欢的歌原来不属于自己。
还挺有趣,哈哈。
3.7 ■ 学点英语
| 中文 | English | 音标 | 说明 |
|---|---|---|---|
| 命令调用 | Command Invocation | /kəˈmænd ˌɪnvəˈkeɪʃən/ | 通过命令行启动工具并传入参数的动作 |
| 参数解析 | Argument Parsing | /ˈɑːrɡjumənt ˈpɑːrsɪŋ/ | 程序把命令行参数解释成内部配置的过程 |
| 返回码 | Exit Code | /ˈeɡzɪt koʊd/ | 命令结束后表示成功或失败的数字状态 |
| 标准输出 | Standard Output | /ˈstændərd ˈaʊtpʊt/ | 命令正常返回文本内容的输出通道 |