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

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