Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 41品質スコア 86/100

anymodel

AnyModel開発スキル — ユニバーサルAIコーディングプロキシです。AnyModelのソースコード(proxy.mjs、cli.mjs、providers/*、site/*、test/*)の作業、プロバイダーやプリセットの追加、プロキシの問題のデバッグ、npmへのデプロイ、またはanymodel.devウェブサイトの修正を行う際に、このスキルを活用してください。ユーザーがAnyModelのアーキテクチャ、プロキシのサニタイゼーション、ツールスキーマの修正、Ollama統合、OpenRouterのルーティング、クライアントブランディング、またはデプロイメントパイプラインについて言及した場合にも対応します。コード、テスト、公開、デプロイまで、AnyModelのライフサイクル全体をカバーします。

description の原文を見る

AnyModel development skill — the universal AI coding proxy. Use this skill whenever working on AnyModel source code (proxy.mjs, cli.mjs, providers/*, site/*, test/*), adding providers or presets, debugging proxy issues, deploying to npm, or modifying the anymodel.dev website. Also activate when the user mentions AnyModel architecture, proxy sanitization, tool schema fixing, Ollama integration, OpenRouter routing, client branding, or the deployment pipeline. Covers the full AnyModel lifecycle: code, test, publish, deploy.

SKILL.md 本文

AnyModel開発スキル

AnyModel に取り組んでいます — 任意のAIモデルを1つのインターフェースで使用できるユニバーサルAIコーディングプロキシです。 このスキルに必要なすべてが含まれています:アーキテクチャ、規約、デプロイメントルール、デバッグガイダンス。

製品アイデンティティ

アーキテクチャ

AnyModel client (cli.js) --> anymodel proxy (:9090) --> OpenRouter / Ollama / OpenAI-compatible

3つのコンポーネント:

  1. プロキシ (proxy.mjs) — /v1/messages をインターセプトするHTTPサーバー、リクエストをサニタイズし、フォーマットを変換して、プロバイダーにルーティング
  2. CLI (cli.mjs) — プロキシの起動、接続、プリセット管理のエントリーポイント
  3. バンドルクライアント (cli.js) — バイオレットダイヤモンドキャラクターとAnyModelブランディングが含まれた、修正されたClaude Codeクライアント

3つのプロバイダー

プロバイダーファイルAPIフォーマット主な動作
OpenRouterproviders/openrouter.mjsAnthropic パススルーcache_control を保持、300以上のクラウドモデル
Ollamaproviders/ollama.mjsOpenAI /v1/chat/completionsnum_ctx=8192 を注入、86個すべてのツールを削除
OpenAIproviders/openai.mjsOpenAI フォーマット完全な双方向Anthropic <-> OpenAI翻訳

プリセット(変更時はKNOWLEDGE-BASE.mdのバージョンを更新)

プリセットモデルIDコスト
gptopenai/gpt-5.4有料
codexopenai/gpt-5.3-codex有料、コーディング
geminigoogle/gemini-3.1-flash-lite-preview有料
deepseekdeepseek/deepseek-r1-0528有料
mistralmistralai/devstral-2512有料、コーディング
gemmagoogle/gemma-4-31b-it有料、コーディング
qwenqwen/qwen3-coder:free無料
nemotronnvidia/nemotron-3-super-120b-a12b:free無料
llamameta-llama/llama-3.3-70b-instruct:free無料

新しいプリセットを追加する場合:cli.mjsMODEL_PRESETS に追加、ヘルプテキストを更新、KNOWLEDGE-BASE.md を更新、site/index.html を更新、README.md を更新します。

プロキシのサニタイゼーション (proxy.mjs)

sanitizeBody() 関数はAnyModelの中核です。任意のモデルがClaude Codeのリクエストフォーマットで機能するようにします。

実行内容(順序):

  1. Anthropic専用フィールドを削除: betasmetadataspeedoutput_configcontext_management
  2. thinking を保持 — 推論モデル(DeepSeek R1)はチェーンオブソートに必要
  3. cache_control を保持 OpenRouter(Anthropicモデルがサポート)、Ollama/OpenAIでは削除
  4. max_tokens をクランプ 最小値16 — Claude Codeはプローブで max_tokens: 1 を送信、OpenAI/GPTは16未満を拒否
  5. ツールスキーマを修正:
    • input_schema が完全にない -> _unused プレースホルダーを使用した最小限の有効なスキーマを追加
    • 空の properties: {} -> _unused プレースホルダーを追加(OpenAIは空のプロパティを拒否)
    • type フィールドが欠落 -> "type": "object" を追加
    • ネストされたスキーマを再帰的に修正(anyOfoneOfallOfitems
    • tool_useレスポンスから _unused を削除、クライアントが見ないようにする
  6. Anthropic専用のツールフィールドを削除: cache_controldefer_loadingeager_input_streamingstrict
  7. tool_choice を正規化: 文字列フォーマットをオブジェクトフォーマットに変換
  8. Ollama: すべての86個のツールを削除 — ローカルモデルはMCPツールを使用できず、スキーマの50Kトークンは30~60秒のオーバーヘッドを追加
  9. ツールなしで自動再試行 — モデルが「ツール使用をサポートするエンドポイントが見つかりません」を返した場合、ツールを削除して再試行

重要な理由

サニタイゼーションなしでは、MCPツールは非Anthropicモデルで機能しません。Claude Codeは、SlackやFigma、GmailなどのMCPサーバーを含む86個のツール定義をすべてのリクエストで送信します。プロキシはこれらのスキーマがターゲットモデルに対して有効であることを保証し、MCPがプロバイダーを通じてシームレスに機能します。

クライアントアイデンティティ

  • キャラクター: バイオレットダイヤモンドテーマ(diamond-headdiamond-feet ASCIIアート)
  • : ライトバイオレット rgb(147,130,255)、ANSIフォールバック magentaBright
  • ブランディング: 至るところに「AnyModel」(標準Claude Codeではない)。ヒントは「Claude に聞く」ではなく「AnyModel に聞く」
  • バージョン: prepublishOnly スクリプト経由でnpmパッケージと同期
  • ANYMODEL_MODEL: クライアントUIにアクティブなモデル名を表示する環境変数

クライアントを変更する場合:バイオレットアイデンティティを決して壊さないでください。ダイヤモンドキャラクターと「AnyModel」ブランディングが、標準Claude Codeと区別されるものです。

環境変数

変数目的
OPENROUTER_API_KEYOpenRouter APIキー(主プロバイダー)
OPENAI_API_KEYOpenAI互換エンドポイント用APIキー
OPENAI_BASE_URLカスタムOpenAI互換プロバイダー用のベースURL
ANYMODEL_CLIENTクライアントバイナリへの明示的パス
ANYMODEL_MODELクライアントUIに表示されるモデル名
ANYMODEL_TOKENリモートプロキシモード用認証トークン
PROXY_PORTデフォルトポートのオーバーライド(デフォルト: 9090)
OLLAMA_NUM_CTXOllamaコンテキストサイズ(デフォルト: 8192)

クライアントディスカバリー (findClient())

npx anymodel が接続するとき、この順序でクライアントを検索します:

  1. ANYMODEL_CLIENT 環境変数(明示的パス)
  2. cli.mjs の隣の cli.js(npmパッケージにバンドル)
  3. 現在のディレクトリの cli.js
  4. シブリングリポジトリ(../claude-code/cli.js../claude-code-anymodel/cli.js
  5. ホームディレクトリ(~/claude-code-anymodel/cli.js
  6. グローバル claude バイナリ(最後の手段フォールバック)

デプロイメントパイプライン(必須)

すべての変更はこのパイプラインに従う必要があります。ステップをスキップしたり、テストに合格せずに発行したりしないでください。

# 1. すべてのテストを実行
node --test test/*.test.mjs

# 2. コミットとプッシュ
git add <changed-files>
git commit -m "change の説明"
git push

# 3. バージョンバンプとnpmへの発行
npm version patch
npm run sync-version    # cli.jsのバージョンを同期
npm publish

# 4. ウェブサイトをデプロイ(site/ が変更された場合のみ)
vercel --prod

# 5. クライアントリポを同期(cli.js が変更された場合のみ)
# cli.js をclaude-code-anymodelリポにコピー

package.jsonの prepublishOnly スクリプトはバージョン同期を処理します。npm version patch の後、npm run sync-version を実行してバンドルクライアントのバージョンを更新し、その後 npm publish を実行します。

新しいプロバイダーの追加

  1. 既存プロバイダーのパターンに従い providers/newprovider.mjs を作成
  2. エクスポート: { name, transformRequest, transformResponse, buildUrl, getHeaders }
  3. cli.mjs に検出ロジックを追加(PROVIDERS 配列)
  4. 環境変数ドキュメントを追加
  5. プロバイダーのフォーマットが異なる場合はツールスキーマ翻訳を処理
  6. test/ にテストを追加
  7. KNOWLEDGE-BASE.md を更新
  8. 完全なデプロイメントパイプラインを実行

新しいプリセットの追加

  1. cli.mjsMODEL_PRESETS に追加
  2. showUsage() のヘルプテキストを更新
  3. KNOWLEDGE-BASE.md のプリセット表を更新
  4. site/index.html のプリセットセクションを更新
  5. README.md を更新
  6. 完全なデプロイメントパイプラインを実行

デバッグガイド

よくある問題

症状原因修正
max_tokens エラーClaude Codeはプローブで max_tokens: 1 を送信プロキシは16にクランプ — sanitizeBody() をチェック
GPTでツール使用が失敗ツールスキーマで空の properties: {}プロキシが _unused プレースホルダーを追加 — ツールサニタイゼーションをチェック
Ollamaが非常に遅い86個のツールスキーマが50Kトークンを追加プロキシがツールを削除 — Ollamaプロバイダーをチェック
「エンドポイントが見つかりません」モデルがツール使用をサポートしていないプロキシはツールなしで自動再試行
ストリーミングが中断レスポンスフォーマットの不一致プロバイダーの transformResponse をチェック — Anthropic SSE対OpenAI SSE
cache_control エラー非Anthropicモデルがキャッシュヒントを拒否sanitizeBody()keepCache フラグをチェック
クライアントが「Claude」を表示ブランディングが適用されていないANYMODEL_MODEL 環境変数とクライアントアイデンティティパッチをチェック

プロキシトラフィックのデバッグ

プロキシはカラーコード化された出力ですべてのリクエストをログしています:

  • [OPENROUTER] / [OLLAMA] / [OPENAI] — プロバイダープレフィックス
  • tools=N — リクエスト内のツール数
  • stream=true — ストリーミングモード
  • イエロー [OLLAMA] Stripping N tools — ローカルモデルのツール削除
  • グリーン 200 — 成功したレスポンス
  • 赤いステータスコード — エラーとボディ抜粋

競争状況

ツールAnyModelとの主な違い
Claude Code Router (CCR)31K以上のスター、Claude Code特有、手動JSONコンフィグが必要、バンドルクライアントなし
OpenRouter ネイティブAnthropicモデルのみが確実に機能、フォーマット翻訳なし
OpenCode完全な書き換え(107Kスター)、独自のエコシステム、プロキシではない
ClineVS Code拡張機能、IDE特有、スタンドアロンCLIではない
LiteLLMエンタープライズPythonゲートウェイ、重いコンフィグ

Anthropic サードパーティカットオフ(2026年4月4日)

Claude購読はサードパーティツールをカバーしなくなりました。AnyModelプロキシモードは影響を受けません(OpenRouterを通じてルーティング、Anthropic OAuthに触れない)。これが重要な売却ポイントです — AnyModelユーザーはClaude購読が不要です。

URL とリンク

リソースURL
AnyModel ウェブサイトhttps://anymodel.dev
AnyModel npmhttps://npmjs.com/package/anymodel
AnyModel GitHubhttps://github.com/anton-abyzov/anymodel
クライアント GitHubhttps://github.com/antonoly/claude-code-anymodel
SpecWeavehttps://spec-weave.com
Verified Skillshttps://verified-skill.com
OpenRouter キーhttps://openrouter.ai/keys
YouTubeデモhttps://youtu.be/k0RI_M6lIsg
YouTubeチャンネルhttps://youtube.com/@AntonAbyzov
Twitter/Xhttps://x.com/aabyzov
Discordhttps://discord.gg/UYg4BGJ65V
Telegramhttps://t.me/antonaipower

ファイル構造

anymodel/
  cli.mjs              # CLIエントリーポイント
  cli.js               # バンドルクライアント(12MB修正済みClaude Code)
  proxy.mjs            # HTTPプロキシサーバー + サニタイゼーション
  package.json         # npm設定
  providers/
    openrouter.mjs     # OpenRouterプロバイダー(パススルー)
    ollama.mjs         # Ollamaプロバイダー(OpenAI翻訳 + num_ctx)
    openai.mjs         # OpenAIプロバイダー(双方向翻訳)
  site/
    index.html         # anymodel.dev ホームページ
    styles.css / script.js / sitemap.xml / robots.txt
  test/                # 93以上のテスト
  KNOWLEDGE-BASE.md    # 唯一の情報源(このスキルと同期を保つ)

テスト

すべてのコミット前にすべてのテストを実行します:

node --test test/*.test.mjs

テストは以下をカバーしています:サニタイゼーション、ツールスキーマ修正、プロバイダー翻訳、プリセット解決、max_tokensクランプ、ストリーミング、エラーハンドリング。機能を追加する場合は、対応するテストを追加します。テスト数は増加するだけです。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
anton-abyzov
リポジトリ
anton-abyzov/anymodel
ライセンス
MIT
最終更新
2026/4/21

Source: https://github.com/anton-abyzov/anymodel / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: anton-abyzov · anton-abyzov/anymodel · ライセンス: MIT