Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>File ConcatNew to Visual Studio Code? Get it now.
File Concat

File Concat

HMSWORK

|
6 installs
| (0) | Free
複数のファイルやフォルダを1つのテキストに結合し、クリップボードへコピーするVS Code拡張機能
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

File Concat

複数のファイルやフォルダを1つのテキストに結合し、クリップボードへコピーする VS Code 拡張機能です。 ChatGPT / Claude などの AI にコードをまとめて渡したいときに便利です。

  • 無料機能: エクスプローラーから右クリックで結合(再帰 / 直下のみ)。ずっと無料で使えます。
  • Pro 機能(月額・年額サブスクリプション): コピー履歴からの再結合(履歴ビューで複数確認・まとめて再結合)、箇条書き指定(glob・正規表現)での結合、結合対象の編集画面、右クリックからの除外設定の追加。

無料機能

エクスプローラーでファイルまたはフォルダ(複数選択可)を右クリックし、サブメニュー File Concat から実行します。 この拡張機能のすべての機能(結合・Pro 機能・除外設定・ライセンス操作)が、このサブメニューにまとまっています。エディタの右クリックも同様です。

コマンド 内容
ファイルを結合してコピー(再帰あり) サブフォルダを含めて結合
ファイルを結合してコピー(直下のみ) 選択フォルダ直下のみ結合

出力例:

===== FILE: src/index.ts =====
console.log("hello");

===== FILE: src/utils/helper.ts =====
export const test = () => {};

自動で除外されるもの

  • .env(設定に関わらず常に除外)
  • フォルダ: node_modules .git .next dist build coverage
  • 設定 fileConcat.excludeFolders のフォルダ、fileConcat.excludeExtensions の拡張子
  • バイナリファイル、サイズ上限を超えるファイル(設定で変更可)

対応文字コード

  • UTF-8(BOM 付きは BOM を除去して結合)
  • UTF-16 LE / BE(BOM 付き)
  • Shift_JIS / EUC-JP(設定 fileConcat.fallbackEncoding で選択。既定は none)

UTF-8 で読めず、フォールバックも none のファイルは「文字コード不明」としてスキップされます。

スキップ時の通知

スキップされたファイルがある場合、完了通知に「N 件を結合、M 件スキップ」と理由の内訳が表示されます。 「詳細を見る」を押すと、出力パネル File Concat にパスと理由が1行ずつ表示されます。 .env や除外拡張子による除外は件数のみで、明細は出力しません。

サイズに関する設定

  • fileConcat.maxFileSizeKB(既定 1024): 1ファイルの上限
  • fileConcat.oversizeBehavior(skip / truncate、既定 skip): 上限超過時にスキップするか、先頭のみ結合するか
  • fileConcat.maxTotalSizeMB(既定 20): 結合結果の合計がこの値を超える場合、コピー前に確認します

Pro 機能

機密情報チェック(Ollama・Pro)

Pro が有効で fileConcat.secretScanEnabled がオン(既定 true)の場合、クリップボードへのコピーが成功した後、結合結果を Ollama に送り、API キー・アクセストークン・秘密鍵・パスワード・個人情報などが含まれていないか確認します。通常結合、履歴再実行、まとめて再結合、パターン指定、パス指定、対象編集はいずれも共通のコピー処理でチェックされます。

  • クリップボードには従来どおりの結合結果をそのままコピーします。検出があっても本文をマスク・削除・置換しません。Ollama の応答を待たずにコピーし、検出時はファイルの相対パス(メモの場合はタイトル)、カテゴリ、確信度を警告します。秘密値や該当行は通知に表示しません。
  • 既定の送信先は http://127.0.0.1:11434(同じ端末の Ollama)で、モデルの既定値は llama3.2 です。Ollama を起動し、モデルを導入してください。例: ollama pull llama3.2。
  • fileConcat.ollamaUrl と fileConcat.ollamaModel で送信先とモデルを変更できます。リモート URL を指定すると、結合本文に加えてファイル名・相対パス・含めたメモの内容も端末外へ送られ得ます。信頼できる送信先のみを指定してください。
  • fileConcat.secretScanEnabled を false にすると送信しません。非 Pro の場合も送信しません。Ollama の停止、接続失敗、タイムアウト、不正な応答の場合でもコピーは成功しますが、チェック未完了の警告が表示されます。
  • AI による推定のため、誤検出・見逃しがあります。機密情報の漏えい防止を保証する機能ではありません。共有前にはコピー内容を確認してください。
設定 既定 内容
fileConcat.secretScanEnabled true Pro の機密情報チェックを有効化。false で Ollama への送信を停止
fileConcat.ollamaUrl http://127.0.0.1:11434 Ollama サーバーのベース URL。リモート URL では結合本文等が端末外へ送信され得る
fileConcat.ollamaModel llama3.2 Ollama に導入済みのモデル名

コピー履歴から最新状態で再結合

コマンド: コピー履歴から再結合(Pro)

  • 履歴に保存するのは「どのファイル/フォルダを対象にしたか」だけで、結合結果の本文は保存しません。
  • 再実行時は現在のディスク状態から再収集・再読み込みするため、常に最新の内容で結合されます。
  • ピン留め、個別削除、全削除(履歴をすべて削除)ができます。件数の上限は fileConcat.historyLimit(既定 30、最大 200)で、ピン留め分は上限に含まれません。
  • 履歴はワークスペース単位で保存されます。
  • 履歴の記録は Pro 契約中のみ行われます(未契約時は記録されません)。

箇条書き指定で結合(glob・正規表現対応)

コマンド: 箇条書き指定で結合してコピー(Pro)

入力パネルに1行1項目で書きます。プレビューで対象件数と先頭 50 件のパスを確認してから実行できます。

- src/utils             # フォルダ(「再帰」オプションに従う)
- src/**/*.ts           # glob
- /^src\/.*\.test\.ts$/i  # 相対パス全体への正規表現
- !/\.snap$/            # ! で除外(後勝ち)
- @dir:src /Controller\.ts$/  # フォルダを限定した正規表現

パターンを指定しても、.env・除外フォルダ・除外拡張子・サイズ・バイナリの各ルールが常に優先されます。 詳しい書式は docs/pattern-syntax.md を参照してください。

関連設定: fileConcat.patternScope(マルチルート時の評価範囲)、fileConcat.allowOutsideWorkspace(ワークスペース外の絶対パス指定を許可。既定 false)

履歴ビュー(複数の履歴を確認・まとめて再結合)

エクスプローラーの File Concat 履歴 ビューに、コピー履歴が一覧表示されます(サブメニューの「コピー履歴ビューを開く(Pro)」でも開けます)。

  • 各履歴を展開すると、入力(パターン履歴は元のパターン行)と、前回結合したファイルの一覧(先頭 200 件)を確認できます。
  • 履歴にチェックを入れて、タイトルバーの「チェックした履歴をまとめて再結合」を押すと、複数の履歴を1回で結合します。重複するファイルは1回だけ含まれます。
  • ピン留め・削除・「対象を編集して再結合」は各履歴のボタン/右クリックから行えます。
  • 端末内に保存されるもの: 履歴には、対象の入力と前回結合したファイルのパス一覧(最大 500 件)が VS Code の workspaceState(この端末内)に保存されます。結合結果の本文は保存せず、これらを外部へ送信することもありません。

結合対象の編集画面

結合コピーの完了通知の 「対象を編集(Pro)」 ボタン(または履歴ビューの「対象を編集して再結合」)で、結合したファイルの一覧がチェックボックス付きで開きます。

  • チェックを外す/足すなどして、「結合してコピー」 で再度結合できます(フォルダ単位のチェック、絞り込み、すべて選択/解除に対応)。
  • サイズ超過・バイナリなど前回スキップされたファイルは、理由付きで選択不可として表示されます。
  • 実行後も画面は開いたままで、通知から何度でも編集し直せます。チェックが 200 件以下なら履歴にも記録されます。

除外設定を右クリックから追加

ファイルまたはフォルダを右クリックし、File Concat → 選択を結合対象から除外(Pro) を選びます。

  • フォルダは fileConcat.excludeFolders に、ファイルは fileConcat.excludeFiles(このファイルのみ)または fileConcat.excludeExtensions(拡張子)に追記されます。
  • ワークスペース直下のフォルダは ./フォルダ名 の形式で書き込まれます。名前だけだと、どの階層にある同名フォルダも除外してしまうためです。
  • 完了通知の「元に戻す」で取り消せます。「除外設定を管理(Pro)」で追加した除外を削除できます。
  • 設定はワークスペース設定(.vscode/settings.json)に書き込まれます(ワークスペースを開いていない場合のみユーザー設定)。

料金・プラン

以下の価格は暫定値です。確定後はこのセクションのみ書き換えます。

無料 Pro
右クリックで結合(再帰 / 直下のみ) ○ ○
文字コード対応・スキップ通知 ○ ○
コピー履歴から再結合 - ○
箇条書き指定(glob・正規表現)で結合 - ○
履歴ビュー(複数確認・まとめて再結合) - ○
結合対象の編集画面(チェックを編集して再結合) - ○
パスを指定して結合(カンマ区切り入力) - ✔
パス指定の前回以外のみ結合(差分コピー) - ✔
メモ帳を開くショートカット・リロード後の自動復元 - ✔
ワークスペース別メモ帳と結合時の自動付加 - ✔
複数メモとメモごとの自動付加 - ✔
通知への文字数・サイズ・トークン数の表示 - ✔
SSH 接続時のメモのリモート保存 - ✔
機密情報チェック(Ollama) - ✔
右クリックから除外設定を追加・管理 - ○
価格 無料 月額 500 円 / 年額 5,000 円(税込・暫定)
  • 無料トライアル: 7 日間(初回契約時)
  • 1契約あたり最大 3 台のデバイスで利用できます。4 台目を有効化すると、最後に使われたのが最も古いデバイスが自動で解除されます。
  • 決済は Stripe のホスト型ページで行います。クレジットカード情報が当拡張機能や運営者のサーバーに保存されることはありません。
  • VS Code Marketplace 自体に課金機能はありません。Pro のお支払いは外部(Stripe)で行います。

サインイン・管理・解約

コマンドパレット(Ctrl+Shift+P / Cmd+Shift+P)から実行します。

コマンド 内容
File Concat Pro にアップグレード / サインイン ブラウザで申し込みまたは認証を行い、完了すると自動で有効化
サブスクリプションを管理 Stripe のカスタマーポータルを開く(解約・支払い方法の変更)
ライセンス状態を表示 プラン・有効期限・デバイス ID の先頭 8 文字を表示
このデバイスのライセンスを解除 このデバイスの利用を解除(再度サインインすれば利用可能)

すでにご契約の方が別のデバイスで使う場合は、サインイン時にご契約時のメールアドレスを入力すると、6桁の認証コードが届きます。

オフライン時の挙動

  • ライセンスの有効期間は発行から 7 日で、期限の 2 日前を切ると自動更新します(以降 12 時間ごとに確認)。
  • 通信障害で更新できない場合でも、期限から 3 日間は Pro を維持します。
  • サーバーが明示的に無効(解約・デバイス解除など)と返した場合は、すぐに無効化されます。
  • 無料機能はライセンス状態に関わらず、常に利用できます。

プライバシー

  • サーバーに送信・保存されるのは、メールアドレス(Stripe 経由)、Stripe 顧客 ID、デバイス ID のハッシュ、デバイスラベル(OS 名程度)、ライセンス状態のみです。
  • ライセンスサーバーへファイル内容・ファイル名・パスは送信しません。テレメトリも収集しません。ただし、Pro の Ollama 機密情報チェックが有効な場合、結合結果(メモ・ファイル名・相対パスを含む)は設定された Ollama URL へ直接送信されます。
  • 無料機能のみを使う場合、外部との通信は発生しません。

詳細は PRIVACY.md、利用規約は TERMS.md、特定商取引法に基づく表記は docs/legal/tokushoho.md を参照してください。

設定一覧

設定 既定 内容
fileConcat.excludeExtensions .log .lock .tmp 除外する拡張子
fileConcat.excludeFolders [] 除外するフォルダ(名前 / ./相対パス / 絶対パス)
fileConcat.excludeFiles [] 除外するファイル(相対 / 絶対パス)
fileConcat.pathInput.recursive true パス指定で入力したフォルダをサブフォルダまで展開する
fileConcat.contextWindowTokens 200000 通知のトークン割合の分母(推定値)
fileConcat.maxFileSizeKB 1024 1ファイルの上限(KB)
fileConcat.oversizeBehavior skip 上限超過時: skip / truncate
fileConcat.maxTotalSizeMB 20 合計サイズの確認しきい値(MB)
fileConcat.fallbackEncoding none none / shift_jis / euc-jp
fileConcat.historyLimit 30 履歴の保持件数(Pro)
fileConcat.patternScope all マルチルート時のパターン評価範囲(Pro)
fileConcat.allowOutsideWorkspace false パターンでの絶対パス指定を許可(Pro)
fileConcat.authServerUrl (既定のサーバー) 認証サーバー URL(通常は変更不要)
fileConcat.secretScanEnabled true Pro の機密情報チェック。false で停止
fileConcat.ollamaUrl http://127.0.0.1:11434 Ollama のベース URL(リモート URL では本文等が端末外へ送信され得る)
fileConcat.ollamaModel llama3.2 Ollama に導入済みのモデル名

インストール

  • Marketplace: 拡張機能ビューで「File Concat」を検索してインストール
  • VSIX: 拡張機能ビューの ... メニューから「VSIX からインストール」

開発

npm install
npm run compile
npm run lint
npm test

パッケージ化: npm install -g @vscode/vsce && vsce package

サポート

SUPPORT.md を参照してください。

ライセンス

LICENSE を参照してください(方針は検討中: docs/store/license-decision.md)。

パスを指定して結合(Pro)

右クリックメニュー「File Concat」または コマンドパレットの「パスを指定して結合してコピー(Pro)」を実行し、入力ボックスにパスをカンマ区切りで入力して Enter を押すだけで、結合してクリップボードにコピーします。

src/utils, README.md, docs
  • 区切りは , 、 ,。パスはワークスペースからの相対パスで指定します(マルチルートではフォルダ名から始めても構いません)。
  • カンマを含むパスは "dir,name/file.ts" のようにダブルクォートで囲みます。
  • glob や正規表現は解釈しません。使いたい場合は「箇条書き指定で結合」を使ってください。
  • .env・除外設定・サイズ・バイナリの判定は通常の結合と同じです。結果は履歴にも記録されます。

前回以外のみ結合(差分コピー)

コマンド「パスを指定して前回以外のみ結合してコピー(Pro)」は、同じ入力形式で、前回のパス指定コピーに含まれたファイルを除き、新しく追加されたファイルだけを結合します。

  • 比較はファイル単位です(フォルダ指定は展開後のファイルで比較します)。
  • 差分モードで実行した場合、次回の比較基準には「前回分として除外したファイル + 今回結合したファイル」が記録されます。
  • 記録するのはファイルの識別キー(ワークスペースと相対パス)のみで、結合本文は保存しません(端末内の workspaceState、最大 5,000 件)。
  • 前回の記録がない場合は、通知のうえ通常のパス指定として実行します。差分が 0 件の場合は、コピーも記録の更新も行いません。
  • 差分モードの実行は履歴に記録しません(履歴からの再実行が全件結合になり、実際のコピー内容と食い違うため)。
  • 除外ルール・メモ付加・機密情報チェック・統計表示は通常のパス指定と同じです。

メモ帳(Pro)

「メモ帳を開く(Pro)」で、ワークスペースごとのメモを編集できます。「結合してコピーするときに、このメモを自動で含める」をオンにすると、すべての結合コピー(通常・履歴からの再結合・パターン指定・パス指定・対象の編集)の先頭に、次の形式でメモが付きます。

===== MEMO: <タイトル> =====
(メモ本文)

===== FILE: ... =====
  • メモは端末内のワークスペース単位(workspaceState)に保存されます。プロジェクトのフォルダにはファイルを作らず、メモ保存機能自体からは送信しません。ただし、メモを結合結果に含めて Pro の機密情報チェックが有効な場合、その本文は Ollama 送信対象になります。
  • メモが空のとき、および Pro が無効のときは付加されません。
  • コマンド「結合時のメモ付加を切り替え(Pro)」でも、オン/オフを切り替えられます。
  • ショートカット Ctrl+Alt+M(mac は Cmd+Alt+M)でメモ帳を開けます。
  • メモ帳を開いたままウィンドウをリロードすると、自動でメモ帳が開き直されます(手動で閉じた場合は復元されません。Pro が有効でない場合は何も表示されません)。

1.5.0 の追加機能

複数メモ(Pro)

  • メモ帳で複数のメモ(最大 50 件)を作成・名前変更・削除できます。メモごとに「結合コピー時に含める」をチェックで選べます。
  • チェックしたメモ(本文が空のものを除く)が、一覧順にクリップボードの先頭へ付加されます。
===== MEMO: <タイトル> =====
<メモ本文>

===== FILE: <最初のファイル> =====
...
  • 旧版の1つのメモは、「メモ」という1件のメモとして自動で引き継がれます。
  • コマンド「結合時に含めるメモを選択(Pro)」で、含めるメモをまとめて切り替えられます。

メモの保存先

  • ローカル: 端末内のワークスペース単位(workspaceState)に保存します。
  • SSH 接続時: リモートホストの拡張機能ストレージ(globalStorage)に平文で保存します。別の端末・別の接続名から同じリモートフォルダを開いても、同じメモを参照できます。別端末で編集した内容は、メモ帳パネルを前面に戻すと反映されます。
  • どちらの場合も、プロジェクトのフォルダにはファイルを作らず、外部へも送信しません。
  • メモは平文で保存されるため、パスワード・APIキーなどの機密情報は書かないことを推奨します。

結合対象の編集画面(Pro)

  • ファイルを右クリックして「このファイルを対象から削除」できます。編集画面の候補から外すだけで、ディスク上のファイルは削除されません。「削除を元に戻す」で復帰できます。

統計表示(Pro)

  • 結合コピーの通知に、総文字数・バイト数(KB)・推定トークン数・上限に対する割合を表示します(メモ付加後の最終文字列が対象)。
  • トークン数は推定値です(外部へ問い合わせないため、実際の値とは異なります)。割合の分母は設定 fileConcat.contextWindowTokens(既定 200000)で変更できます。
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft