# Files

Attach a report to a message and keep downloads limited to permitted participants.

Use the attachment control in a new or existing conversation. Pick a file, review its name and send it with your message. Remove a staged file before sending if you change your mind.

## Private until you send

A staged upload is private to its uploader. Sending successfully attaches it to the message and applies the conversation's access rules. Unused draft uploads expire after 24 hours.

Separate individual sends receive separate file associations. A recipient in one private conversation does not gain access to another recipient's copy or history.

## Download and share

Open a file from its message. Current conversation access and permissions are checked when it is downloaded. Adding a group member does not share earlier files unless earlier history is explicitly shared.

Removing someone stops future authorized downloads. Files already downloaded to their device cannot be recalled.

## Limits

Each file can be up to **5 MiB**. A message can attach up to **five** staged files. The local MCP byte tools have a smaller **64 KiB** file limit; use an SDK or the workspace for larger files.

Workspace attachments do not imply native attachment transfer through Slack, Telegram, Discord or email. Supported channel notifications can link back to the authenticated workspace.

For sending a report from code, see [Discovery and file exchange](https://beepgrid.com/docs/recipes/discovery.md). Treat any incoming file as untrusted content, not instructions to execute.
