
從兩個場景說起
第一個場景:深夜 vibe coding,想換首歌。
往常的流程是:手從鍵盤移開,切到手機 App / 桌面App,刷一下推薦,三首都不對感覺,思路斷了,算了隨便放著。現(xiàn)在的流程是:在對話框里順手發(fā)一句「幫我找?guī)资走m合深夜寫代碼的音樂」,AI 處理完,BGM 切了,附了一句推薦理由,你甚至沒有離開編輯器。
第二個場景:用飛書辦公了半天,想看看照片讓眼睛放松下。
直接在飛書發(fā)一句「用我的紅心歌單幫我生成一個照片墻」。于是出現(xiàn)下圖。

這就是 ncm-cli 加上 OpenClaw 今天能做到的事。
“不知道聽什么”一直是個痛點,直到OpenClaw 出現(xiàn)
如大家所知,OpenClaw 代表著 Agent 交互方式的一個轉(zhuǎn)折點:AI 不再只是瀏覽器里的對話界面,它可以是你 IM 里隨時響應(yīng)的助手,在你的機器上執(zhí)行真實的操作。
我們意識到,在這個背景下,音樂是一個非常適合驗證這個范式的場景。
為什么?因為「不知道聽什么」是我們?nèi)粘S龅阶畹湫偷哪:鈭D之一——你不是想搜索某首具體的歌,你想要的是「適合現(xiàn)在這個狀態(tài)的音樂」。這種模糊意圖,正是 AI 擅長處理的,用傳統(tǒng)搜索界面反而別扭。
而且音樂操作有一個天然的特點:輸入和輸出分離。你用手機發(fā)消息(輸入),電腦放音樂(輸出)。OpenClaw 的跨設(shè)備特性和這個場景完美契合。
我們是怎么思考工具形態(tài)的
確定這件事值得做之后,第一個問題是:做成什么形態(tài)?
App 不合適——要維護 UI,更新重,和 AI Agent 集成反而繞了一圈。插件或 SDK 依賴特定平臺,換一個 Agent 就要重做。
我們選擇了 CLI。
這個判斷背后有一個很直接的邏輯:CLI 命令是 AI Agent 最天然的工具調(diào)用形式。一個ncm-cli play --song xxx的命令,對 Claude、OpenClaw 里的 AI、或者任何其他 Agent 框架來說,調(diào)用方式完全一樣。CLI 本身不依賴任何 AI 框架,它就是一個能被任何東西調(diào)用的原子工具。
同時,CLI 也保留了「直接用」的可能性——人工輸入命令、Shell 腳本集成、自動化流水線,都沒問題。
基于這個形態(tài),我們還設(shè)計了兩個Skill去真正的融入到Agent中:
netease-music-cli—— 適合「我知道要聽什么」的場景。搜歌、播放、控制隊列、管理歌單,直來直去。
這個 Skill 有一個有意思的設(shè)計:我們沒有在 Skill 定義里枚舉所有命令,而是讓 AI 自己通過--help去漸進式發(fā)現(xiàn)。
AI 拿到任務(wù)后,會先執(zhí)行ncm-cli --help看頂層有什么,再根據(jù)需要鉆進具體子命令查參數(shù),最后再執(zhí)行。整個過程和人第一次用一個新 CLI 工具的探索方式完全一樣。

這個設(shè)計有兩個好處:一是 Skill 定義本身不需要隨命令的增減而更新;二是和后面將要介紹的動態(tài)命令系統(tǒng)形成了自然的協(xié)同——服務(wù)端新下發(fā)了一個命令,AI 下次就能通過--help發(fā)現(xiàn)并使用它,整條鏈路都不需要人工介入。
netease-music-assistant—— 適合「我不知道聽什么」的場景。它會先讀取你的紅心歌曲,分析你的偏好(曲風(fēng)、情緒、時間段習(xí)慣),然后制定多維度搜索策略,從歌單、專輯、單曲多個維度混合推薦,每條結(jié)果都附帶個性化的推薦理由,還會自動去重(不重復(fù)推薦你已經(jīng)收藏或近期推薦過的內(nèi)容)。
兩個 Skill 的分工很清晰:前者是執(zhí)行層,后者是決策層。
我們做了什么
ncm-cli 支持三種使用方式:

命令設(shè)計:不是從按鈕出發(fā),從 AI“原子操作” 的視角出發(fā)
命令覆蓋范圍的選取,我們不是從「用戶會點哪些按鈕」出發(fā),而是從「AI 完成一個音樂任務(wù)需要哪些原子操作」出發(fā)。
AI 處理一個請求,本質(zhì)上是一個多步推理 + 執(zhí)行的過程。以「幫我播放一首適合現(xiàn)在心情的歌」為例,AI 需要能做這些事:

圍繞這個流程,我們把命令分成了幾個層次:

另外有一個細節(jié)值得一提:所有命令默認輸出 JSON,格式穩(wěn)定,AI 可以直接解析,不需要做文本解析。
動態(tài)命令:讓 CLI 保持「活」的
傳統(tǒng) CLI 有一個固有限制:命令是編譯進代碼的,新增一個功能,必須改代碼、發(fā)版、等用戶升級,整條鏈路很長。
ncm-cli 引入了一套動態(tài)命令系統(tǒng),核心思想是:把命令的定義從代碼里移到服務(wù)端。
傳統(tǒng) CLI的發(fā)版鏈路:

動態(tài)命令的更新流程:

CLI 啟動時,會向服務(wù)端發(fā)送一次同步請求,告知「我本地已經(jīng)緩存了哪些命令的哪個版本」。服務(wù)端只返回有變化的部分,CLI 用這些增量數(shù)據(jù)在本地重建命令樹。
效果是:業(yè)務(wù)團隊可以獨立地添加、修改、下線命令,用戶不需要升級客戶端,下次啟動就能用到新功能。CLI 從一個靜態(tài)工具變成了一個持續(xù)生長的命令執(zhí)行引擎。
播放形態(tài)
播放后端支持兩種:
內(nèi)置播放器(mpv):跨平臺,macOS/Linux/Windows 均可用。即使沒有安裝網(wǎng)易云音樂客戶端,也能直接播起來。
網(wǎng)易云音樂桌面客戶端:這個模式帶來了一種不同的體驗——AI 操控的不是一個獨立的播放進程,而是你已經(jīng)安裝的那個 App 本身。技術(shù)上,ncm-cli 通過orpheus://URL Scheme 向客戶端發(fā)送指令,客戶端后臺常駐進程監(jiān)聽并響應(yīng)。App 沒有運行時會自動啟動。這意味著:你對 AI 說「幫我播放林俊杰的曹操專輯」,打開的是完整的網(wǎng)易云音樂界面——專輯封面、歌詞、音質(zhì)、紅心、社交……全套 App 體驗,只是控制方式從點擊變成了自然語言。App 沒有被取代,它獲得了一個新的控制界面。
TUI 播放器是我們比較喜歡的功能之一——黑膠旋轉(zhuǎn)動畫、卡拉 OK 風(fēng)格歌詞同步、場景切換,在終端里有一種莫名的儀式感。

TUI 有一個值得一說的特性:它可以和 CLI 命令同時工作。TUI 跑著的時候,你仍然可以在另一個終端執(zhí)行ncm-cli next、ncm-cli volume 80,TUI 界面會實時響應(yīng)。這對 AI Agent 來說尤為自然——Agent 發(fā)出的命令和人在 TUI 里的操作是完全對等的。
怎么用
詳細使用指南見:網(wǎng)易云音樂 CLI 使用指南
首先你需要安裝ncm-cli:
npm install -g @music163/ncm-cli
前往 網(wǎng)易云音樂開放平臺 完成入駐并獲取 API 憑證,然后運行配置向?qū)В?/p>
ncm-cli configure
接下來就可以使用了。有多種使用方式:
方式一:OpenClaw
詳細教程見:OpenClaw ncm-cli 快速上手指南
安裝 OpenClaw 并連接你的飛書等IM軟件,然后安裝我們提供的skill:https://github.com/NetEase/skills,之后你就可以從手機隨時控制電腦上的音樂播放。
這種方式最適合日常使用:不需要打開終端,不需要記命令,用 IM 發(fā)消息就好。
一個有趣的例子:你在飛書發(fā)一句「用我的紅心歌單幫我生成一個照片墻」。

這個請求看起來和音樂播放沒什么關(guān)系,但它展示了 Agent 模式更大的想象空間——

ncm-cli 在這里不只是播放工具,而是音樂數(shù)據(jù)的結(jié)構(gòu)化接口。Agent 拿到這些數(shù)據(jù)之后,可以做任何事——生成圖片、寫報告、分析偏好、發(fā)郵件,取決于你的想象力和 Agent 能調(diào)用的其他工具。
這是 CLI 作為 Agent 工具的核心價值:一個專注、穩(wěn)定的數(shù)據(jù)和控制接口,Agent 決定怎么用它。
方式二:Claude Code Skills
npx skills add https://github.com/NetEase/skills
安裝后,直接在 Claude Code 對話:
> 幫我推薦幾首適合專注的純音樂
> 播放我最近聽的歌曲
> 下一首
> 把這首歌加到紅心


方式三:直接 CLI
npm install -g @music/ncm-cli
ncm-cli configure # 配置憑證
ncm-cli login # 掃碼登錄
ncm-cli tui # 啟動 TUI 播放器
...
歡迎反饋
做這件事的初衷很簡單:「合適的」音樂應(yīng)該更容易「被找到」,而不是每次都要在推薦算法和自己的猶豫之間拉鋸。AI Agent 提供了一個新的可能性——用自然語言表達當(dāng)下的狀態(tài),讓 AI 替你做決策。
ncm-cli 是我們探索這個方向的一個起點,還有很多沒做好的地方。
幾個問題想聽聽大家的想法:
你日常聽歌的「痛點」是什么?是找歌難,還是管理歌單煩,還是別的?
如果 AI 能更主動地介入你的聽歌體驗(比如感知你的狀態(tài)、主動推薦),你希望它怎么做,又不希望它怎么做?
如果你有技術(shù)背景,有沒有想貢獻的方向?
歡迎在評論區(qū)聊,也歡迎到 GitHub 提 issue。











