What works well
Attach files when you want Roomote to:- inspect structured data without pasting it into the message
- read logs, config files, or source snippets as-is
- work from a spreadsheet or report export
- use screenshots and other images as direct visual context
Limits and API errors
A message can include up to 20 files and up to 16 MiB of decoded attachment data in total. The complete HTTP request body, including base64 encoding and other message fields, is capped at 24 MiB. Direct API requests that exceed the file count or decoded-data limit return HTTP 400 with{"error":"maximum 20 attachments"} or
{"error":"attachments exceed the 16 MiB total limit"}, respectively. A
request body over 24 MiB returns HTTP 413 with
{"error":"Message payload is too large"}.
Accepted file types
An attached
.r script can also drive an environment recipe: Roomote detects
the direct packages it uses and proposes an r-bioconductor environment, then
resolves those packages from the official CRAN and Bioconductor repositories.
See the environment lifecycle.
| Images | .png, .jpg, .jpeg, .gif, .webp, .svg |
How Roomote uses them
Text, code, spreadsheet, document, and presentation files are read into the task as attachment context. Images are passed through as image inputs so Roomote can inspect them directly..svg files are normally read as text
markup, but Discord treats an SVG reported with the image/svg+xml content type
as an image input.
Images never change which model handles your request. When the active model
accepts image input, it sees the image itself. When it does not, Roomote keeps
that model in charge and has the configured vision model (or, failing that,
the helper or coding model) describe the image on request, the same way a
coding task delegates visual inspection to a hidden subagent.
Audio transcription and video descriptions can use the separate Audio and
video model control in Settings > Models. It defaults to Same as coding
model. The selected or inherited audio and video model is authoritative for
both inputs. Fast sessions receive the files directly when their session model
is that model; otherwise, the audio and video model processes them separately.
Automatic audio transcription for Slack, Discord, Telegram, and Microsoft Teams
uses the deployment audio and video model. A per-task Audio and video override
does not change which model transcribes those incoming chat attachments.
That means you can ask things like:
- “Compare this export to the expected format and tell me what is broken.”
- “Read this config and explain why the service is failing.”
- “Check this customer PDF and draft the fix plan.”
- “Look at this screenshot and tell me what UI state it shows.”
Open and share artifacts
Artifact creation results can include two links:viewUrlopens the artifact in its owning task or session, where you can continue to use the surrounding workspace context.standaloneViewUrlopens the document, image, or file on its own page. Use it when someone needs a direct link to the artifact without navigating through the parent task or session.
open_artifact capability with the exact owning task or session and stored
path. The capability currently returns bounded content for supported text
artifacts up to 64 KiB; binary or oversized artifacts should be opened through
their artifact link or downloaded instead. Access is checked against the
owning task or session before content is read.
Videos from Roomote
For new screencasts, Roomote prefers final MP4 (H.264) artifacts optimized for playback while retaining the native recording. Visual proof may use the original WebM when conversion tools or time are unavailable, or conversion fails. This preference does not convert arbitrary uploads or replace existing artifacts. Task recordings remain available as uploaded artifacts. In Slack, you can ask Roomote to share a selected recording as a native video file, including one from an earlier task in the current session. This requires the Slack app’sfiles:write permission; existing installations need reinstall or workspace
admin reapproval after the scope is added. See
Slack video replies
for recording ownership and size limits.
WebM recordings are converted to MP4 for Slack delivery without replacing the
original artifact. If conversion or upload fails, or native delivery is not
available on the current surface, Roomote shares a direct link to open the file
on its own page, without an error or unavailability explanation. Roomote only
describes a video as attached when native delivery succeeds.
Best practices
- Attach the smallest file that shows the issue clearly.
- Add one sentence explaining what you want Roomote to do with the file.
- Remove secrets or credentials before attaching files unless your deployment is explicitly configured to handle that material.
- For spreadsheet or report exports, mention the tab, column, or row range that matters most.
- For PDFs and documents, call out the section or page if you already know it.
Common issues
- The attachment is huge. Trim it down or export just the relevant sheet, log window, or section. Text-extracted files larger than 8 MB are rejected.
- The attachment is a format not listed here. Export it as one of the accepted formats above.
- The task still needs more context. Add a short prompt that explains the question, expected behavior, or failure you want Roomote to investigate.