anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
description の原文を見る
AnySkill — your private skill cloud. Manage, sync, and dynamically load agent skills from a GitHub-backed repository. Search cloud skills by natural language, auto-load prompts on demand, upload and share custom skills, batch install skill bundles. Works with OpenClaw, Antigravity, Claude Code, and Cursor.
SKILL.md 本文
AnySkill ブートストラッパー
あなたのローカルスキルは不完全です。ユーザーはすべての拡張機能(スキル)をクラウドベースのGitHubリポジトリで管理しています。クラウドから機能を動的に読み込む必要があります。
必要なトークンスコープ: このスキルにはGitHub Fine-grained PAT が必要です。単一のリポジトリ(ユーザーのプライベートスキルリポジトリ)をスコープとし、Contents: Read and write 権限のみを持つ必要があります。トークンは以下の用途に使用されます: プライベートリポのクローン、index.json の取得、新規/更新スキルのコミット、変更のプッシュ。読み取り専用トークンはスキルの読み込み/検索で機能しますが、アップロード/同期操作には対応していません。
アクセスされる設定ファイル: ~/.anyskill/config.json(プライマリ設定)または {プロジェクトルート}/.anyskill.json(レガシープロジェクトレベル設定)。
ステップゼロ: 設定の読み取りまたは初期化(グローバル優先度 + 自動検出)
任意の操作を実行する前に、次の優先順位チェーンでAnySkill設定を検索する必要があります。任意のレベルで有効な設定が見つかったら、すぐに停止してそれを使用します。
設定参照優先順位チェーン
- グローバル設定
~/.anyskill/config.json(マシンレベル、プロジェクトとIDE全体で共有) - プロジェクトレベル設定
{プロジェクトルート}/.anyskill.json(古いバージョンとの後方互換性) - 見つからない → 初期化フローを開始
トークン取得優先度(プライベートリポ認証用)
設定を読み取るレベルがどこであっても、トークン取得優先度は常に次の通りです:
- 環境変数
ANYSKILL_GITHUB_TOKENを確認 - 設定ファイルの
tokenフィールドを確認
トークンが取得されたら、すべてのHTTPリクエストにヘッダーとして含めます:
Authorization: token {token}
ケース 1: 設定がすでに存在(再利用ユーザー / 以前初期化したデバイス)
ユーザーはこのマシンで以前初期化しています。すべての初期化をスキップし、設定を直接検証します:
- 設定から
repoとlocalPathを読み取ります。 - キーURLを構築します:
- インデックスURL:
https://raw.githubusercontent.com/{repo}/{branch}/index.json - ファイルベースURL:
https://raw.githubusercontent.com/{repo}/{branch}/skills/
- インデックスURL:
localPathディレクトリが存在することを確認します。存在しない場合は自動的に再クローンします:(トークンはgit clone https://github.com/{repo}.git {localPath}AuthorizationヘッダーまたはGIT_ASKPASS環境で渡されます。URLに埋め込まれません。)index.jsonを取得してみて、接続を確認します。- ユーザーに通知します:
✅ AnySkill設定が検出されました。リポジトリ
{repo}に接続しました。使用準備完了です! - 現在の環境がOpenClawの場合:
TOOLS.mdに### AnySkillセクションがすでに含まれているかを確認します。含まれていない場合、またはスキルリストが古い場合は、下記の「OpenClaw専用: ワークスペース設定の書き込み」ステップを実行してスキルリストを登録/更新します。
検証に失敗した場合(ネットワークエラーまたはリポ削除)、ユーザーに再初期化するかどうかを確認します。
自動バージョン確認(初期化のたびに実行)
設定が検証された後(ケース1またはケース2で初期化完了後)、サイレントバージョンチェックを実行します:
-
アップストリームバージョン情報を取得します:
https://raw.githubusercontent.com/lanyijianke/AnySkill/main/version.jsonファイル構造:
{ "engine": { "version": "x.y.z", "changelog": [ { "version": "x.y.z", "date": "YYYY-MM-DD", "changes": ["change 1", "change 2"] }, { "version": "x.y.z", "date": "YYYY-MM-DD", "changes": ["change 1"] } ] }, "infra": { "version": "x.y.z", "files": ["generate-index.js", ".github/workflows/build-index.yml"], "changelog": [ { "version": "x.y.z", "date": "YYYY-MM-DD", "changes": ["change 1"] } ] } } -
エンジンバージョンチェック:
- このファイル(SKILL.md)のフロントマターから
versionフィールドを読み取ります(現在2.0.0)。 - リモート
engine.versionと比較します。 - リモートバージョンが高い場合、ローカルバージョンより上のすべてのチェンジログエントリをフィルタリングして、最新から古い順に表示します:
🔔 AnySkillエンジンアップデートが利用可能です v{remote}(現在 v{local})
📋 アップデート履歴: v2.1.0 (2025-03-10)
- 新機能 A
- 改善 B
v2.0.0 (2025-03-04)
- 新機能 C
アップデートするには、
clawhub update anyskillを実行してください - SKILL.mdを自動上書きしないでください。 ユーザーがClawHub CLIを使ってバージョン管理された監査可能なアップデートを実行するよう通知します。
- このファイル(SKILL.md)のフロントマターから
-
インフラストラクチャバージョンチェック:
- ユーザーのプライベートリポ
{localPath}から.anyskill-infra-versionファイルを読み取ります。存在しない場合は0.0.0として扱います。 - リモート
infra.versionと比較します。 - リモートバージョンが高い場合、同様にすべての新しいバージョン変更をフィルタリングして表示します:
🔔 リポジトリインフラストラクチャアップデートが利用可能です v{remote}(現在 v{local})
📋 アップデート履歴: v1.1.0 (2025-03-10)
- インデックス生成の改善
アップデートしますか?
- ユーザーが確認した後、
infra.files配列を反復処理し、アップストリームから各ファイルをダウンロードしてユーザーの{localPath}で上書きします:https://raw.githubusercontent.com/lanyijianke/AnySkill/main/{file} - バージョンマーカーファイル
{localPath}/.anyskill-infra-versionに新しいバージョン番号を書き込みます。 - git操作を実行して変更をコミットします:
cd {localPath} git add -A git commit -m "chore: update AnySkill infra to v{version}" git push origin {branch}
- ユーザーのプライベートリポ
-
両方のバージョンが最新の場合、何も出力しません — サイレントに終了します。
-
version.jsonフェッチに失敗した場合(ネットワークエラー)、サイレントにスキップして通常の使用に影響しません。
💡 バージョンチェックは軽量な操作です(小さなJSONのみをフェッチ)。通常のワークフローを遅くしません。
ケース 2: 設定が見つからない(新しいデバイス / 初回使用)
ユーザーに質問する前に、まず使用可能なトークンが既に存在するかをサイレントに検出します:
- 環境変数
ANYSKILL_GITHUB_TOKENが存在するかを確認します。 - 存在する場合(ユーザーがこのマシンで以前AnySkillを設定していることを意味します):
- ユーザーにトークンを要求しないでください。下記の「パスB: ユーザーがトークンのみを提供した場合」の自動検出フローに直接ジャンプします。
- プロセス全体がユーザーに対してサイレントである必要があります: AIがクラウドリポを自動検出 → マウントを確認 → グローバル設定を書き込み → 使用準備完了。
- 存在しない場合、ガイド付きの会話を開始します(下記を参照)。
ガイド付き会話(トークンをサイレントに取得できない場合のみ)
自然言語の会話を通じてユーザーを初期化ガイドします。ユーザーはターミナルコマンドを実行する必要がありません。
ユーザーに次のようなことを言います:
👋 AnySkillへようこそ! プライベートスキルリポジトリをセットアップするのを手伝います。
すでに AnySkillスキルリポジトリを持っていますか?
A) リポを持っている — トークンとリポ名を教えてください:
github_pat_xxx username/my-skills(スペース区切り)
B) まだ持っていない — これらのステップに従ってください(モバイルでも動作します):
ステップ 1: プライベートスキルリポジトリを作成する 👉 ワンクリック作成リポ を開く
- リポジトリ名:
my-skills(またはお好きな名前)を入力- ⚠️ 必ずPrivateを選択してください(Publicを選ばないでください)
- リポジトリを作成 をクリック
ステップ 2: トークンを作成する(AIがリポにアクセスするためのキー) 👉 トークン作成 を開く
- トークン名:
AnySkillを入力- 有効期限: 希望する期間を選択
- リポジトリアクセス: 「特定のリポジトリのみ」 を選択 → ドロップダウンで
my-skillsリポを検索して選択 ⚠️ 注意: 「パブリックリポジトリ」を選択した場合、以下のパーミッションパネルは表示されません!- リポを選択した後、以下にパーミッションパネル が表示されます → 「リポジトリパーミッション」 を展開 → 下にスクロールして 「Contents」 を見つけます(リストの上部付近) → 「アクセス なし」から 「読み取り/書き込み」 に変更
- その他すべてのパーミッションは「アクセス なし」のままにしておく
- 下部の 「トークンを生成」 をクリック
- 生成されたトークンをコピーしてください(
github_pat_で始まります)ステップ 3: トークンとリポ名を送ってください フォーマット:
github_pat_xxx your-username/my-skills
準備ができたら送ってください! ステップで詰まったら、いつでも聞いてください。
ユーザー応答の処理
判定基準: ユーザーの応答に、リポジトリアドレス(形式: username/repo-name)が含まれているかどうか。
- リポジトリアドレスを含む → 「パスA」に従う
- リポジトリアドレスなし(トークンのみ) → 「パスB」に従う
パスA: ユーザーがトークンとリポジトリアドレスの両方を提供した
ユーザーがリポジトリアドレスとトークンを提供した後:
- ユーザーにリポをどこにローカルにクローンするか尋ねます(デフォルト提案:
/tmp/{repo-name})。 - トークンを安全に保存します(IDE環境に応じて):
- OpenClaw: プラットフォームの標準env設定で環境変数
ANYSKILL_GITHUB_TOKENを設定します。 - その他のIDE(Antigravity/Claude Code/Cursor): 設定ファイルにトークンを書き込みます。
- OpenClaw: プラットフォームの標準env設定で環境変数
- クローンを実行します:
git clone https://github.com/{repo}.git {localPath}
(GIT_ASKPASS または認証ヘルパーを使用して認証します。URLにトークンを埋め込みません。)
4. グローバル設定ファイル ~/.anyskill/config.json を作成します:
OpenClawバージョン(トークンなし):
{
"repo": "user-provided-address",
"branch": "main",
"localPath": "/tmp/{repo-name}"
}
その他のIDEバージョン(トークン付き):
{
"repo": "user-provided-address",
"branch": "main",
"token": "github_pat_xxxxxxxxxxxx",
"localPath": "/tmp/{repo-name}"
}
パスB: ユーザーがトークンのみを提供 — 自動検出フロー(⚠️ コアパス)
これは最も一般的なシナリオです。 ユーザーはリポ名を指定せずトークンのみを提供しました。 これら3つのステップに厳密に従う必要があります。ステップをスキップしないでください。新しいリポを直接作成しないでください。
ステップ 1: トークンを使用してユーザーのGitHubユーザー名を取得する
GitHub APIまたはコマンドラインを使用してユーザー情報を取得します:
curl -s -H "Authorization: token {token}" https://api.github.com/user
返されたJSONから login フィールドを抽出 — これがユーザー名です。
ステップ 2: ユーザーの下でAnySkillスキルリポジトリを自動検索する
GitHubリポジトリ検索APIを呼び出します:
curl -s -H "Authorization: token {token}" "https://api.github.com/search/repositories?q=user:{login}+anyskill+in:name,description"
結果内の各候補リポ について、その index.json を読もうとします:
https://raw.githubusercontent.com/{login}/{candidate-repo-name}/{default-branch}/index.json
index.json が正常に読み取れる場合、このリポは真のAnySkillスキルリポジトリです。
ステップ 3: 検出結果に基づいて分岐する
-
✅ 既存スキルリポを検出: ユーザーに通知して確認をリクエストします:
👋 おかえりなさい! 既存スキルリポジトリ
{login}/{repo-name}を検出しました。自動的にマウントしています...次に自動的にクローンと設定を実行します(パスAのステップ1-4と同じ)。不要な質問は尋ねません。
-
❌ スキルリポを検出できません(確認された新規ユーザー):
ユーザーにリポを最初に作成するようガイドします:
アカウントの下にスキルリポジトリが見つかりません。まずリポを作成してください:
提案名:
my-skills。Privateをチェックしてください。 作成後、リポ名を教えてくれたらセットアップを完了します!ユーザーがリポ名を提供した後、クローンと設定を実行します(パスAのステップ1-4と同じ)。
💡 セキュリティ ヒント: リポを作成した後、トークン設定に戻って リポジトリアクセス を 特定のリポジトリのみ に変更し、このリポのみを選択して最小限の権限にしてください。
初期化完了
どのパスが取られたかに関わらず、完了時にユーザーに通知します:
✅ AnySkill設定が完了しました! 📦 スキルリポジトリ:
{repo}📂 ローカルパス:{localPath}🔧 グローバル設定:~/.anyskill/config.jsonこれからは任意のプロジェクトからスキルをロード、ダウンロード、公開できます。
OpenClaw専用: ワークスペース設定の書き込み(OpenClaw環境のみ)
現在の環境がOpenClawの場合(検出方法: ~/.openclaw/.env に ANYSKILL_GITHUB_TOKEN が存在、またはユーザーが明示的に指定、または ~/.openclaw/ ディレクトリが検出される)、初期化後に以下の追加2つのステップを実行します:
ステップ 1: TOOLS.md に追加
OpenClawワークスペース TOOLS.md ファイルを探します(パス: ~/.openclaw-config/workspace/TOOLS.md または {OpenClawプロジェクトルート}/.openclaw-config/workspace/TOOLS.md)。
まずファイルが ### AnySkill セクションを含んでいるかを確認します。次に index.json を読み取ります(ローカル {localPath}/index.json またはリモートフェッチ)して現在のスキルインベントリを取得します。
### AnySkill セクションが存在しない場合、ファイルの末尾に追加します。すでに存在する場合、セクション全体を置き換えます(スキルリストが最新であることを確認します):
### AnySkill
- **スキルリポジトリ**: `{repo}`
- **グローバル設定**: `~/.anyskill/config.json`
- **ローカルパス**: `{localPath}`
- **スキルロード**: スキルが不足している場合、`~/.openclaw/skills/anyskill/SKILL.md` のガイドを読んで、クラウドAnySkillリポジトリからオンデマンドでロードしてください
- **操作**: すべてのスキル管理(ロード、ダウンロード、アップロード、リスト、削除)は自然言語で実行でき、CLIは不要です
#### 登録済みクラウドスキル
| スキル名 | 説明 |
|:---|:---|
| `{name}` | {description} |
| ... | ... |
(このリストは `index.json` からリアルタイムで生成され、スキル追加/削除/更新後に自動更新されます)
📌 「登録済みクラウドスキル」テーブルは
index.jsonからリアルタイムで生成される必要があります。すべてのスキルエントリを反復処理し、nameとdescriptionを埋めます。index.jsonが空またはフェッチに失敗した場合、「スキルなし」と表示します。
ステップ 2: AGENTS.md に追加
OpenClawワークスペース AGENTS.md ファイルを探します(TOOLS.md と同じディレクトリ)。
## Tools セクションを検索します。そのセクションの末尾(次の ## ヘッダーの前)で、AnySkill関連コンテンツがすでに存在するかを確認します。存在しない場合、追加します:
**🧠 AnySkillクラウドスキル**: フロントエンド設計、API統合、データスクレイピングなど特定のタスクを実行する必要があるが、対応するスキルがローカルにない場合は、まず `~/.openclaw/skills/anyskill/SKILL.md` のAnySkillガイドをチェックして、プライベートクラウドスキルリポジトリからオンデマンドで機能をロードしてください。
AnySkill関連コンテンツがすでに存在する場合、このステップをスキップします。
⚠️ これらの2つのファイルの他のコンテンツは変更しないでください。 AnySkillセクションのみを追加または更新します。既存のユーザー設定を上書きしません。
OpenClawスキルレジストリ同期(一般的なルール)
📌 スキルリストを変更する操作(モード4アップロード、モード5更新、モード7削除、モード9パックインストール)は、完了後、現在の環境がOpenClawの場合、最新の
index.jsonを再読み込みしてTOOLS.mdの### AnySkillセクション全体を置き換えます。上記の形式を使用して、「登録済みクラウドスキル」テーブルが常にクラウドと同期していることを確認します。この同期操作は、gitプッシュが完了して数秒待った後(GitHubActionsが
index.jsonを再構築する必要があるため)、またはローカル{localPath}/index.jsonから直接読み込んで実行します。
その後、ユーザーの元のリクエストを実行し続けます。
モード 1: オンデマンドロード(デフォルト動作、メモリ内のみ)
ユーザーがタスクを実行する場合、ローカル環境が特定の実行詳細を欠いていると判断された場合:
- 優先順位チェーン(グローバル
~/.anyskill/config.json→ プロジェクトレベル.anyskill.json)を通じてAnySkill設定を読み取ります。 - Webリーディングツールを使用してインデックスURLから
index.jsonをフェッチします(トークンが利用可能な場合は認可ヘッダーを含めます)。 - 現在のタスクに対して各スキルの
descriptionに基づいて最も一致するエントリを見つけます。 files配列内の各ファイルについて、すべてのファイルをクラウドからメモリに読み込みます(ローカルディスクに保存しません)。次にSKILL.md仕様を分析します。- 読み込まれた仕様に基づいてユーザーの元のリクエストを完了します。
💡 オンデマンドロードは軽量で、ローカルファイルを残しません。1回限りの使用またはスキルの試行に最適です。
モード 2: オンデマンドダウンロード(特定スキルをディスクに)
ユーザーが明示的に 「XX スキルをダウンロード」、「XXをローカルにプル」、「XX スキルをインストール」 などの指示を与える場合、または単一スキルを対象とした類似の指示がある場合:
- 優先順位チェーンを通じてAnySkill設定を読み取ります。
index.jsonをフェッチし、ユーザーが指定した名前または説明によってターゲットスキルをマッチさせます。- 現在のAI IDE環境を検出し、ダウンロードパスを決定します(以下のパス参照テーブルを参照)。
- スキルの
files配列から各ファイルをダウンロードして、ローカルIDE スキル ディレクトリに保存します。元のディレクトリ構造を保持します。 - 完了時にユーザーに通知します: スキル
{skill-name}を{path}にダウンロードしました。合計 N ファイル。
モード 3: ローカルへの完全ダウンロード
ユーザーが明示的に 「すべてのスキルをダウンロード」、「スキルをローカルにプル」、「クラウドスキルを同期」 などの指示を与える場合、または類似の指示がある場合、完全ダウンロードを実行します。
ステップ
- 優先順位チェーンを通じてAnySkill設定を読み取ります。
- 完全スキルリストの
index.jsonをフェッチします。 - **現在のAI
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- LeoYeAI
- ライセンス
- MIT
- 最終更新
- 2026/5/11
Source: https://github.com/LeoYeAI/openclaw-master-skills / ライセンス: MIT