跳至主要內容

ui

啟動用於視覺化 skill 管理的 Web dashboard。

skillshare ui                  # 在前景執行
skillshare ui start # 啟動(或重用)背景伺服器
skillshare ui stop # 停止背景伺服器

在你的預設瀏覽器中開啟 http://127.0.0.1:19420

模式

模式行為
skillshare ui(預設)在前景執行 UI 伺服器;Ctrl+C 可停止它
skillshare ui start以背景行程啟動 UI 伺服器並將控制權交還給 shell。重新執行 start 時,若既有行程仍健康則會重用它
skillshare ui stop停止由 skillshare ui start 啟動的背景 UI 伺服器

何時使用

  • 透過視覺化 Web 介面管理 skills、targets 與 sync
  • 瀏覽並安裝 skills,不必死記 CLI flags
  • 執行安全稽核並取得視覺化的發現報告
  • 與較不熟悉 CLI 的團隊成員分享 dashboard 檢視畫面

Flags

Flag預設值說明
-p, --project以 project mode 執行(使用 .skillshare/
-g, --global以 global mode 執行(使用 ~/.config/skillshare/
--port <port>19420HTTP 伺服器連接埠
--host <host>127.0.0.1綁定位址(Docker 請使用 0.0.0.0
-b, --base-path <path>供 reverse proxy 使用的子路徑(例如 /skillshare
--no-openfalse不自動開啟瀏覽器
--appfalse在可用時以桌面應用程式風格的 Chromium app 視窗開啟 dashboard(僅 start 模式)
--clear-cache在前景模式中:清除快取的 UI 資源後結束。搭配 start:先清除快取,再於背景啟動
自動偵測

若目前目錄存在 .skillshare/config.yaml,dashboard 會自動以 project mode 啟動。使用 -g 可強制以 global mode 啟動。

範例

# 預設:在前景以 localhost:19420 開啟瀏覽器
skillshare ui

# Project mode(管理 .skillshare/ 中的 skills)
skillshare ui -p

# 自訂連接埠
skillshare ui --port 8080

# Docker / 遠端存取
skillshare ui --host 0.0.0.0 --no-open

# 在背景啟動並返回 shell
skillshare ui start

# 以無瀏覽器外框的桌面應用程式風格視窗啟動
skillshare ui start --app

# 停止背景伺服器(使用記住的 host/port)
skillshare ui stop

# 清除快取的 UI 資源,然後在背景重新啟動
skillshare ui start --clear-cache

Dashboard 頁面

側邊欄依任務分組頁面:同步、你管理的內容、內容去向,以及維護作業。名稱下方的一行會顯示模式與其資料夾,例如 Global · ~/.config/skillshare

部分頁面在需要注意時會在側邊欄顯示數字提示。這些數字在 dashboard 分頁開啟時每 15 秒重新整理一次:

  • Sync:一次同步會套用的變更
  • Git Sync:未 commit 的檔案,或在工作目錄乾淨時尚未 push 的 commits
  • Audit:上次掃描時被阻擋的 skills 與 agents(執行過一次掃描後才會顯示)
頁面說明
DashboardSkills、agents、extras、MCP servers、plugins 與 targets 的數量,以及需要注意的項目
Sync在寫入前預覽每個 target 的每項變更。選擇要包含的部分(Skills、Agents、Extras、MCP)。在 target 內編輯過的檔案,除非開啟 Force,否則會保留。只存在於 target 中的項目可以從這裡收集回 source。每次同步都會先備份 target 資料夾
Git SyncCommit 並 push source repo、push 尚未在 remote 上的 commits,以及 pull。Pull 會同步 repo scope 所涵蓋的內容(skillsagentsextrasroot),如同 pull。當第一次 pull 無法與 remote 合併時,會提供強制 pull 以本機檔案取代 remote 分支
Hubs從 Skills 頁面進入。Browse 篩選 hub 並從中安裝;My hubs 從已安裝的 skills 組裝索引、驗證並匯出。參見 hub
Skills / Agents已安裝的項目、Updates 分頁與 Trash 分頁。Skills 還有一個 Analyze 分頁,用來估算每個 skill 為 target 的 context 增加多少 tokens。Install 可搜尋 GitHub,或從 URL 或路徑安裝。+ New Skill 開啟建立精靈。帶有 disable-model-invocation: true 的 skill 會在列表、其磚塊(tile)與詳細頁面上帶有 manual only 標籤,這與 list 中用 M 切換的狀態相同。在 skill 編輯器中,Add field 說明每個 frontmatter 欄位的作用
Extras與 skills 一同同步的 rules、commands 及其他資料夾
MCP每個 server 一列,並以切換開關顯示它同步至哪些 Agents。Add server 接受 URL、指令、貼上的片段或檔案;Import 讀取已安裝 Agent 目前的設定。每個 server 的選單都有 View what each Agent gets,可顯示各 Agent 的原生設定(含尚未儲存的編輯內容)。衝突時提供 Import 或 Replace,備份可在還原前先預覽。預設值 用來編輯 mcp.targetsmcp.directTools
Plugins每個 plugin 一列,並以其 Agents 作為切換開關。展開一列還會列出來源支援的其他 Agents;勾選其中之一即可預覽安裝內容。列選單可以同步、更新、移除,或開啟 View files,也就是唯讀瀏覽 Skillshare 已檢視過的本機副本。參見 跨工具管理 plugins
Targets附帶狀態的 target 列表。每個 target 的頁面可編輯 include/exclude 篩選條件,並將僅存於本機的 skills 收集回 source
Projects僅限 global mode。global config 會同步進去的 project 資料夾,來自 projectsmcp.projectsAdd project 會要求填入資料夾、它的 targets,以及要同步的內容。每個 project 都有 SkillsAgents 分頁,附帶篩選條件、預覽畫面與會被寫入的資料夾,還有一個 MCP 分頁可在該資料夾中關閉 global servers 或給它專屬的 servers。已經指向某個 project 資料夾的 target 可以被轉換
Audit對 skills 與 agents 進行安全掃描,依嚴重程度列出發現項目。Rules 分頁可依分類瀏覽每一項規則:關閉某項、變更其嚴重程度、對整個分類套用嚴重程度、選擇掃描設定檔(defaultstrictpermissive),或開啟編輯器自訂 audit-rules.yaml
Settings分頁式:General(source 路徑、同步模式、外觀)、Backup(快照與還原)、Log(操作歷史)、Health(與 doctor 相同的檢查)、Extensions(同步時的檔案轉換)、Files(直接編輯 config.yaml.skillignore.agentignore

舊連結如 /collect/install/search/trash/analyze/backup/log/doctor 會重新導向至新的位置。

Files 分頁會在編輯器旁顯示一個面板。對於 config.yaml,它會顯示游標所在欄位的作用、檔案結構與尚未儲存的變更;對於 ignore 檔案,它會列出目前 patterns 隱藏了哪些內容。Cmd+S / Ctrl+S 可儲存。Audit -> Rules -> Edit YAML 下的 rules 編輯器有相同的面板,外加一個 Test 分頁,可用你貼上的行來測試規則的正規表示式。

主題系統

Dashboard 支援兩種視覺風格與三種色彩模式,可透過側邊欄的 Theme 按鈕切換:

設定選項預設值
StyleClean(專業風格)、Playful(粗體外框、硬陰影、手寫標題)Playful
ModeLightDarkSystem(跟隨作業系統偏好設定)Light

主題偏好設定會持久保存在 localStorage 中,跨 session 保留。

Project Mode 的差異

在 project mode(-p)中執行時,dashboard 會做以下調整:

  • 側邊欄會在名稱下方顯示 Project · <project path>
  • Git Sync 頁面被隱藏(project skills 使用該 project 自己的 git)
  • Sync 只會備份 agent target 資料夾,如同 skillshare sync -p
  • Settings 中的 Backup 分頁被隱藏(請改用版本控制)
  • Dashboard 中的 Tracked Repos 區塊被隱藏(不適用)
  • Settings -> Files 會顯示 .skillshare/config.yaml 與 project 層級的 .skillignore,而非 global 版本
  • Available targets 會列出 project 層級的 targets(例如相對於 project 根目錄的 .claude/skills/
  • Install 會自動調和 project config 中的 skills: 項目

UI 預覽

Install flowDashboard overviewSkills browserSkill detail viewSync controlsGitHub search view

REST API

Web dashboard 在 /api/ 上提供 REST API。所有端點皆回傳 JSON。

MethodPath說明
GET/api/overviewSkill/target 數量、模式、版本、config 資料夾(configDir
GET/api/skills列出所有 skills 及其 metadata
GET/api/skills/{name}Skill 詳細內容 + SKILL.md 內容
GET/api/skills/templates取得可用於建立 skill 的 patterns 與分類
POST/api/skills建立新 skill(name、pattern、category、scaffoldDirs)
DELETE/api/skills/{name}解除安裝一個 skill
GET/api/targets列出 targets 及其狀態、include/exclude 篩選條件,以及每個 target 的預期數量
POST/api/targets新增一個 target
DELETE/api/targets/{name}移除一個 target
POST/api/sync執行同步(支援 dryRunforcekind)。除非設定 dryRun,否則會先備份 targets
POST/api/git/commit從 source repo 建立本機 git commit,但不 push
GET/api/git/statusSource repo 狀態,包含尚未 push 的 commits(ahead
POST/api/pushCommit 所有變更後再 push。首次 push 時會設定 upstream
POST/api/pullPull 之後同步 repo scope 所涵蓋的內容。當第一次 pull 無法合併時,會以錯誤代碼 merge_failed 失敗;帶 force: true 重試可以本機檔案取代 remote 分支
GET/api/diffSource 與 targets 之間的差異
GET/api/search?q=在 GitHub 上搜尋 skills
POST/api/install從來源安裝一個 skill
GET/api/audit掃描所有 skills 是否存在安全威脅
GET/api/audit/rules取得自訂稽核規則 YAML
PUT/api/audit/rules儲存自訂稽核規則(驗證正規表示式)
POST/api/audit/rules建立起始 audit-rules.yaml
GET/api/audit/rules/compiled合併內建規則與自訂規則後的每一條規則,以及目前生效的 profile
POST/api/audit/rules/toggle啟用、停用或重新調整某個規則或整個 pattern 的等級
POST/api/audit/rules/reset刪除自訂規則並還原內建預設值
PATCH/api/audit/policy設定 blockThresholdprofile,或兩者皆設
GET/api/log列出帶有可選篩選條件的日誌項目
GET/api/config取得 YAML 格式的 config
PUT/api/config更新 config YAML
GET/api/skillignore取得 .skillignore 內容 + 忽略統計
PUT/api/skillignore更新 .skillignore 內容
GET/api/doctor執行所有健康檢查(JSON)
GET/api/health存活探測;伺服器就緒後回傳 200
GET/api/version目前/最新版本 + 是否有可用升級
POST/api/upgrade就地執行 skillshare upgrade(若執行檔為開發版本則回傳 devMode: true
POST/api/restart重啟本機 UI 伺服器;可選的 { "clearCache": true } body 會先清除快取的 UI 資源

就地升級

當 dashboard 偵測到有更新的 CLI 版本可用時,Update 對話框與 Doctor 頁面的 Version 卡片都會顯示 Update now 按鈕:

  1. UI 呼叫 POST /api/upgrade,在主機上執行 skillshare upgrade
  2. 新執行檔就緒後,UI 呼叫 POST /api/restart 重啟本機伺服器。
  3. 瀏覽器輪詢 GET /api/health,並在新伺服器就緒後自動重新載入。

如果正在執行的是開發版本(version == "dev"),upgrade 端點會回傳 devMode: true,UI 會模擬重啟而不修改磁碟上的任何內容。

如果自動重新載入沒有完成,對話框會提示你執行 skillshare ui start 以重新啟動背景伺服器。

Reverse Proxy

如果你在共用伺服器上、透過 reverse proxy 執行 dashboard(例如 homelab、內部工具平台),可使用 --base-path 讓它在子路徑下與其他服務並存:

skillshare ui --base-path /skillshare --host 0.0.0.0 --no-open

或透過環境變數:

SKILLSHARE_UI_BASE_PATH=/skillshare skillshare ui --host 0.0.0.0 --no-open

Nginx

location /skillshare/ {
proxy_pass http://127.0.0.1:19420;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}

Caddy

handle_path /skillshare/* {
reverse_proxy 127.0.0.1:19420
}
提示

不使用 --base-path 時,dashboard 的行為與以往完全相同——直接在 localhost:19420 存取不需要任何額外設定。

MCP 設定

MCP 頁面只有在瀏覽器以 localhost 或 IP 位址(例如 http://192.168.1.20:19420)開啟 dashboard 時才能運作。透過網域名稱存取時(包括 reverse proxy),MCP 請求會回傳 403:DNS rebinding 攻擊一律使用網域名稱。若要在遠端機器上管理 MCP 設定,請用 ssh -L 19420:127.0.0.1:19420 HOST 轉發連接埠,再開啟 http://localhost:19420

Docker 使用方式

若要在 Docker 中使用 Web UI(首次下載 UI 需要網路連線):

make playground

# 在容器內:
skillshare ui --host 0.0.0.0 --no-open

然後在主機上開啟 http://localhost:19420(連接埠 19420 會自動對應)。

Project Mode

Web dashboard 完整支援 project 層級的 skills:

cd my-project
skillshare ui -p

或者,如果 .skillshare/config.yaml 存在(自動偵測),直接執行 skillshare ui 即可。

Dashboard 會讀寫 .skillshare/config.yaml、同步至 project 本機的 targets,並在安裝後調和遠端 skill 項目——就跟 CLI 一樣。

執行時 UI 下載

skillshare ui 會在首次啟動時,自動從對應的 GitHub Release 下載預先建置的 UI 資源。這些資源會快取於 ~/.cache/skillshare/ui/<version>/(遵循 XDG_CACHE_HOME),因此後續啟動會是即時且離線的。

  • 首次執行需要網際網路連線來下載 UI 資源(約 1 MB)
  • 後續執行使用快取的資源——不需要網路
  • 升級時,舊的快取版本會自動清除;新 UI 會在 skillshare upgrade 期間預先下載
  • 手動清除快取,執行 skillshare ui --clear-cache

Homebrew 說明

所有安裝方式(Homebrew、安裝腳本、手動下載執行檔)都使用執行時 UI 下載。當你執行 skillshare ui 時,它會在首次啟動時自動從 GitHub 下載 UI 資源。之後,會使用快取的資源離線運作。

若要清除已下載的 UI 快取:

skillshare ui --clear-cache

架構

Web UI 是一個單頁 React 應用程式,於執行時從對應的 GitHub Release 下載,並從磁碟快取(~/.cache/skillshare/ui/<version>/)提供服務。

skillshare ui
├── Go HTTP server (net/http)
│ ├── /api/* → REST API handlers
│ └── /* → Cached React SPA (runtime download)
└── Browser opens http://127.0.0.1:19420

另請參閱