Skip to main content
Skills は、ツールをいつどのように使用するかをエージェントに教える Markdown 形式の指示ファイルです。各 Skills は、YAML フロントマターと Markdown 本文を持つ SKILL.md ファイルを含むディレクトリに配置されます。OpenClaw はバンドルされた Skills とローカルのオーバーライドを読み込み、環境、設定、バイナリの有無に基づいて読み込み時にフィルタリングします。

Skills の作成

カスタム Skills をゼロから作成してテストします。

Skills ワークショップ

エージェントが作成した Skills の提案をレビューして承認します。

Skills の設定

skills.* の完全な設定スキーマとエージェントの許可リストです。

ClawHub

コミュニティの Skills を参照してインストールします。

読み込み順序

OpenClaw は次のソースから、優先順位が高い順に読み込みます。同じ Skills 名が複数の場所に存在する場合、最も優先順位の高いソースが使用されます。 Skills のルートでは、グループ化されたレイアウトを使用できます。設定されたルート配下の任意の場所(最大 6 階層)に SKILL.md がある場合、OpenClaw はその Skills を検出します。
フォルダパスは整理のためだけに使用されます。Skills の名前とスラッシュコマンドは、name フロントマターフィールドから取得されます(name がない場合はディレクトリ名)。エージェントの許可リスト(後述)も、この name に対して照合されます。
Codex CLI ネイティブの $CODEX_HOME/skills ディレクトリは、OpenClaw の Skills ルートではありません。これらの Skills を一覧化するには openclaw migrate plan codex を使用し、OpenClaw ワークスペースへコピーするには openclaw migrate codex を使用してください。

Node でホストされる Skills

接続されたヘッドレス Node は、アクティブな OpenClaw Skills ディレクトリ(デフォルトでは ~/.openclaw/skills。プロファイル環境のオーバーライドが適用されます)にインストールされた Skills を公開できます。Node が接続されている間は通常のエージェント Skills リストに表示され、切断されると表示されなくなります。名前が競合した場合、ローカルまたは Gateway の Skills はその名前を維持し、Node の Skills には決定的な Node プレフィックス付きの名前が割り当てられます。Node ホスト型 v1 では、ディレクトリ名が Skills の name フロントマターフィールドと一致している必要があります。 Skills エントリには Node ロケーターが含まれます。そのファイル、相対参照、バイナリは Node 上に存在するため、exec host=node node=<node-id> を使用して読み込み、実行してください。Skills ファイルを変更した後は、Node ホストを再起動してください。ペアリングと無効化スイッチについては、Nodeを参照してください。

エージェント単位と共有 Skills

マルチエージェント構成では、各エージェントが独自のワークスペースを持ちます。必要な可視性に対応するパスを使用してください。

エージェントの許可リスト

Skills の場所(優先順位)と Skills の可視性(どのエージェントが使用できるか)は、別々に制御されます。許可リストを使用すると、読み込み元に関係なく、エージェントに表示される Skills を制限できます。
  • デフォルトですべての Skills を制限なしにするには、agents.defaults.skills を省略します。
  • agents.defaults.skills を継承するには、agents.entries.*.skills を省略します。
  • そのエージェントに Skills を一切公開しない場合は、agents.entries.*.skills: [] を設定します。
  • 空でない agents.entries.*.skills リストが最終的なセットになります。デフォルトとはマージされません。
  • 有効な許可リストは、プロンプトの構築、スラッシュコマンドの検出、サンドボックスの同期、Skills のスナップショット全体に適用されます。
  • これはホストシェルの認可境界ではありません。同じエージェントが exec を使用できる場合は、サンドボックス化、OS ユーザー分離、exec の拒否リスト / 許可リスト、リソースごとの認証情報を使用して、そのシェルを別途制限してください。

Plugin と Skills

Plugin は、openclaw.plugin.jsonskills ディレクトリ(Plugin ルートからの相対パス)を列挙することで、独自の Skills を同梱できます。Plugin の Skills は、その Plugin が有効な場合に読み込まれます。たとえば、ブラウザー Plugin には、複数ステップのブラウザー制御用の browser-automation Skills が同梱されています。 Plugin の Skills ディレクトリは skills.load.extraDirs と同じ低優先順位レベルでマージされるため、同じ名前のバンドル済み、管理対象、エージェント、またはワークスペースの Skills があれば、それらが優先されます。Plugin の Skills 自体の適格性は、他の Skills と同様に、フロントマター内の metadata.openclaw.requires で制御します。 Plugin システム全体については、Pluginツールを参照してください。

Skills ワークショップ

Skills ワークショップは、エージェントとアクティブな Skills ファイルの間にある提案キューです。エージェントが再利用可能な作業を検出すると、SKILL.md に直接書き込む代わりに提案の下書きを作成します。変更が行われる前に、内容をレビューして承認します。
完全なライフサイクル、CLI リファレンス、設定については、Skills ワークショップを参照してください。

ClawHub からのインストール

ClawHubは公開 Skills レジストリです。インストールと更新には openclaw skills コマンドを使用し、公開と同期には clawhub CLI を使用します。
openclaw skills install は、デフォルトでアクティブなワークスペースの skills/ ディレクトリにインストールします。--global を追加すると共有の ~/.openclaw/skills ディレクトリにインストールされ、エージェントの許可リストで制限されていない限り、すべてのローカルエージェントから表示できます。Git およびローカルインストールでは、ソースルートに SKILL.md が必要です。スラッグは、有効な場合は SKILL.md フロントマターの name から取得され、それ以外の場合はディレクトリ名またはリポジトリ名が使用されます。上書きするには --as <slug> を使用します。openclaw skills update が追跡するのは ClawHub からのインストールだけです。Git またはローカルソースを更新するには再インストールしてください。
openclaw skills verify @owner/<slug> は、Skills の clawhub.skill.verify.v1 信頼エンベロープを ClawHub に問い合わせます。インストール済みの ClawHub Skills は、.clawhub/origin.json に記録されたバージョンとレジストリに対して検証されます。既存のインストール済み Skills または一意に特定できる Skills では、所有者なしのスラッグも引き続き受け付けられますが、所有者修飾付きの参照を使うことで公開者の曖昧さを回避できます。ClawHub の Skills ページには、インストール前に最新のセキュリティスキャン状態が表示され、VirusTotal、ClawScan、静的解析の詳細ページも用意されています。ClawHub が検証失敗と判定した場合、コマンドは 0 以外で終了します。公開者は、ClawHub ダッシュボードまたは clawhub skill rescan @owner/<slug> を通じて誤検知に対処できます。
ClawHub 以外の配布を必要とする Gateway クライアントは、skills.upload.beginskills.upload.chunkskills.upload.commit を使用して ZIP 形式の Skills アーカイブをステージングし、skills.install({ source: "upload", ... }) でインストールできます。この経路はデフォルトで無効になっており、openclaw.jsonskills.install.allowUploadedArchives: true が必要です。通常の ClawHub インストールでは、この設定は不要です。

セキュリティ

サードパーティ製の Skills は信頼できないコードとして扱ってください。有効にする前に内容を確認してください。信頼できない入力やリスクの高いツールでは、サンドボックス内での実行を推奨します。エージェント側の制御については、サンドボックス化を参照してください。
ワークスペース、プロジェクトエージェント、追加ディレクトリでの Skills 検出では、skills.load.allowSymlinkTargets が対象ルートを明示的に信頼している場合を除き、解決後の realpath が設定されたルート内に収まる Skills ルートのみを受け付けます。skills.workshop.allowSymlinkTargetWrites が有効な場合に限り、Skills ワークショップはこれらの信頼された対象を通じて書き込みを行います。管理対象の ~/.openclaw/skills と個人用の ~/.agents/skills にはシンボリックリンクされた Skills フォルダを含められますが、すべての SKILL.md の realpath は、解決後の Skills ディレクトリ内に収まっている必要があります。
Skills のインストールを続行する前に信頼済みのローカルポリシーコマンドを実行するには、security.installPolicy を設定します。このポリシーはメタデータとステージング済みのソースパスを受け取り、ClawHub、アップロード、Git、ローカル、更新、依存関係インストーラーの各経路に適用されます。コマンドが有効な判定を返せない場合は、拒否側に倒れます。
skills.entries.*.envskills.entries.*.apiKey は、そのエージェントターンの間だけシークレットをホストプロセスに注入します。サンドボックスには注入されません。シークレットをプロンプトやログに含めないでください。
より広範な脅威モデルとセキュリティチェックリストについては、セキュリティを参照してください。

SKILL.md の形式

すべての Skills では、フロントマターに少なくとも namedescription が必要です。
OpenClaw は AgentSkills 仕様に従います。フロントマターは最初に YAML として解析され、失敗した場合は単一行専用のパーサーにフォールバックします。ネストされた metadata ブロック(複数行の YAML マッピングを含む)は JSON 文字列に平坦化され、JSON5 として再解析されるため、ゲーティングに示すブロック形式を使用できます。Skills フォルダのパスを参照するには、本文で {baseDir} を使用してください。

任意のフロントマターキー

string
macOS の Skills UI で「Website」として表示される URL です。metadata.openclaw.homepage でもサポートされています。
boolean
デフォルト:"true"
true の場合、スキルはユーザーが呼び出せるスラッシュコマンドとして公開されます。
boolean
デフォルト:"false"
true の場合、OpenClaw はスキルの指示をエージェントの通常の プロンプトに含めません。user-invocabletrue の場合、スキルは引き続きスラッシュコマンドとして使用できます。
"tool"
tool に設定すると、スラッシュコマンドはモデルを経由せず、 登録済みツールに直接ディスパッチされます。
string
command-dispatch: tool が設定されている場合に呼び出すツール名。
"raw"
デフォルト:"raw"
ツールへのディスパッチでは、コアによる解析を行わず、生の引数文字列を ツールへ転送します。ツールは { command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" } を受け取ります。

ゲーティング

OpenClaw はロード時に metadata.openclaw(フロントマターに埋め込まれた JSON5 オブジェクト。上記の解析に関する注記を参照)を使用してスキルをフィルタリングします。 metadata.openclaw ブロックがないスキルは、明示的に無効化されていない限り常に対象となります。
boolean
true の場合、スキルを常に含め、他のすべてのゲートをスキップします。
string
macOS の Skills UI に表示される省略可能な絵文字。
string
macOS の Skills UI で「Website」として表示される省略可能な URL。
("darwin" | "linux" | "win32")[]
プラットフォームフィルター。設定した場合、一覧にある OS でのみスキルが対象となります。
string[]
各バイナリが PATH に存在する必要があります。
string[]
少なくとも 1 つのバイナリが PATH に存在する必要があります。
string[]
各環境変数がプロセスに存在するか、設定を通じて提供されている必要があります。
string[]
openclaw.json パスが truthy である必要があります。
string
skills.entries.<name>.apiKey に関連付けられた環境変数名。
object[]
macOS の Skills UI で使用される省略可能なインストーラー仕様(brew / node / go / uv / download)。
metadata.openclaw がない場合、従来の metadata.clawdbot ブロックも引き続き 受け付けられるため、以前にインストールされたスキルでも依存関係ゲートと インストーラーのヒントが維持されます。新しいスキルでは metadata.openclaw を使用してください。

インストーラー仕様

インストーラー仕様は、依存関係のインストール方法を macOS の Skills UI に指示します。
  • 複数のインストーラーが一覧にある場合、Gateway は優先する オプションを 1 つ選択します(利用可能なら brew、それ以外は node)。
  • すべてのインストーラーが download の場合、OpenClaw は各エントリを一覧表示し、 利用可能なすべてのアーティファクトを確認できるようにします。
  • 仕様には、プラットフォームでフィルタリングするための os: ["darwin"|"linux"|"win32"] を含めることができます。
  • Node によるインストールでは、openclaw.jsonskills.install.nodeManager が使用されます (デフォルト: npm、選択肢: npm / pnpm / yarn / bun)。これはスキルの インストールにのみ影響し、Gateway ランタイムには引き続き Node を使用する必要があります。
  • Gateway のインストーラー優先順位: Homebrew → uv → 設定済みの node マネージャー → go → download。
  • Homebrew: OpenClaw は Homebrew を自動インストールせず、brew の formula をシステムパッケージのコマンドに変換することもありません。 brew がない Linux コンテナでは、brew 専用インストーラーは非表示になります。カスタムイメージを使用するか、 依存関係を手動でインストールしてください。
  • Go: OpenClaw でスキルを自動インストールするには Go 1.21 以降が必要です。 go がなく Homebrew が利用可能な場合、OpenClaw はまず Homebrew から Go をインストールします。 Homebrew のない Linux では、更新後の golang-go 候補が最低バージョンを満たしていれば、代わりに root として、またはパスワード不要の sudo を通じて apt-get を使用できます。依存関係に対する実際の go install は、 設定済みの GOBIN ではなく、常に OpenClaw が管理する専用の bin ディレクトリ (新規インストールでは Homebrew の bin、それ以外では ~/.local/bin)を対象とします。 独自の GOBINGOPATHGOTOOLCHAIN 環境変数は読み取られますが、上書きされることはありません。
  • ダウンロード: url(必須)、archivetar.gz | tar.bz2 | zip)、 extract(デフォルト: アーカイブ検出時は auto)、stripComponentstargetDir(デフォルト: ~/.openclaw/tools/<skillKey>)。
requires.bins はスキルのロード時にホスト上で確認されます。エージェントが サンドボックスで実行される場合、バイナリはコンテナ内にも存在する必要があります。 agents.defaults.sandbox.docker.setupCommand またはカスタム イメージを使用してインストールしてください。setupCommand はコンテナ作成後に 1 回実行され、 ネットワークへの送信、書き込み可能なルート FS、およびサンドボックス内の root ユーザーが必要です。

設定のオーバーライド

~/.openclaw/openclaw.jsonskills.entries で、バンドルまたは管理対象のスキルを 切り替えて設定します。
boolean
false を指定すると、バンドル済みまたはインストール済みでもスキルが無効になります。バンドルされた coding-agent スキルはオプトインです。skills.entries.coding-agent.enabled: true を設定し、 claudecodexopencode、またはその他の対応 CLI のいずれかが インストールされ、認証済みであることを確認してください。
string | { source, provider, id }
metadata.openclaw.primaryEnv を宣言するスキル向けの便利なフィールドです。 プレーンテキスト文字列または SecretRef オブジェクトに対応します。
Record<string, string>
エージェント実行用に注入される環境変数。変数がプロセスにまだ設定されていない場合にのみ 注入されます。
object
スキルごとのカスタム設定フィールドを格納する省略可能なオブジェクト。
string[]
バンドル済みスキル専用の省略可能な許可リスト。設定すると、リスト内のバンドル済みスキルのみが 対象となります。管理対象スキルとワークスペーススキルには影響しません。
デフォルトでは、設定キーはスキル名と一致します。スキルで metadata.openclaw.skillKey が定義されている場合は、代わりに skills.entries 配下でそのキーを使用してください。 ハイフンを含む名前は引用符で囲んでください。JSON5 では引用符付きキーを使用できます。

環境変数の注入

エージェント実行の開始時に、OpenClaw は次の処理を行います。
1

スキルのメタデータを読み取る

OpenClaw は、ゲーティングルール、許可リスト、設定のオーバーライドを適用し、 エージェントに対する有効なスキル一覧を解決します。
2

環境変数と API キーを注入する

実行中は、skills.entries.<key>.envskills.entries.<key>.apiKeyprocess.env に適用されます。
3

システムプロンプトを構築する

対象となるスキルはコンパクトな XML ブロックにコンパイルされ、 システムプロンプトに注入されます。
4

環境を復元する

実行終了後、元の環境が復元されます。
環境変数の注入範囲はホスト上のエージェント実行であり、サンドボックスではありません。 サンドボックス内では、envapiKey は効果がありません。 サンドボックス化された実行にシークレットを渡す方法については、 Skills の設定を参照してください。
バンドルされた claude-cli バックエンドの場合、OpenClaw は同じ対象スキルの スナップショットを一時的な Claude Code Plugin として実体化し、 --plugin-dir を通じて渡します。他の CLI バックエンドはプロンプトカタログのみを使用します。

スナップショットと更新

OpenClaw はセッション開始時に対象スキルのスナップショットを作成し、 セッション内の以降のすべてのターンでその一覧を再利用します。スキルまたは設定への変更は、 次の新しいセッションで有効になります。 セッション途中でスキルが更新されるのは、次の 2 つの場合です。
  • スキルウォッチャーが SKILL.md の変更を検出した場合。
  • 新しい対象リモートノードが接続した場合。
更新された一覧は、次のエージェントターンで使用されます。有効なエージェントの 許可リストが変更された場合、OpenClaw は表示されるスキルとの整合性を保つために スナップショットを更新します。
デフォルトでは、OpenClaw はスキルフォルダーを監視し、 SKILL.md ファイルが変更されるとスナップショットを更新します。skills.load で設定します。
ウォッチャーイベントでは、組み込みの 250 ms デバウンスが使用されます。スキルの ルートシンボリックリンクが設定済みルートの外部を指す、意図的なシンボリックリンク構成では、 allowSymlinkTargets を使用してください(例: <workspace>/skills/manager -> ~/Projects/manager/skills)。 Skill Workshop が信頼済みのシンボリックリンクパスを通じても 提案を適用する必要がある場合にのみ、skills.workshop.allowSymlinkTargetWrites を有効にしてください。
Gateway が Linux で実行されていても、system.run が許可された macOS ノードが接続されている場合、必要なバイナリがそのノードに存在すれば、 OpenClaw は macOS 専用スキルを対象として扱うことができます。エージェントは、 host=node を指定した exec ツールを介してこれらのスキルを実行する必要があります。オフラインのノードによって、リモート専用スキルが表示されることはありません。ノードが bin プローブに応答しなくなると、OpenClaw はキャッシュされた bin の一致情報を消去します。

トークンへの影響

スキルが対象となる場合、OpenClaw はコンパクトな XML ブロックをシステム プロンプトに注入します。コストは決定論的で、スキルごとに線形に増加します。
  • 基本オーバーヘッド(1 つ以上のスキルが対象の場合のみ): 導入文と <available_skills> ラッパーからなる固定ブロック。
  • スキルごと: 約 97 文字 + namedescriptionlocation フィールドの長さ。
  • XML エスケープによって & < > " ' がエンティティに展開され、出現するたびに数文字追加されます。
  • 約 4 文字/トークンとして、フィールド長を含める前の 97 文字はスキルごとに約 24 トークンです。
レンダリングされたブロックが設定済みのプロンプト予算 (skills.limits.maxSkillsPromptChars)を超える場合、OpenClaw はまず、説明なしのコンパクト形式に 収まる範囲で、できるだけ多くのスキル識別情報(名前、場所、バージョン)を保持します。 次に、残りの予算を短縮された説明に使用します。説明用の予算が 残っていない場合、説明は省略されます。コンパクト形式またはリストの 切り詰めが必要な場合、プロンプトには openclaw skills check を示す注記が含まれます。 プロンプトのオーバーヘッドを最小限に抑えるため、説明は短く、内容が明確なものにしてください。

関連項目

Skillsの作成

カスタムスキルを作成するためのステップバイステップガイドです。

スキルワークショップ

エージェントが下書きしたスキルの提案キューです。

Skillsの設定

完全な skills.* 設定スキーマとエージェントの許可リストです。

スラッシュコマンド

スキルのスラッシュコマンドが登録され、ルーティングされる仕組みです。

ClawHub

公開レジストリでスキルを閲覧、公開できます。

プラグイン

プラグインは、説明対象のツールとともにスキルを配布できます。