OpenCode 用 Anthropic User-Agent 注入プラグイン
概要
opencode-anthropic-user-agent-plugin は、OpenCode(ローカル/デスクトップ型の AI クライアント)プロセス内で動作する小さな JavaScript プラグインです。Anthropic(Claude)関連の HTTP リクエストに対して、設定可能な User-Agent ヘッダを注入することを目的としています。対象は OAuth ログイン、OAuth トークンのリフレッシュ、モデルへのプロンプト/メッセージ送信、Anthropic の API キー作成などのトラフィックで、fetch のパッチによりプロセスレベルでヘッダを差し替えます。これにより、OpenCode 本体やキャッシュされたプラグインファイルを直接編集せずに、Anthropic への通信ヘッダを一括管理できます。
リポジトリの統計情報
- スター数: 14
- フォーク数: 4
- ウォッチャー数: 14
- コミット数: 9
- ファイル数: 6
- メインの言語: JavaScript
主な特徴
- OpenCode プロセス内で fetch をパッチして Anthropic ホストへのリクエストに User-Agent を注入
- OAuth ログインやトークン更新など認証系の通信もカバー
- OpenCode のキャッシュ済みプラグインファイルを書き換えずに動作
- 軽量で導入が簡単な npm パッケージ形式
技術的なポイント
このプラグインの核は「プロセス内での fetch 差し替え(モンキーパッチ)」です。OpenCode が内部で行うネットワーク呼び出しは通常 global.fetch(または同等の実装)経由で行われるため、プラグインが起動時に元の fetch をラップしてリクエスト先のホスト名を判定し、条件に合えばヘッダを上書き・追加する手法を使っています。対象のホストは Anthropic のドメイン群で限定され、OAuth のエンドポイント、API のエンドポイント、キー作成のエンドポイントなどに対して適用されます。
このアプローチの利点は、OpenCode 本体や既にキャッシュされたプラグインファイルに手を入れる必要がない点です。つまり、OpenCode のアップデートやプラグインのキャッシュ切れに左右されずに動作し、認証フローやモデル入出力の両方で一貫した User-Agent を付与できます。一方で、プロセス内のグローバル関数を書き換えるため、互換性やセキュリティの観点で注意が必要です。たとえば、別のプラグインや OpenCode の将来の変更で fetch の挙動が変わると干渉が発生する可能性があります。また、User-Agent の変更が API 側の期待する仕様と合わないと、認証や利用制限に影響を与えることがあり得ます。
設定面では「設定可能な User-Agent」を提供する点がポイントです。README ではインストールが npm 経由で行えることが示唆されており、package.json と index.js をエントリポイントにした構成になっています。index.js は起動時に設定を読み込み、必要に応じて fetch をフックする処理を実装していると推測されます。導入後は OpenCode の再起動やプラグイン有効化を行うことで即座に効果が現れ、OAuth のログインフローからモデルへのリクエストまで透過的に User-Agent が付与されます。
運用上の注意点としては、OpenCode のバージョン依存性、Anthropic 側の API 変更(ホスト名や期待ヘッダの変更)、およびローカル環境でのテストが挙げられます。プラグインは軽量ですが、fetch のラップ実装が単純な場合、エラーハンドリングや非同期挙動の破綻により予期せぬ副作用が出ることがあるため、導入前にバックアップと動作確認を推奨します。
プロジェクトの構成
主要なファイルとディレクトリ:
- .github: dir
- .gitignore: file
- README.md: file
- index.js: file
- package-lock.json: file
…他 1 ファイル
(index.js が実際の fetch パッチ処理の本体であり、package.json による npm パッケージ管理を想定)
使い方(概要)
- npm でパッケージをインストール(README の指示に従う)。
- OpenCode のプラグインとして読み込むか、指定のプラグインフォルダに配置。
- 必要に応じて User-Agent の内容を設定。
- OpenCode を再起動して、Anthropic 関連の OAuth や API リクエストでヘッダが注入されることを確認。
まとめ
OpenCode 環境で Anthropic 向け通信の User-Agent を安全かつ手軽に統制する便利な軽量プラグインです。
リポジトリ情報:
- 名前: opencode-anthropic-user-agent-plugin
- 説明: 説明なし
- スター数: 14
- 言語: JavaScript
- URL: https://github.com/dotCipher/opencode-anthropic-user-agent-plugin
- オーナー: dotCipher
- アバター: https://avatars.githubusercontent.com/u/3977074?v=4
READMEの抜粋:
opencode-anthropic-user-agent-plugin
Portable OpenCode plugin that injects a configurable Anthropic User-Agent for:
- Claude Pro/Max OAuth login
- OAuth token refresh
- Anthropic prompt/message requests
- Anthropic API key creation
The plugin works by patching fetch inside the OpenCode process for requests
to Anthropic hosts, so it can affect both auth traffic and normal model I/O
without patching OpenCode’s cached plugin files by hand.
Install
Install the package:
npm insta...