跳至主要内容

CLI 與結構化輸出

使用 open-science 檢視應用狀態、執行任務、管理 Connector 與憑據,以及操作本地服務。先安裝命令入口,再確認它連線的是預期本地例項。

阅读平台
选择会在章节间保留。

應用更新命令已移除: v1.0.0 不再接受 open-science update 或其 --json 形式。使用桌面更新控制元件,或原安裝器/包管理器;原更新專用退出碼 5 和 6 不再屬於當前 CLI 表。升級步驟見安裝與更新。

從終端完成首次設定​

可安裝桌面版命令入口、使用 v1.0.5 獨立壓縮包,或按 npm 安裝步驟操作。獨立壓縮包包含 Node、後端和 Web UI;下面的解壓步驟適用於這些壓縮包。

  1. 選擇與主機匹配的 macOS/Linux arm64 或 x64 包,或 Windows x64 包。
  2. 完整解壓到可寫目錄,保留啟動器、backend 與 node-runtime 的相對位置;只複製啟動器會導致無法啟動。
  3. 在該目錄中,macOS/Linux 執行 ./open-science --help,PowerShell 執行 ./open-science.cmd --help。將該目錄加入 PATH 後,重新開啟終端,即可使用下方的 open-science 命令。
  4. 啟動本地後端並檢查就緒狀態。服務啟動本身不會完成模型配置。
open-science init
open-science start --no-open
open-science runtime list --json
open-science doctor --json

init 只建立配置目錄,不啟動應用。--profile 是 --config-root 的別名,可為 CLI 指定獨立配置。init、start 與後續命令應始終使用同一絕對配置目錄;獨立配置需要各自完成設定。runtime list 顯示檢測到的框架就緒狀態、版本和應用管理/外部來源,不暴露可執行檔案路徑。

尚未配置 Codex 時:

open-science runtime install codex --json
open-science codex login
open-science doctor --json

按提示完成登入。此流程準備或修復應用管理的 Codex 執行時,並透過應用登記訂閱,不會匯入外部 Codex 登入檔案。首次設定目前針對 Codex,即使執行時列表還顯示其他框架。已有配置發生衝突時會報錯,不會直接覆蓋。

改用 OpenAI API key 時,使用 provider add --type official --vendor openai --model MODEL_ID --api-key-env OPENAI_API_KEY --json,填入受支援的模型 ID,並透過已有金鑰管理方式提供環境變數。配置 OpenAlex 時使用 connector configure literature --openalex-key-env OPENALEX_API_KEY --json。這兩條命令前均加 open-science。不要把金鑰本身放進命令引數。憑據檢查成功不代表科研查詢已完成,也不保證仍有配額。

檢視 doctor 的 ready、逐項 checks 和建議的 next 操作。命令成功退出時 ready 仍可能為 false;後端未啟動時會明確報告並以 3 退出。完成提示中的前置條件,再次檢查,然後在目標專案中執行任務。

透過 Homebrew 或 Linux .deb/.rpm 安裝時,先按安裝包說明操作。Linux 發行包提供 open-science-cli;在本頁示例中使用該命令,避免誤用另一套桌面啟動器。

入口​

入口條件命令
應用安裝的啟動器Settings → General → Command line tool → Install commandopen-science --help
原始碼倉庫已構建應用並準備倉庫依賴node packages/open-science/cli.mjs --help
獨立 CLI 壓縮包匹配系統與架構,保留完整解壓目錄./open-science --help 或 ./open-science.cmd --help
npm 客戶端/SDKNode.js 22.13+ 與相容的執行中後端;安裝前確認包要求包名 @aipoch/open-science

應用啟動器使用隨應用附帶的執行時。目錄不在 PATH 時,按 General 頁面顯示的指令配置並開啟新終端。不要為了展示名稱而修改命令名。

完成一個小型命令列任務​

示例 透過命令列儲存說明檔案

  1. 按上方入口安裝命令。透過桌面應用或 start --no-open 保持後端執行,並確認模型可用。
  2. 執行 open-science status --json,再執行 open-science project list --json。確認目標例項並複製返回的專案 ID。
  3. 建立 task.md,內容為:儲存 project-note.md,寫一段簡短的連線檢查說明。不要讀取其他檔案或訪問網路。
  4. 按下方“執行輸入與控制引數”的命令依次操作;每次先取得返回 ID,再替換下一條命令的佔位符。
  5. 若任務等待權限,在對應的桌面或已認證瀏覽器會話中回應。--wait 超時時任務可能仍在繼續,重新提交前先用 run status RUN_ID --json 檢查。
  6. 選擇返回的 Markdown 產物 ID,下載到一個新的本地檔名並開啟。若任務完成但沒有指定檔案,應在同一會話繼續請求儲存。產物已存在但下載失敗時,按產物下載恢復步驟處理。

Plan first 任務可使用 --return-on-attention,閱讀返回計劃,再透過應用或下方計劃命令回應。JSON 整合應區分 running、completed、failed 和 cancelled,不能將 HTTP 請求成功直接當作任務完成。

命令分類​

命令引數作用
project list--json列出專案
project create名稱、可選描述、兩種 Agent Context 輸入之一建立專案
project updateID 或精確名稱,以及要修改的欄位僅修改提供的值,清空上下文使用 --clear-agent-context
project session-defaults show/update專案、會話選項讀取或更新新會話預設值,帶併發編輯保護
run專案、提示詞、可選會話與等待選項開始或繼續工作
run status/cancelRun ID檢視或顯式取消
session statusSession ID讀取會話狀態
session config show/update會話、修改時提供 --revision讀取配置或更新之後的輪次
settings agent-routing show/update框架和 Reviewer/Subagent 路由讀取或原子更新全域配置
plan show/approve/reject/revise會話,決定時提供精確產物版本和修訂讀取或回應計劃
artifacts listSession ID列出產物
artifacts downloadArtifact ID、--output儲存外部副本

指令碼優先使用專案 ID。CLI 可把唯一的精確名稱解析為 ID,重名會產生歧義;SDK/HTTP 直接要求 ID。Project Agent Context 上限為 16,000 字元,專案輸出返回 hasAgentContext,不返回上下文正文。

artifacts download 返回 HTTP 500 時,舊版應用先更新,再使用原來返回的產物 ID 重試。下載恢復步驟區分任務完成和檔案傳輸失敗,不要只為取得已有輸出而重跑研究任務。

管理 Connector 與憑據​

這些命令使用正在執行的後端及已儲存 Settings。編輯前確認目標例項。自定義 Connector 和憑據寫入需要本地認證連線;伺服器場景應在伺服器本機執行 CLI,也可經 SSH 登入後執行。

命令輸入或結果
open-science connector list --json讀取 Connector 的安全設定檢視
open-science connector show CONNECTOR_ID --json檢視返回 ID 對應的配置和狀態
open-science connector enable CONNECTOR_ID設定啟用偏好
open-science connector disable CONNECTOR_ID關閉啟用偏好
open-science connector add --json從 JSON 標準輸入讀取新建自定義 MCP 配置
open-science connector update CONNECTOR_ID --json從 JSON 標準輸入讀取修改
open-science connector remove CONNECTOR_ID刪除自定義 MCP 配置
open-science connector test CONNECTOR_ID --json單獨建立連線、發現工具後關閉
open-science credential list --json讀取憑據後設資料,不返回原始秘密
open-science credential add --json從 JSON 標準輸入讀取新憑據
open-science credential update CREDENTIAL_ID --json從 JSON 標準輸入更新 displayName 和/或 secret

示例 提交本地 Connector 配置

可使用以下命令提交已準備的本地配置檔案:

open-science connector add --json < connector.json
配置欄位要求
name / displayName新建必填;更新時 name/ID 保持穩定
transportstdio、streamable_http 或 sse;更新也必須提供
command / argsstdio 的本地可執行程式和可選引數
urlHTTP/SSE 端點
envCredentialIds / headerCredentialIds將環境變數/請求頭名稱繫結到已儲存憑據 ID
oauthCredentialId繫結已有共享 OAuth 憑據
省略憑據繫結更新時保留已儲存值;空的環境變數/請求頭繫結物件清空對應對映

只有自定義 MCP 可以新增、修改、刪除。Enabled 是選擇偏好,不證明連線成功,也不等於撤銷所有 Specialist 的訪問。

test 不會啟用 Connector 或執行業務工具,返回 success、可選 toolCount 和 message。發現階段上限十秒,失敗返回非零退出碼;不支援對內建 Connector 做此實時診斷。測試可能重新整理已有 OAuth 令牌,但不會完成首次瀏覽器登入。

秘密透過 JSON 標準輸入寫入,不要放進命令引數或 Shell 歷史。token 輸入包含 displayName、kind: token、secret,也支援 api_key。把返回的 createdCredential.id 繫結到 Connector。舊後端沒有這些端點時返回錯誤,不會退回直接編輯 Settings 檔案。

執行輸入與控制引數​

open-science project list --json
open-science run --project PROJECT_ID --prompt-file ./task.md --wait --json
open-science artifacts list SESSION_ID --json
open-science artifacts download ARTIFACT_ID --output ./result.csv --json

將大寫佔位符替換成實際返回的 ID。示例沒有假定本機存在某個虛構 Skill 或提供方。

引數約束
--prompt / --prompt-file內聯文字或 UTF-8 檔案;省略時可從 stdin 讀取
--session繼續指定會話
--cwd外部工作目錄,CLI 解析相對路徑,服務端校驗規範路徑
--approval-profileask、auto、full,預設 ask
--provider 與 --model / --provider-default-model配置過的提供方及明確或預設模型
--reasoning-effortCLI 幫助列出 default、low、medium、high、xhigh、max,UI 模型選項可能不同
--skill可重複的已安裝 Skill ID,不負責安裝
--plan-first計劃得到回應後才執行
--auto-review / --no-auto-review設定會話自動審查
--memory / --no-memory設定會話記憶,互斥
--specialist新會話繫結 UUID 或穩定 profile 名,展示名稱不是路由 ID
--delegation allow/deny控制新委派准入,deny 不取消已有子任務
--compute-host可重複的已配置主機 ID;選擇目標,不配置 SSH
--enable-compute-host / --clear-compute-hosts新會話訪問與預設值;現有會話訪問修改走配置更新

外部 cwd 仍歸呼叫者所有。已有會話再次提供 --cwd 時必須對應同一規範目錄,不會藉此遷移會話。省略主機引數保留既有選擇,清空應使用明確操作。

等待、需要處理和取消​

選項/狀態結果
不加 --waitRun 被接納後返回,儲存 id、sessionId 供查詢
--wait等待終態
--wait --return-on-attention計劃需要審批時也可返回;普通權限請求不是同一種 attention
--timeout-ms到時停止客戶端等待,伺服器任務仍繼續
--cancel-on-timeout超時後顯式取消,命令仍報告超時
run cancel RUN_ID等待取消和收尾,保留已經完成儲存的產物

審批前先讀取 plan show,同時提交 --artifact-version 和 --revision,避免舊決定應用到新計劃。會話更新同樣使用 session config show 返回的 revision,過期值返回 session_revision_conflict。正在執行的主代理、子代理或 Notebook 可使修改返回 session_busy。

結構化輸出和退出碼​

--json 輸出一個結果,run --wait --jsonl 輸出逐行事件,最後輸出 Run 結果;兩者不能同時使用。結構化錯誤位於 stderr,應檢查 error.code,不只看退出碼。

本地復現的非法引數錯誤:

{"error":{"code":"invalid_cli_usage","message":"Use only one of --json or --jsonl."},"exitCode":2}
退出碼含義
0命令成功,仍應檢查返回的 Run/attention 狀態
1通用/任務失敗、超時、衝突,或 status 表示無執行服務
2CLI 引數無效
3本地 daemon 不可用
4指定專案、Run、會話、產物或 Specialist 不存在

JSONL 可能包含 run.progress 和 stream.resync-required。重連後無法重放時,重新讀取權威 Run 狀態,不把事件流當作永久歷史。服務命令另有引數限制,見無介面服務。

CLI 實現、上游命令指南。

技術參考:CLI 約定.

無人值守執行​

給 run 新增 --permission-prompts none,可讓任務拒絕尚需人工處理的互動,避免一直等待。它保留選定審批配置和已記住的授權;剩餘權限請求會被拒絕,使用者提問會被謝絕,需要人工審閱的 Plan 也會被拒絕。這不是自動批准所有操作。

open-science run --project "Sequence and PDF Research" \
--prompt "Summarize the existing public-data result. Do not request user input." \
--approval-profile ask --permission-prompts none --wait --jsonl

選項只針對本次呼叫,不儲存為會話偏好。不能與 --plan-first 同用。檢查最終狀態和錯誤;任務不等待人工,不等於任務必然完成。客戶端會檢查主機是否支援 permission-prompts-none,舊主機返回 unsupported_capability 時應先更新配套客戶端與應用。

Windows 啟動器路徑​

v0.37.1 修復含非 ASCII 字元的桌面啟動器路徑。更新後開啟新終端,檢查 Get-Command open-science 與 open-science --help。若仍指向舊安裝,使用 Settings → General 顯示的入口。獨立壓縮包應保留完整目錄。幫助命令成功不代表模型已就緒,之後執行 doctor --json 檢查。

不啓動服務,檢查本地 CLI​

open-science version --json
open-science help run
open-science paths --json
open-science paths --profile /ABSOLUTE/PATH/TO/PROFILE --json

這些命令不要求後端運行。version 顯示實際調用的安裝版本,不是已連接服務的版本。paths 返回 cliPath、nodePath、startupConfigRoot 和 discoveryConfigRoots;它不代表活動服務或研究數據目錄。顯式指定配置目錄會選擇啓動/發現位置,但不會創建該目錄。路徑可能包含本機用戶名,分享前先檢查輸出。

連接外部 MCP 客戶端​

v1.0.4 的獨立 CLI 通過 stdio 提供科研工具。先啓動目標配置對應的服務;適配器不會自動啓動服務。將客戶端配置中的兩個絕對路徑替換爲實際路徑:

open-science start --no-open --config-root /absolute/path/to/profile
open-science mcp --help
{
"mcpServers": {
"open-science": {
"command": "/absolute/path/to/open-science",
"args": ["mcp", "--config-root", "/absolute/path/to/profile"]
}
}
}

由客戶端啓動適配器。先用 list_projects 獲取項目 ID,再交給 start_run 提交任務,通過 get_run 查看進度,使用 list_artifacts 查看文件。僅能發現工具不代表服務可用;實際調用需要運行中的已認證本地服務,這不是遠程 HTTP MCP 入口。

客戶端沿用該配置已有的權限,可以創建持久項目、修改配置,併發起會寫文件或產生模型費用的任務。審批仍可能需要你在 Open-Science 中處理。請求超時後,先檢查當前狀態再重複寫操作。關閉客戶端或取消請求不會取消已接受的研究任務;需要停止任務時明確調用 cancel_run。詳見官方 MCP 工具與權限說明。

研究包命令見 CLI 導入與導出。

讓服務持續運行以完成自動化​

若 CLI、瀏覽器或 SDK 工作需要在退出桌面應用後繼續,請先對目標配置執行 open-science start --no-open --json。從 v1.0.5 起,這會設置一次持續運行狀態;重複啓動不會累加。普通 stop 解除該設置,但仍有 App 連接時服務會保留。判斷服務是否停止前,請讀取生命週期結果,不要只看命令成功與否。