水曜日, 8月 27, 2025
水曜日, 8月 27, 2025
- Advertisment -
ホームニューステックニュースClaude Codeの新しいプラグイン機能を先行体験する

Claude Codeの新しいプラグイン機能を先行体験する


~/.claude を眺めていたらいつの間にか plugins ディレクトリが生えていたのでよく観察したところ、プラグイン機能の実装が進んでいるようです。

すでに触れるようになっているので、概要や手順を紹介します。

概要

Claude Codeプラグインでは、gitリポジトリを介してスラッシュコマンドサブエージェントフック を配ることができます。

リポジトリを登録しておくと、Claude Code起動時に pull して最新の状態を同期して読み込んでくれる仕組みです。

現在もMCPサーバーのPromptとして外部からスラッシュコマンドを読み込めますが、サブエージェントやフックも読み込めるようになるのが新しいポイントですね。

プラグインの構造

Claude Code プラグインは次の構造になっています。プラグインレジストリ、プラグインリポジトリなどの呼び名は、説明の便宜上ぼくが勝手に命名しただけなので注意してください。

  • ~/.claude/plugins/

    • config.json: プラグインレジストリ
    • repos/[owner]/[repo]/: プラグインリポジトリ

      • [plugin]/: プラグイン

プラグインレジストリ

読み込む対象のプラグインリポジトリを登録するファイルです。ここに登録したリポジトリを走査してプラグインを読み込みます。

プラグインリポジトリ

プラグインを管理するgitリポジトリです。複数のプラグインを含むことができます。このリポジトリのpush, pullを通してプラグインを同期します。

プラグイン

プラグイン本体です。スラッシュコマンド、サブエージェント、フックを持ちます。

使い方

プラグインリポジトリの作成

まず適当なgitリポジトリを作成します。ここでは cc-demo-plugins という名前にします。

この時点ではリポジトリの中身は空です。

プラグインの作成

リポジトリの中には複数のプラグインを配置できます。ここでは例として translation というプラグインを作成しましょう。

まずリポジトリの中に translation ディレクトリを作り、その直下に plugin.json を作成します。

plugin.json の中身はこれだけでよいです。

plugin.json

{
  "name": "translation"
}

プラグインにコマンドを追加する

プラグインの実装として、入力を英語に変換する to-english コマンドを追加してみます。コマンドの定義方法は既存のスラッシュコマンドと同様で、プラグイン直下の commands ディレクトリに配置します。

to-english.md

---
description: Translate the text to English
argument-hint: [text]
---

Translate the following text to English:

$ARGUMENTS

ここではコマンドを追加しましたが、サブエージェントフックも同様に agents, hooks ディレクトリで定義できます。

プラグインリポジトリをGitHubに乗せる

Claude Codeは自動的にプラグインリポジトリに対して git pull を実行するため、リモートリポジトリの存在を前提とします。

そのためプラグインリポジトリをGitHubに乗せます。git pull ができればよいので、自分だけで使う分にはプライベートリポジトリで問題ないです。

ここでは yukukotani/cc-demo-plugins におきました。

https://github.com/yukukotani/cc-demo-plugins

プラグインリポジトリの配置

プラグインリポジトリを Claude Code 所定の ~/.claude/plugins/repos に配置します。ここを直接いじって uncommited change があると git pull できなくて読み込み失敗したりするので、ここではさっきまでいじっていたローカルリポジトリを持っていくというよりは、別でcloneしてしまうのがよいでしょう。

git clone https://github.com/yukukotani/cc-demo-plugins ~/.claude/plugins/repos/yukukotani/cc-demo-plugins

プラグインレジストリへの登録

~/.claude/plugins/config.json に次のように書き込み、プラグインリポジトリをレジストリに登録します。

config.json

{
  "repositories": {
    "yukukotani/cc-demo-plugins": {
      "enabled": true
    }
  }
}

プラグインの有効化

~/.claude/settings.jsonenabledPlugins プロパティに次のように書き込み、プラグインを有効化します。"[owner]/[repo]": ["plugin"] の構造です。

settings.json

{
  ...
  "enabledPlugins": {
    "yukukotani/cc-demo-plugins": ["translation"]
  }
}

これで設定は完了です。

プラグインレジストリへの登録やプラグインの有効化は、今は直接書き込むしかないようですが、おそらく claude mcp コマンドと似たような形で書き込めるようになる気がします。

プラグイン機能付きで実行

今のところ ENABLE_PLUGINS 環境変数でプラグイン機能を opt-in できるようです。次のように実行しましょう。

ENABLE_PLUGINS=true claude

先ほど追加したコマンドが、 /[plugin]:[command] の形式で登録されていれば成功です。

なお、Claude Code を --debug オプション付きで実行すると、プラグイン読み込みのログも確認できます。

[DEBUG] Auto-updating repository yukukotani/cc-demo-plugins...
[DEBUG] Loaded plugin: translation from yukukotani/cc-demo-plugins
[DEBUG] Found 1 plugins (1 enabled, 0 disabled) from 1 repositories
[DEBUG] Registered 0 hooks from 1 plugins
[DEBUG] Loaded 1 commands from plugin translation
[DEBUG] Total plugin commands loaded: 1

終わりに

Claude Codeの応用的な組織活用が進みそうですね。まだまだ破壊的変更もあるでしょうから、使ってみる場合は注意してください。



Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -