mcpField
C
chat.md: The Hacker's AI Chat Interface [Experimental]

chat.md: The Hacker's AI Chat Interface [Experimental]

github.com/rusiaamanIDE・エディタ1596 週間前に更新

chat.md: The Hacker's AI Chat Interface [Experimental] について

chat.md は、AI との会話を編集可能な .chat.md のプレーンテキストファイルとして保存する VS Code 拡張機能です。会話をワークスペースやバージョン管理に含めたい開発者に向けており、MCP 経由でツールを利用できます。

主な機能

  1. 01編集可能な .chat.md ファイルによる会話
  2. 02過去の発言の編集と AI 応答の続き生成
  3. 03Anthropic および OpenAI 互換 API への対応
  4. 04ローカルおよびリモート MCP サーバーのツール呼び出し
  5. 05ワークスペースのファイルと画像をコンテキストとして添付

活用シーン

  1. 01AI 会話を VS Code 上でバージョン管理された Markdown ファイルとして管理
  2. 02過去のメッセージを編集し、その時点からモデルに続きを生成させる
  3. 03ネイティブのツール呼び出しを持たないモデルから MCP ツールを利用

MCP 対応

chat.md は MCP クライアントであり、VS Code の設定で構成した stdio およびリモートサーバー(Streamable HTTP と SSE)に接続してツールを検出します。現時点ではツールのみ対応しており、プロンプトとリソースは今後の対応予定です。

詳細

chat.md:ハッカーのための AI チャットインターフェース[実験的]

ついに、あらゆる LLM で MCP に対応した、完全に編集可能なチャットインターフェースが登場しました。

chat.md は、プレーンテキストファイルを通じて AI とのやり取りを再構築する Visual Studio Code 拡張機能です。一時的なウェブインターフェースや独自仕様のチャットウィンドウとは異なり、chat.md はファイルを中心とするアプローチを採用しています。AI との会話は .chat.md 拡張子を持つ Markdown ファイルにすぎません。編集、バージョン管理、共有が可能で、すべてあなたのファイルです。AI はファイルに直接応答を書き込みます。

これで、任意の '*.chat.md' ファイルをあなたがハックできる AI エージェントとして使えます。自由に非線形の AI との会話を楽しんでください。

画像

使い方の動画

gemini-2.5-pro と wcgw mcp を使って、この vscode 拡張機能を公開したときのチャットはこちらです

注記 ⚠️:chat.md は 100% AI によってコーディングされており、機能豊富な POC として扱ってください。

chat.md を選ぶ理由

ほかの AI ツールchat.md
❌ 直線的な会話、または編集機能が限定的✅ 非線形の編集 — 履歴を書き換え、会話を分岐できます
❌ ツールの実行が独自実装に依存✅ あらゆる LLM モデルでツールを呼び出せます
❌ AI の応答を手動で編集できない✅ LLM に言葉を言わせる — 編集して、その続きから応答させられます
❌ 多くの LLM が MCP に対応していない✅ あらゆる LLM モデルで MCP サーバーを利用できます
❌ アシスタントの応答が最大トークン数に達すると再開できない✅ 不完全な AI の応答を任意の時点から再開できます
❌ 会話がクラウド上に保存される、またはアクセスできない✅ コードと同じ場所に、人が読める形式のファイルとしてローカル保存できます
❌ ワークスペースのコンテキストが分離されている✅ プロジェクトからファイルを直接添付できます

機能

🗣️ ファイルベースの会話

Copilot のインライン候補、ChatGPT のウェブインターフェース、Cursor のサイドパネルとは異なり、chat.md は会話をワークスペース内の第一級のファイルとして扱います。

# %% user
How can I optimize this function?

[#file](src/utils.js)

# %% assistant
Looking at your utils.js file, I see several opportunities for optimization:

1. The loop on line 24 could be replaced with a more efficient map/reduce pattern
2. The repetitive string concatenation can be improved with template literals
...
🔌 あらゆるモデルに対応
  • Anthropic Claude:すべてのモデル(Opus、Sonnet、Haiku)
  • OpenAI:GPT-4、GPT-3.5、o シリーズ、および OpenAI Responses API に対応
  • カスタム API:あらゆる OpenAI 互換エンドポイント(Azure、Google Gemini など)
  • すばやい切り替え:会話の途中で異なるモデルを切り替えられます。
🛠️ MCP による汎用ツールエコシステム

Chat.md は Model Context Protocol(MCP) クライアントです。あらゆる LLM で使える、ツール実行のためのオープン標準です。

多くのチャットアプリケーションとは異なり、Chat.md はどの LLM にもツール呼び出しを制限しません。

  • 真に汎用的:あらゆる AI モデル(Claude、GPT、オープンソースモデル)で、あらゆる MCP ツールを利用できます
  • モデルに依存しない:会話を支える AI がどれであっても、ツールは同じように動作します
  • ベンダーロックインなし:ツールの機能を失わずにモデルを切り替えられます
<tool_call>
<tool_name>filesystem.searchFiles</tool_name>
<param name="pattern">*.js</param>
<param name="directory">src</param>
</tool_call>
📎 コンテキストに応じたファイル添付
  • テキストファイルや画像を会話に直接添付できます(コピーした画像を貼り付けられます)
  • おなじみの Markdown 構文でファイルにリンクできます:[file](path/to/file)
  • ファイルはチャットドキュメントを基準に解決されるため、プロジェクトのコンテキストに最適です(または絶対パスを使用できます)
💾 編集可能な会話

chat.md ファイルは単なるテキストなので、AI とのやり取りを完全に制御できます。

  • 非線形編集:会話の前半を編集して、履歴を書き換えられます
  • 会話のハッキング:AI の応答を編集して、AI に言葉を言わせられます
  • 続行の制御:編集した任意の時点から AI に続けて応答させられます
  • 途中で切れた出力を再開:AI の応答が途中で切れた場合は、新しいアシスタントブロックを追加して続けられます
  • Git と相性抜群:会話の変更を追跡し、プロンプトを共同編集し、会話を分岐できます
  • 会話テンプレート:よくあるタスク向けに、再利用可能な会話の開始文を作成できます

はじめに

クイックスタート
  1. VS Code マーケットプレイスから「chat.md」をインストールします
  2. API キーを設定します:
    • コマンドパレット → 「Add or Edit API Configuration」
  3. 新しいチャットを作成します:
    • Opt+Cmd+'(Mac)/Ctrl+k Ctrl+c(Windows/Linux)を押すと、新しい「.chat.md」ファイルが作成され、ワークスペース情報がユーザーブロックに入力されます。
    • または、任意の場所に .chat.md 拡張子のファイルを作成し、vscode で開きます。
  4. 「# %% user」ブロックにクエリを入力して「Shift + Enter」を押します(または、新しい「# %% assistant」ブロックを作成して Enter を押します)。
  5. アシスタントが応答をストリーミングし、ツールを呼び出す様子を確認します。

任意で、チャットのライブプレビューを表示するために、Markdown プレビューを横に並べて開くことができます。より使いやすくなります。

使用方法
  • # %% system ブロックを挿入して、システムプロンプトに新しい指示を追加できます。
  • VS Code の設定で API 構成と MCP 構成を手動で追加できます。設定例を参照してください。
  • 下部にあるライブステータスバーの「Chat.md streaming」アイコンをクリックするか、「chat.md: Cancel streaming」コマンドを実行すると中断できます。
  • 新しいチャットの作成と同じ「Opt+Cmd+'」ショートカットを使って、ストリーミングをキャンセルすることもできます。
  • 「Refresh MCP Tools」コマンドを実行すると、すべての mcp サーバーを再読み込みできます。その後、「MCP Diagnostics」を実行すると、利用可能な mcp サーバーを確認できます。
  • 「Select api configuration」コマンドを使って、API プロバイダーを切り替えられます。

設定

chat.md は、以下の優先順位(高い順)で適用される3段階の設定システムに対応しています。

  1. ファイル固有の設定 - 個々の .chat.md ファイルの先頭で設定します
  2. プロバイダー固有の設定 - 各 API プロバイダーの VS Code 設定で設定します
  3. グローバル設定 - VS Code のデフォルト設定
ファイル固有の設定

任意の .chat.md ファイルの先頭でパラメーターを設定します:

selectedConfig="my-provider"
openaiApi="responses"
reasoningEffort="high"
maxTokens=4000
maxThinkingTokens=20000

# %% system
Your system prompt here
VS Code の設定

VS Code の設定 UI または settings.json から設定できます:

  • chatmd.apiConfigs: 名前付き API 構成(プロバイダー、API キー、モデル、ベース URL、任意の推論/トークン設定、および openaiApi: "auto" | "chat" | "responses")
  • chatmd.selectedConfig: アクティブな API 構成
  • chatmd.openaiApi: OpenAI API モード - "auto"(OpenAI がホストする gpt/o-series には Responses API を、それ以外には Chat Completions を使用)、"responses"、または "chat"
  • chatmd.mcpServers: MCP ツールサーバーを設定します
  • chatmd.reasoningEffort: グローバルな推論の深さ(none、minimal、low、medium、high)
  • chatmd.maxTokens: グローバルな最大応答トークン数
  • chatmd.maxThinkingTokens: グローバルな最大思考トークン数
ツールの実行

AI の応答にツール呼び出しが含まれている場合、拡張機能は自動的に次の処理を行います:

  1. アシスタントの応答の後に tool_execute ブロックを追加します
  2. 指定されたパラメーターでツールを実行します
  3. ツールの結果をドキュメントに挿入します
  4. AI が続けられるよう、新しいアシスタントブロックを追加します

次の操作でツールの実行を手動で開始することもできます:

  • ツール呼び出しを含むアシスタントの応答の末尾にカーソルを置き、Shift+Enter を押します
  • tool_execute ブロックが挿入され、ツールが実行されます

キーボードショートカット

  • Shift+Enter: 次のブロックを挿入します(ユーザー/アシスタントを交互に切り替えます)。カーソルがツール呼び出しを含むアシスタントブロックの末尾にある場合は、tool_execute ブロックを挿入します
  • Opt+Cmd+'(Mac)/Ctrl+k Ctrl+c'(Windows/Linux):新しいコンテキストチャットを作成するか、進行中のストリーミングをキャンセルします

MCP ツールの統合

任意の Model Context Protocol サーバーに接続して、AI の機能を拡張できます:

ローカル MCP サーバー(stdio)

VS Code と同じ環境で動作するローカル MCP サーバーの場合:

"chatmd.mcpServers": {
  "wcgw": {
    "command": "uvx",
    "args": [
      "--python",
      "3.12",
      "--from",
      "wcgw@latest",
      "wcgw_mcp"
    ]
  }
}
リモート MCP サーバー(Streamable HTTP)

chat.md は、MCP spec 2025-11-25 の新しい Streamable HTTP トランスポートに対応しています。このトランスポートは、従来の HTTP+SSE トランスポートに代わるものです。リモート MCP サーバーへの接続には、こちらを推奨します。

"chatmd.mcpServers": {
  "remote-mcp": {
    "url": "https://example.com/mcp",
    "transport": "streamable-http"
  }
}

カスタム HTTP ヘッダー(認証用など)を渡すこともできます。

"chatmd.mcpServers": {
  "remote-mcp": {
    "url": "https://example.com/mcp",
    "transport": "streamable-http",
    "headers": {
      "Authorization": "Bearer your-token-here"
    }
  }
}
トランスポートの自動検出

デフォルトでは、transport フィールドは "auto" です。chat.md はまず新しい Streamable HTTP トランスポートを試し、サーバーが対応していない場合は、自動的に従来の SSE トランスポートに切り替えます。トランスポートには "streamable-http"、"sse"、または "auto" を明示的に設定できます。

値動作
"auto"(デフォルト)まず Streamable HTTP を試し、SSE に切り替えます
"streamable-http"新しい Streamable HTTP トランスポートのみを使用します
"sse"従来の SSE トランスポートのみを使用します
リモート MCP サーバー(従来の SSE)

非推奨の HTTP+SSE トランスポートのみをサポートする、古いリモート MCP サーバー向けです。

"chatmd.mcpServers": {
  "remote-mcp": {
    "url": "http://localhost:3000/sse",
    "transport": "sse"
  }
}

必要に応じて、環境変数を追加することもできます。

"chatmd.mcpServers": {
  "remote-mcp": {
    "url": "http://localhost:3000/sse",
    "transport": "sse",
    "env": {
      "API_KEY": "your-api-key-here"
    }
  }
}

AI はローカルサーバーとリモートサーバーの両方から利用可能なツールを自動的に検出し、その使い方を把握します。ツールのリストは最新の状態に保つため、5 秒ごとに自動更新されます。すべての MCP サーバーは並行して初期化されるため、応答が遅いサーバーや障害が発生したサーバーによって、ほかのサーバーがブロックされることはありません。

基本理念

chat.md は人為的な「チャット」というパラダイムから脱却し、AI とのやり取りの本質はテキスト処理であることを認識しています。会話をファイルとして扱うことで、次のことが可能になります。

  1. 永続化が簡単になります - 特別なクラウド同期や独自形式は必要ありません
  2. 共同作業が組み込まれています - ほかのコードと同じように共有、差分確認、マージができます
  3. バージョン管理が自然にできます - 時間の経過に伴う変更を追跡できます
  4. 無制限にカスタマイズできます - ファイルを自由に編集できます

制限事項

  1. MCP -- 現在はツールのみがサポートされています。プロンプトとリソースは今後サポートされる予定です。
  2. anthropic API では、キャッシュはまだサポートされていません。
  3. Gemini、ollama、llm studio、その他のモデルには、openai-api のみを使用してアクセスできます。

vscode の設定例

vscode の JSON 設定

  "chatmd.apiConfigs": {
    "gpt-5.2": {
      "type": "openai",
      "apiKey": "",
      "model_name": "gpt-5.2",
      "openaiApi": "responses",
      "reasoningEffort": "none"
    },
    "gemini-2.5pro": {
      "type": "openai",
      "apiKey": "",
      "base_url": "https://generativelanguage.googleapis.com/v1beta/openai/",
      "model_name": "gemini-2.5-pro-exp-03-25"
    },
    "anthropic-sonnet-3-7": {
      "type": "anthropic",
      "apiKey": "sk-ant-",
      "base_url": "",
      "model_name": "claude-3-7-sonnet-latest",
      "maxTokens": 6000,
      "maxThinkingTokens": 18000
    },
    "openrouter-qasar": {
      "type": "openai",
      "apiKey": "sk-or-",
      "base_url": "https://openrouter.ai/api/v1",
      "model_name": "openrouter/quasar-alpha"
    },
    "groq-llam4": {
      "type": "openai",
      "apiKey": "",
      "base_url": "https://api.groq.com/openai/v1",
      "model_name": "meta-llama/llama-4-scout-17b-16e-instruct"
    },
    "together-llama4": {
      "type": "openai",
      "base_url": "https://api.together.xyz/v1",
      "apiKey": "",
      "model_name": "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8"
    }
  },
  "chatmd.mcpServers": {
    
    "wcgw": {
      "command": "/opt/homebrew/bin/uv",
      "args": [
        "tool",
        "run",
        "--python",
        "3.12",
        "--from",
        "wcgw@latest",
        "wcgw_mcp"
      ]
    },
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search"],
      "env": {
        "BRAVE_API_KEY": ""
      }
    },
    "fetch": {
      "command": "/opt/homebrew/bin/uvx",
      "args": ["mcp-server-fetch"]
    }
  },
  "chatmd.selectedConfig": "gemini-2.5pro",
  "chatmd.maxTokens": 8000,
  "chatmd.maxThinkingTokens": 16000,
  "chatmd.reasoningEffort": "medium"

設定に関する注意事項:

  • maxTokens(デフォルト:8000)は、モデルの応答に使用するトークンの最大数を制御します
  • OpenAI の推論モデル(o1、o3 シリーズ)では、maxTokens は max_completion_tokens の合計予算として使用されます(思考トークンと応答トークンの両方を含みます)
  • Anthropic モデルでは、maxThinkingTokens で思考トークンの予算を個別に制御できます。または、reasoningEffort から自動的に計算できます
  • プロバイダー固有の設定はグローバル設定を上書きし、ファイル固有の設定はその両方を上書きします(優先順位の詳細は CONFIGURATION.md を参照してください)

ライセンス

MIT License - 詳細は LICENSE ファイルを参照してください。

フィードバックと貢献

  • GitHub リポジトリで問題を報告してください
  • プルリクエストによる貢献を歓迎します

クレジット

  • wcgw mcp を使った Claude
  • chat.md を使った Gemini 2.5 pro

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。