Attachments
Drop files onto the window, paste them, or pick them from the + menu next to the message box. Loach reads each file on your machine and adds its contents to your message - there is no separate upload step, and nothing leaves your machine unless you are using a cloud provider.
Adding files
- + menu - Add files opens the native file picker; pick as many files as you like. Ctrl + U opens the same picker.
- Drag and drop - drop files anywhere in the window while a message box is on screen. The box reads Drop files here to attach while you drag. Drops are refused while a dialog such as Settings is open over the chat.
- Paste - Ctrl + V in the message box attaches any files on the clipboard, such as a screenshot or files copied in your file manager. Plain text pastes as text. When the clipboard holds text along with a picture of it - cells copied from Excel, a paragraph from Word - the text is pasted and the picture ignored.
Each file becomes a chip above the input, after any persona, tone and Library source chips. Click a chip’s × to drop it before sending. You can send files without typing anything; the chips leave with the message. Files you haven’t sent yet stay with the chat you attached them in: switch to another chat and back, and they are still waiting in its message box (until you quit Loach).
The + menu has two more items, and neither copies files into a message:
- From Library - adds sources saved in your Library to the chat. They are used on every message until you remove them. Typing
#in the message box does the same. - Add directory - lets the model list, read and edit the files in a folder for the rest of the chat; the item reads Change directory once the chat has a folder. On a Space’s page, where the message box starts a new chat, it is greyed out: send the first message, then add the folder in the chat that opens. See Work in folders.
Supported file types
Loach sorts every file into one of four kinds:
- Images - PNG, JPEG, WEBP and GIF. Sent to the model as images alongside your text, so they need a vision-capable model. Large images are scaled down on the way out.
- Text and code - about seventy recognised extensions (Python, TypeScript, Rust, Go, JSON, YAML, Markdown, CSV, SQL, shell scripts,
Dockerfile,Makefileand so on) plus anything with atext/*type. The file is added verbatim inside a code block. Loach works out its encoding: UTF-8 and UTF-16 (with or without a byte-order mark) are read as such, and anything else as the legacy Windows code page for your system’s display language - Windows-1250 for Polish, Czech, Slovak, Hungarian, Croatian, Slovenian and Romanian, Windows-1252 for every other language. - Documents - PDF and DOCX. Loach extracts the plain text and adds that; a PDF is read page by page, each page under a “Page N” header, and a page that can’t be read is skipped. Layout, formatting and embedded images are lost. A scanned PDF with no text layer has nothing to extract, and the model is told so.
- Everything else - legacy
.doc, archives, binaries and other image formats such as BMP, TIFF, HEIC or SVG. These attach, but Loach can’t read them; see below.
How attachments enter the prompt
When you send, your typed prompt comes first, followed by one block per text file or document, in the order you added them. Each block opens with a header naming the file (“Attached file”, “Attached PDF” or “Attached Word document”), so the model knows what it is looking at. Pages pulled in by web fetch come after the attachments.
Your bubble in the transcript shows only what you typed, with the files as chips, but the extracted text is stored with the message. It is sent again with the chat history on every later turn and counts toward the context window - the context usage popover lists it as of which attachments.
Images work differently: they reach the model only with the message they are attached to, and again if you regenerate that reply. Later turns don’t resend them, so attach the image again if you want the model to take another look.
Attachments belong to the message they came with. To use them in other chats, pick Save attachments to Library (Save attachment to Library for a single file) in your message’s … menu: each readable file becomes a Library item. A scanned PDF or an empty document is refused, since there is no text to keep.
Image scaling
Before an image goes to a model, Loach scales it down: a full-size photo costs thousands of image tokens, and many local models read it worse, not better. Out of the box the longest side is capped at 1,024 px. Scaling happens each time a message is sent, so the image stored with your chat stays the original - that is what the preview shows and Save writes. An image is never enlarged, and one already within the limit goes as it is. A JPEG stays a JPEG; other formats go as PNG, which keeps transparency. An image Loach can’t decode is sent unchanged.
Scaling covers images attached to a message (again when you regenerate its reply), images uploaded to a Space and Library images. Every place that sets it offers the same control:
- Default - follow the level above. The line under the control says which setting that is and what it does.
- Scale down - shrink images to the size you enter, in px (the longest side, 64 to 8,192) or % (a share of the original width and height, 1 to 100). The number is saved when you press Enter or leave the field, and a value outside the range is brought into it.
- Original - send images at their original size, up to the 20 MB file limit.
| Where | What it covers |
|---|---|
| Settings → Features → Image scaling | The whole app: the setting every other level falls back to. It has no Default option. |
| Settings → Library → Images | Library images, in chats and Spaces that don’t set their own |
| A Space’s Settings tab → Image scaling | The Space’s chats: attached images, the Space’s own uploads and its Library images |
| The chat’s Parameters panel → Images | That chat only |
The most specific level that sets it wins. For attached images and a Space’s uploads that is the chat, then its Space, then the app. Library images check the Library’s setting before the app’s: chat, Space, Library, app. Private Chat has no setting of its own and always follows Settings → Features.
Caps and truncation
To keep the prompt manageable, Loach applies three limits:
- 20 MB per file - a bigger file is refused, with “name is larger than 20 MB.” under the message box.
- 200,000 characters per file - a longer text file, PDF or DOCX keeps only its first 200,000 characters. Its chip in the message box gets an amber truncated pill, and a note at the cut tells the model what was left out (for a PDF, how many of its pages it got).
- 500,000 characters per message - counted across your prompt, every attachment and any fetched pages. Earlier attachments win: one that only partly fits is clipped with a note to the model, and files with no room left are listed by name in a short footer, so the model knows they exist and can ask you for an excerpt. Neither case shows a pill on the chip.
For very large documents, paste the section you actually want reasoned about instead of dropping the whole file. The model gets cleaner context and you burn fewer tokens.
Files Loach cannot decode
Legacy .doc files, archives, binaries, unsupported image formats and anything else Loach does not parse still attach. The file is kept with the message and the model is told its name, but none of its content. The model can still acknowledge that “you attached report.zip” and ask for a usable version, and you can open the chip and Save the file back out.
Previews
Click a chip - in the message box or on a sent message - to preview it without leaving the chat. This covers files you attached, images returned by MCP tools and PDFs produced by the built-in pdf tool alike. Loach picks the viewer based on what the file is:
- Images - open in a lightbox with a Save button. Click the dim backdrop or the × to close.
- PDFs - open as a scrollable preview that renders each page as you reach it, with Save writing the original file. This needs the PDF’s original bytes, which Loach keeps for a PDF still in the message box and for PDFs from the
pdftool - not for a PDF you have already sent in a regular chat. - Text and code - open in the code canvas under the file’s name, with highlighting, and with Export defaulting to the original file name. An
.htmlor.htmfile also gets the canvas’s HTML preview, to see the page rendered. - Everything else - DOCX files, files Loach can’t decode, sent PDFs and any PDF that fails to render open a card reading Preview not available, with a Save button so you can still pull the file back out. For a PDF or DOCX that has already been sent, Save writes the extracted text as a
.txtfile, so keep your original.
Private Chat takes files from its own + button only. Dropping files is refused while it is open, so nothing lands in the regular chat behind it, and pasting a file doesn’t attach it. Text and code chips open the file card instead of the canvas, and files on sent messages show as plain name labels.