---
title: "Attachments and local files"
description: "Upload reference files to a project, point the AI at specific files in a message, and share a folder from your computer."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.myspec.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Attachments and local files

Give the AI more to work with. Upload documents to a project as
**attachments**, point the AI at a specific file in your message, or share a
folder from your computer with the **Local Workspace**.

## Attachments

Attachments are reference files that belong to a project: a product brief, an
API description, a spreadsheet, a screenshot. Every chat in the project can use
them, and the AI can list, read and search them when it needs to.

Uploading and removing attachments need **Write** access on the project. With
**Read** access you can preview and download them, but the upload and remove
buttons don't appear. See
[Teams and project access](/guides/teams-and-project-access/).

### Upload an attachment

In the file explorer, on the project page or in a chat:

- Select **Upload attachment** (the **+** next to **Attachments**) and choose
  one or more files.
- Or drag files from your computer onto the **Attachments** section. It shows
  **Drop files to upload**.

In the message box of a chat:

- Select **Upload attachment** and choose files.
- Or drag files from your computer onto the message box.
- Or paste an image, such as a screenshot (PNG, JPEG, GIF or WebP).

A file you upload from the message box is also referenced in that message, so
the AI knows which file you mean.

While a file uploads, the explorer shows **uploading...** next to it. If the
upload fails, it shows **upload failed** and a message explains why.

### Size limit and file types

| | Accepted |
|---|---|
| Size | Up to 10 MB per file |
| Documents | PDF, Word (`.docx`) and Excel (`.xlsx`) |
| Images | PNG, JPEG, GIF and WebP |
| Text | Any UTF-8 text file: Markdown, plain text, CSV, JSON, YAML, XML, HTML, SVG, source code and similar |

MySpec checks what a file contains, not only its name. Other files are refused,
including older `.doc` and `.xls` files: save them as `.docx` or `.xlsx` first.
A file over the limit is refused with a message that it exceeds the 10 MB size
limit.

If you upload a file with the same name as an existing attachment, MySpec keeps
both and adds a number to the new one, for example `brief (1).pdf`.

Attachments count toward your organization's **Storage** limit. When the limit
is reached, MySpec tells you instead of uploading the file. See
[Usage and limits](/guides/usage-and-limits/).

### Preview an attachment

Select an attachment in the explorer to preview it. The preview shows images,
PDFs, text files, Word documents and Excel workbooks (one tab per sheet).

- **Download** saves the file.
- **Open in new tab** opens a PDF in its own browser tab.
- Other file types show **Preview not available for this file type**. Download
  them instead.

### Remove an attachment

Hover over the attachment in the explorer and select the remove button (**×**).
The attachment is removed from the project straight away. There is no
confirmation, and you can't undo it in the app.

## Reference files in a message

To point the AI at a specific spec file or attachment, reference it in your
message:

1. Type `@` in the message box, or select **Reference a file**.
2. Type part of a name to filter the list. It has sections for **Spec Files**,
   **Attachments** and, when you share a folder, **Local Workspace**.
3. Choose a file with the mouse, or with the arrow keys and Enter.

The reference appears as a chip in your message. You can also drag a spec file
or an attachment from the explorer onto the message box.

## Share a folder from your computer

The **Local Workspace** lets the AI read files in a folder on your computer,
straight from your browser. There is nothing to install.

> **Note**
>
> The Local Workspace needs a browser that lets websites open a local folder.
> If yours can't, the explorer shows **Requires Chrome or Edge 86+**.

### Mount a folder

1. Open a chat. In the file explorer, find **Local Workspace** and select
   **Mount folder**.
2. Choose the folder. Your browser asks whether MySpec may view its files;
   allow it. MySpec asks to read files only, never to change them.
3. The folder appears in the explorer. A chip above the message box shows its
   name, the number of files and their total size.

MySpec remembers the folder for this project in this browser. When you come
back, your browser may ask again: select **Grant** next to **Access required**.

### What the AI can see

While a folder is shared with a chat:

- Every message you send includes the folder's name and a list of its files and
  folders (paths and sizes, up to three levels deep). The list does not include
  file contents.
- The AI can list any folder and read text files in it when it needs to,
  without asking you each time. The chat shows a **Listing local folder** or
  **Reading local workspace** card when it does.
- When you reference a local file or folder with `@`, your browser reads it and
  sends it with your message. You can reference up to 10 local workspace files
  per message.
- Binary files are skipped, and very large files may be cut short.

Whatever the AI reads is sent to MySpec as part of the chat.

The list of files leaves out `.env` files, dependency and build folders (such as
`node_modules`, `.git`, `dist` and `build`), images, archives, PDFs and Office
files, and simple patterns from the `.gitignore` at the top of the folder.

> **Share your project folder, not your home folder**
>
> A file left out of the list can still be read if the AI asks for it by its
> path. Mount only the folder you want the AI to see, and keep credentials and
> other secrets out of it.

### Refresh, stop sharing or unmount

- **Refresh context**, on the chip above the message box, scans the folder
  again after you change files.
- **Remove context** stops sharing the folder with the AI in this chat. To share
  it again, unmount and mount the folder.
- **Unmount workspace** (the **×** next to **Local Workspace**) disconnects the
  folder, and MySpec forgets it in this browser.

The AI reads the folder through your open browser tab. If you reload the page or
lose your connection while it is reading, MySpec asks **Resume local workspace
access?** when you come back. Select **Retry now** to let the AI continue; you
may be asked to grant access to the folder again. **Not now** leaves the request
waiting.

## Local Workspace or the `reverse` bridge?

The [local MCP server](/mcp/local-server/) has a `reverse` command that also
lets MySpec's AI read a folder on your machine. The two work differently:

| | Local Workspace | `reverse` bridge |
|---|---|---|
| Runs in | Your browser tab | A terminal, as a command you start |
| Needs | Chrome or Edge | Node.js 22 or later |
| Available in | Every chat | Brownfield sessions |
| The AI can | List folders and read text files | List, read and search files, and pack the whole codebase into one overview |
| Lasts | While the chat is open in your browser | While the command runs |

For work on an existing codebase, see
[Work on an existing codebase](/guides/brownfield/).

Source: https://docs.myspec.dev/guides/attachments/index.mdx
