---
title: "ファイル・画像の添付"
description: "--file と --image で入力にファイルや画像を添付する方法。"
---

## `--file`（ファイル内容のコンテキスト添付）

`--file <PATH>` を指定すると、ファイルの内容をプロンプトのコンテキストとして添付できます。
同じオプションを繰り返して、複数のファイルを添付することもできます。

```sh
lait --file src/main.rs --file README.md "このコードを説明して"
```

### 追加される順序

各ファイルは、ファイル名付きのフェンスドコードブロックとしてプロンプトの末尾に追記されます。
標準入力（パイプ）と併用した場合は、次の順序で連結されます。

1. プロンプト引数
2. パイプされたテキスト
3. `--file` で指定したファイルの内容

添付ファイルの内容に ` ``` ` が含まれる場合は、コードブロックが途中で閉じないようフェンスの
長さを自動的に広げます。

### PDF ファイル

先頭が `%PDF-` で始まるファイル（PDF）は、テキストとしてプロンプトに埋め込む代わりに、ファイル
そのものを base64 エンコードしてユーザーメッセージの `file` コンテンツパートとして送ります。
PDF の読み取りはモデル（プロバイダー）側に任せるため、PDF 入力に対応したモデルとサーバーが必要です。
対応していないサーバーでは、サーバー側のエラーになります。

```sh
lait --model "PDF対応モデル" --file report.pdf --file notes.md "この資料を要約して"
```

```json
[
  { "type": "text", "text": "この資料を要約して\n\n````notes.md\n...\n````" },
  { "type": "file", "file": { "filename": "report.pdf", "file_data": "data:application/pdf;base64,..." } }
]
```

テキストのファイルは従来どおりプロンプトに埋め込まれ、PDF だけが別のパートになります。
[Responses API](/config#responses-api-を使うapi-responses) のモデルでは `input_file` パートとして
送ります。ワークフローの `prompt`/`agent` ステップの `files:` でも同じように扱われます。

### 制限

- UTF-8 として読めず、PDF でもないバイナリファイルはエラーになります。画像を渡したい場合は、
  次の `--image` を使ってください。
- `--file` で添付するファイルの合計サイズ（PDF を含む）には 10 MiB の上限があります。超過すると
  エラーになります。

## `--image`（vision モデル向けの画像入力）

`--image <PATH_OR_URL>` を指定すると、vision 対応モデルに画像を渡せます。同じオプションを
繰り返して、複数枚を添付することもできます。

```sh
lait --model "vision対応モデル" --image photo.png "この画像を説明して"
lait --model "vision対応モデル" --image https://example.com/cat.png "何が写っていますか?"
```

### 画像の扱い

| `--image` の値 | 送信形式 |
| --- | --- |
| ローカルファイルパス | 内容を base64 エンコードした data URL（`data:image/png;base64,...`）に変換して送信します。 |
| `http://`/`https://` から始まる値 | そのまま `image_url` として渡します。 |

対応形式は PNG / JPEG / WebP / GIF です。まずマジックバイトで判定し、判定できない場合は
拡張子から推測します。どちらでも判定できない場合はエラーになります。

### リクエスト形式と併用

`--image` を1つ以上指定すると、ユーザーメッセージの `content` は文字列ではなく、次のような
配列になります。画像を指定しない通常のリクエストの形式は変わりません。

```json
[
  { "type": "text", "text": "この画像を説明して" },
  { "type": "image_url", "image_url": { "url": "..." } }
]
```

`--stream` と併用できます。`--mcp`/`--subagent`（ツール呼び出し）とも併用できます。
