Skip to content

Repository files navigation

nextu-cli

npm 套件名 nextu-cli;安裝後的指令名是 nextu。 (nextu 這個套件名被 npm 的相似名稱保護擋下——與 next / net / nuxt 過近。)

用終端機或腳本驅動 Next U 廣告製作精靈:建案、從商品網址匯入、上傳本機圖片、取生成提示、回存生成結果。

這是 Next U 的「三門面」之一(另兩門:本機 stdio MCP server、遠端 MCP POST /api/mcp)。三門共用同一後端 /api/mcp/*,這支 CLI 是最薄的一層 shell,零執行期相依(只用 Node 18+ 內建 fetch/fs)。

CLI 相對於遠端 MCP 的獨特能力=**nextu attach:讀你本機硬碟**上的圖檔上傳(雲端遠端 MCP 碰不到你的硬碟,本機圖進場天生是 CLI 的活)。

安裝

npx nextu-cli --help
# 或全域安裝
npm i -g nextu-cli && nextu --help

本機開發(clone 本 repo 後):

npm install
npm run dev -- --help        # 用 tsx 直接跑 TS
# 或先 build 再跑
npm run build && node dist/index.js --help

登入

CLI 打的是 /api/mcp/*,需 bearer token(你的個人 PAT,或 OAuth 取得的 access token)。

# 正式站:互動輸入(推薦)—— 會提示你貼上 token,輸入不回顯
nextu login
# 本機 dev(打 localhost 的 Next 開發伺服器)
nextu login --url http://localhost:3000
# CI / 腳本:從 stdin 讀,token 不進 argv
echo "$NEXTU_TOKEN" | nextu login --token-stdin

⚠️ nextu login --token <值> 仍可用(相容),但不建議:命令列參數會留在 shell history、 ps 的命令列、CI log 與 agent 逐字稿裡,刪掉設定檔也收不回來。用了會印警告。

MCP_API_TOKEN 不是本 CLI 的 token 來源。 那個環境變數屬於伺服器端的部署設定, 代表站台層級的服務身分(權限遠大於個人帳號),不是你的個人 token。本 CLI 一律忽略它, 只在偵測到時提醒你——避免「機器的 shell 曾匯出過伺服器設定」就靜默換了身分、還蓋掉你已登入 的個人 PAT。個人 token 請用 nextu loginNEXTU_API_TOKEN

token 存到 ~/.nextu/config.json。也可用環境變數覆寫:NEXTU_API_TOKENNEXTU_BASE_URL。優先序:--flag > 環境變數 > 設定檔 > 預設。

設定檔權限

POSIX:目錄 0700、檔案 0600(僅本人可讀寫)。

Windows:Node 的 mode 參數對 NTFS ACL 完全無效,所以 login 會另外執行 icacls <config> /inheritance:r /grant:r "<你>":F 斷掉繼承、只留本人。若這步失敗(或抓不到 %USERNAME%),login 會明講「檔案沿用家目錄權限,同機其他帳號可能讀得到」並給你手動指令—— 不會假裝已經保護好。

nextu status 檢查目前站點/ token /健康/端點是否啟用。

token 外洩守門

存取 token 只會送往可信主機:nextu.studio(含子網域,須 https)與本機 localhost / 127.0.0.1(dev 可 http)。若 --url / NEXTU_BASE_URL 指向其他主機,帶 token 的請求會被擋下(token 不出機器),login 也拒絕存檔——避免被惡意 --url 把 token 送到攻擊者主機。自架正式網域:用 https 並設 NEXTU_ALLOWED_HOSTS=your.domain(逗號分隔可多個)。

典型流程

nextu create --title "老虎印花棒球帽" --output copy         # → 回傳專案 id
nextu extract <id> "https://…商品頁…"                        # 從網址匯入名稱/描述/圖/logo
nextu attach  <id> ./photos/cap.jpg --role product          # 或上傳本機圖(product|kol|logo)
nextu set-inputs <id> --category 6 --kol --kol-name "張啟山"

nextu prepare <id> s6_copy                                  # 取「生成提示」→ 你用自己的模型生成
echo '<你生成的 JSON>' | nextu save <id> s6_copy --stdin     # 回存(也可 --file <路徑> 或直接帶字串)

prepare/save 是「文字生成反轉」:伺服器不呼叫付費 LLM、不扣點,算力由你自己的模型出。prepare 印出提示與回存合約;vision 步驟可加 --save-images <資料夾> 把商品/代言人參考圖存出來看。

指令一覽

指令 說明
login / logout / status 認證與狀態
health 網站健康檢查(公開,免 token)
projects / project <id> 列出 / 讀取專案
options 合法選項(類別 / 模型 / 各類別行銷概念清單…)
create 建立專案 [--title] [--output copy|photo|video]
set-inputs <id> S1–S5:--output --category --name --desc --kol|--no-kol --kol-name --kol-style --kol-notes
set-settings <id> S55:--video-model --direction --unboxing-person --image-ar --video-ar --image-res --video-res --duration --mode
extract <id> <url> 從商品網址匯入
attach <id> <path> --role product|kol|logo ★ 上傳本機圖片
prepare <id> <s6_copy|s8_product_prompt> 取生成提示 [--language] [--concept] [--save-images]
save <id> <step> <result|--file|--stdin> 回存生成結果

全域:--url--token--json(原始 JSON 輸出,供腳本/agent 解析)、-h/--help--version

給 agent / Skills

每個指令都支援 --json 輸出原始 API 回應,便於 Skill 解析。搭配 prepare(取提示)→ agent 用自己的模型生成 → save --stdin(回存),即可把 Next U 產線包成跨 agent 的技能。

發佈(npm)

首次發佈由人工執行(npm publish,需 2FA)。之後一律走 GitHub Actions 的 trusted publishing (OIDC) ——見 .github/workflows/npm-publish.yml:沒有任何長期 npm token 需要存放,且 npm 會 自動附上 provenance 證明(使用者可據以驗證「這個 tarball 真的由該 repo 的該 commit 建出來」)。

⚠️ 不要為了自動化而簽發 2FA-bypass 的 granular access token:npm 已宣布分兩階段廢止 (2026-08 起不能做帳號/套件管理、2027-01 起不能直接發佈)。OIDC 是官方指定的替代路徑。

About

Command-line tool for Next U (nextu.studio) - drive the ad pipeline from your terminal.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages