ui
視覚的な Skill 管理のための Web ダッシュボードを起動します。
skillshare ui # フォアグラウンドで実行
skillshare ui start # バックグラウンドサーバーを起動(既存があれば再利用)
skillshare ui stop # バックグラウンドサーバーを停止
デフォルトブラウザで http://127.0.0.1:19420 を開きます。
モード
| モード | 動作 |
|---|---|
skillshare ui(デフォルト) | UI サーバーをフォアグラウンドで実行。Ctrl+C で停止 |
skillshare ui start | UI サーバーをバックグラウンドプロセスとして起動し、シェルの制御を返す。再度 start を実行した場合、既存のプロセスが正常であればそれを再利用 |
skillshare ui stop | skillshare ui start で起動したバックグラウンド UI サーバーを停止 |
使うタイミング
- Skill、Target、sync を視覚的な Web インターフェースで管理したい
- CLI フラグを覚えずに Skill を閲覧・インストールしたい
- 視覚的な検出結果レポート付きでセキュリティ監査を実行したい
- CLI に不慣れなチームメンバーとダッシュボードビューを共有したい
フラグ
| フラグ | デフォルト | 説明 |
|---|---|---|
-p, --project | Project mode で実行(.skillshare/ を使用) | |
-g, --global | グローバルモードで実行(~/.config/skillshare/ を使用) | |
--port <port> | 19420 | HTTP サーバーのポート |
--host <host> | 127.0.0.1 | バインドアドレス(Docker の場合は 0.0.0.0 を使用) |
-b, --base-path <path> | リバースプロキシ用のサブパス(例: /skillshare) | |
--no-open | false | ブラウザを自動的に開かない |
--app | false | 可能な場合、ダッシュボードをデスクトップ風の Chromium アプリウィンドウとして開く(start モードのみ) |
--clear-cache | フォアグラウンド形式の場合: キャッシュされた UI アセットをクリアして終了。start と組み合わせた場合: キャッシュをクリアしてからバックグラウンドで起動 |
カレントディレクトリに .skillshare/config.yaml が存在する場合、ダッシュボードは自動的に Project mode で起動します。グローバルモードを強制するには -g を使用してください。
例
# デフォルト: localhost:19420 でブラウザを開く(フォアグラウンド)
skillshare ui
# Project mode(.skillshare/ の Skill を管理)
skillshare ui -p
# カスタムポート
skillshare ui --port 8080
# Docker / リモートアクセス
skillshare ui --host 0.0.0.0 --no-open
# バックグラウンドで起動し、シェルに制御を戻す
skillshare ui start
# デスクトップ風のクロームレスアプリウィンドウとして起動
skillshare ui start --app
# バックグラウンドサーバーを停止(記憶されている host/port を使用)
skillshare ui stop
# キャッシュされた UI アセットをクリアしてからバックグラウンドで新規起動
skillshare ui start --clear-cache
ダッシュボードのページ
サイドバーはページをタスクごとにグループ化します: sync すること、管理しているもの、同期先、メンテナンス。名前の下の行にはモードとそのフォルダ(例: Global · ~/.config/skillshare)が表示されます。
一部のページは、対応が必要な場合にサイドバーに件数を表示します。この件数は、ダッシュボードのタブが開いている間、15 秒ごとに更新されます。
- Sync: sync によって適用される変更
- Git Sync: 未コミットのファイル、またはツリーがクリーンな場合はまだプッシュされていないコミット
- Audit: 直近のスキャンでブロックされた Skill と Agent(スキャンを実行した後に表示)
| ページ | 説明 |
|---|---|
| Dashboard | Skill、Agent、Extras、MCP サーバー、Plugin、Target の件数、および対応が必要な項目 |
| Sync | 書き込む前に、Target ごとにすべての変更をプレビュー。含める項目を選択(Skills、Agents、Extras、MCP)。Target 内で編集されたファイルは、Force がオンでない限り保持される。Target にのみ存在する項目は、ここから Source に collect し戻せる。各 sync は最初に Target フォルダをバックアップする |
| Git Sync | Source リポジトリのコミットとプッシュ、remote にまだないコミットのプッシュ、プルを実行。プルはリポジトリのスコープ(skills、agents、extras、または root)が保持するものを sync する。詳細は pull を参照。最初のプルが remote とマージできない場合、remote ブランチでローカルファイルを置き換える force pull を提案する |
| Hubs | Skills ページから移動。Browse は hub をフィルタしてそこからインストール、My hubs はインストール済み Skill からインデックスを組み立て、検証してエクスポートする。hub を参照 |
| Skills / Agents | インストール済みの項目、Updates タブ、Trash タブ。Skills にはさらに、Target のコンテキストに Skill が追加するトークン数を見積もる Analyze タブがある。Install は GitHub を検索するか、URL やパスからインストールする。+ New Skill は作成ウィザードを開く。disable-model-invocation: true を持つ Skill は、一覧・タイル・詳細ページで manual only タグが付く。これは list で M キーが切り替えるのと同じ状態。Skill エディタでは、Add field が各フロントマターフィールドの説明を表示する |
| Extras | Skill と一緒に sync される rules、commands、その他のフォルダ |
| MCP | サーバーごとに 1 行表示され、sync 先の Agent がトグルとして並ぶ。Add server は URL、コマンド、貼り付けたスニペット、またはファイルを受け付ける。Import はインストール済みの Agent が既に持っているものを読み込む。各サーバーのメニューには View what each Agent gets があり、未保存の編集を含む Agent ごとのネイティブ設定を表示する。コンフリクトは Import か Replace を選べ、バックアップは復元前にプレビューできる。デフォルト は mcp.targets と mcp.directTools を編集する。 |
| Plugins | Plugin ごとに 1 行表示され、その Agent がトグルとして並ぶ。行を展開すると、そのソースが対応する他の Agent も一覧され、いずれかにチェックを入れるとインストールのプレビューが表示される。行のメニューから sync、update、削除ができ、Skillshare がレビューしたローカルコピーを読み取り専用で閲覧する View files も開ける。Manage plugins across tools を参照 |
| Targets | ステータス付きの Target 一覧。各 Target のページで include/exclude フィルタを編集し、ローカルのみの Skill を Source に collect し戻せる |
| Projects | global mode のみ。global config が sync する project フォルダーで、projects と mcp.projects から一覧される。プロジェクトを追加 はフォルダー、その target、sync する内容を指定する。各 project には Skills と Agents タブがあり、フィルター、プレビュー、書き込まれるフォルダーを表示する。MCP タブでは、そのフォルダー内で global サーバーをオフにしたり、その project 独自のサーバーを追加したりできる。すでに project フォルダーを指している Target は変換できる |
| Audit | Skill と Agent のセキュリティスキャン。重大度別の検出結果を表示。Rules タブでは、カテゴリごとにすべてのルールを閲覧できる: ルールをオフにする、重大度を変更する、カテゴリ全体に重大度を適用する、スキャンプロファイル(default、strict、permissive)を選ぶ、カスタム audit-rules.yaml のエディタを開く、のいずれかができる |
| Settings | タブ分け: General(Source パス、sync モード、外観)、Backup(スナップショットと復元)、Log(操作履歴)、Health(doctor と同じチェック)、Extensions(sync 時のファイル変換)、Files(config.yaml、.skillignore、.agentignore の直接編集) |
/collect、/install、/search、/trash、/analyze、/backup、/log、/doctor などの古いリンクは、新しい場所にリダイレクトされます。
Files タブでは、エディタの横にパネルが表示されます。config.yaml の場合、カーソル位置のフィールドが何をするか、ファイルの構造、未保存の変更が表示されます。ignore ファイルの場合、現在のパターンが何を隠しているかが一覧表示されます。Cmd+S / Ctrl+S で保存します。Audit -> Rules -> Edit YAML のルールエディタには同じパネルに加え、貼り付けた行に対してルールの正規表現を実行する Test タブがあります。
テーマシステム
ダッシュボードは、サイドバーの Theme ボタンで切り替え可能な 2 つのビジュアルスタイルと 3 つのカラーモードに対応しています。
| 設定 | 選択肢 | デフォルト |
|---|---|---|
| Style | Clean(プロフェッショナル)、Playful(太いアウトライン、ハードシャドウ、手書き風の見出し) | Playful |
| Mode | Light、Dark、System(OS の設定に従う) | Light |
テーマの設定はセッションをまたいで localStorage に保持されます。
Project mode の違い
Project mode(-p)で実行すると、ダッシュボードは以下のように適応します。
- サイドバー に名前の下に
Project · <project path>が表示される - Git Sync ページ は非表示(Project の Skill は Project 自体の git を使用するため)
- Sync は
skillshare sync -pと同様、Agent の Target フォルダのみバックアップする - Backup タブ は Settings 内で非表示(代わりにバージョン管理を使用すること)
- Tracked Repos セクション は Dashboard から非表示(該当しないため)
- Settings -> Files は、グローバル版の代わりに
.skillshare/config.yamlと Project レベルの.skillignoreを表示する - Available targets は Project レベルの Target(例: プロジェクトルートからの相対パス
.claude/skills/)を一覧する - Install は Project 設定の
skills:エントリを自動的に整合させる
UI プレビュー






REST API
Web ダッシュボードは /api/ に REST API を公開しています。すべてのエンドポイントは JSON を返します。
| メソッド | パス | 説明 |
|---|---|---|
| GET | /api/overview | Skill/Target の件数、モード、バージョン、設定フォルダ(configDir) |
| GET | /api/skills | メタデータ付きですべての Skill を一覧 |
| GET | /api/skills/{name} | Skill の詳細 + SKILL.md の内容 |
| GET | /api/skills/templates | Skill 作成に利用可能なパターンとカテゴリを取得 |
| POST | /api/skills | 新しい Skill を作成(name、pattern、category、scaffoldDirs) |
| DELETE | /api/skills/{name} | Skill をアンインストール |
| GET | /api/targets | ステータス、include/exclude フィルタ、Target ごとの想定件数付きで Target を一覧 |
| POST | /api/targets | Target を追加 |
| DELETE | /api/targets/{name} | Target を削除 |
| POST | /api/sync | sync を実行(dryRun、force、kind に対応)。dryRun が指定されていない限り、まず Target をバックアップする |
| POST | /api/git/commit | Source リポジトリからプッシュせずにローカル git commit を作成 |
| GET | /api/git/status | まだプッシュされていないコミット(ahead)を含む、Source リポジトリの状態 |
| POST | /api/push | 変更をコミットしてからプッシュ。初回プッシュ時は upstream を設定する |
| POST | /api/pull | プルしてから、リポジトリのスコープが保持するものを sync する。最初のプルがマージできない場合、エラーコード merge_failed で失敗する。force: true で再試行すると、remote ブランチでローカルファイルを置き換える |
| GET | /api/diff | Source と Target 間の差分 |
| GET | /api/search?q= | GitHub で Skill を検索 |
| POST | /api/install | ソースから Skill をインストール |
| GET | /api/audit | すべての Skill をセキュリティ脅威についてスキャン |
| GET | /api/audit/rules | カスタム監査ルールの YAML を取得 |
| PUT | /api/audit/rules | カスタム監査ルールを保存(正規表現を検証) |
| POST | /api/audit/rules | スターター用の audit-rules.yaml を作成 |
| GET | /api/audit/rules/compiled | 組み込みルールとカスタムルールをマージした後のすべてのルール、および有効なプロファイル |
| POST | /api/audit/rules/toggle | ルールまたはパターン全体を有効化・無効化・再評価 |
| POST | /api/audit/rules/reset | カスタムルールを削除し、組み込みのデフォルトに戻す |
| PATCH | /api/audit/policy | blockThreshold、profile、またはその両方を設定 |
| GET | /api/log | オプションのフィルタ付きでログエントリを一覧 |
| GET | /api/config | 設定を YAML として取得 |
| PUT | /api/config | 設定 YAML を更新 |
| GET | /api/skillignore | .skillignore の内容 + ignore の統計を取得 |
| 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 } ボディでキャッシュされた UI アセットを先にクリア |
インプレースアップグレード
ダッシュボードが新しい CLI リリースが利用可能であることを検出すると、Update ダイアログと Doctor ページの Version カードの両方に Update now ボタンが表示されます。
- UI が
POST /api/upgradeを呼び出し、ホスト上でskillshare upgradeを実行します。 - 新しいバイナリが配置されると、UI が
POST /api/restartを呼び出してローカルサーバーを再起動します。 - ブラウザは
GET /api/healthをポーリングし、新しいサーバーの準備ができ次第、自動的にリロードします。
実行中のバイナリが開発ビルド(version == "dev")である場合、upgrade エンドポイントは devMode: true を返し、UI はディスク上の何も変更せずに再起動をシミュレートします。
自動リロードが完了しない場合、ダイアログは skillshare ui start を実行してバックグラウンドサーバーを復旧するよう案内します。
リバースプロキシ
共有サーバー(ホームラボ、社内ツールプラットフォームなど)でダッシュボードを実行し、リバースプロキシの背後に置く場合は、--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 を使わない場合、ダッシュボードは従来どおり動作します — localhost:19420 への直接アクセスに追加の設定は不要です。
MCP ページは、ブラウザが localhost または http://192.168.1.20:19420 のような IP アドレスでダッシュボードを開いている場合にのみ動作します。リバースプロキシを含め、ドメイン名経由の場合、MCP のリクエストは 403 を返します: DNS リバインディング攻撃は常にドメイン名を使うためです。リモートマシンで 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 ダッシュボードは Project レベルの Skill を完全にサポートしています。
cd my-project
skillshare ui -p
または .skillshare/config.yaml が存在する場合は、単に skillshare ui(自動検出)でも構いません。
ダッシュボードは .skillshare/config.yaml を読み書きし、Project ローカルの Target に sync し、インストール後にリモートの 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 は、対応する GitHub Release からランタイムにダウンロードされ、ディスクキャッシュ(~/.cache/skillshare/ui/<version>/)から配信される単一ページの React アプリケーションです。
skillshare ui
├── Go HTTP server (net/http)
│ ├── /api/* → REST API handlers
│ └── /* → Cached React SPA (runtime download)
└── Browser opens http://127.0.0.1:19420
関連項目
- status — CLI のステータスチェック
- sync — CLI の sync コマンド
- Project Setup — Project mode のセットアップガイド
- Docker Sandbox — Docker で UI を実行