Skip to main content
MIRA supports the following document formats for upload and context injection. All parsing runs in a background worker thread — the UI never freezes.

Supported formats

ExtensionMIME typeNotes
.pdfapplication/pdfFull text extraction via pdf-parse. Scanned/image-only PDFs are not supported.
.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentParsed via mammoth — extracts text and table content.
.txttext/plainRead directly as UTF-8 text.
.mdtext/markdownMarkdown syntax preserved in the raw text injected into context.
.csvtext/csvParsed as structured text; headers and rows preserved.
.jsonapplication/jsonInjected as formatted JSON string.
.pytext/x-pythonPython source files.
.jstext/javascriptJavaScript source files.
.tstext/typescriptTypeScript source files.
.htmltext/htmlHTML source (not rendered — raw markup injected).

Size limit

The maximum file size per upload is 50 MB. Files exceeding this limit are rejected at upload with an error message.

Parse status

After upload, each document transitions through these states:
StatusMeaning
PendingDocument queued, worker not yet started
ParsingBackground worker is extracting and chunking text
DoneParsing complete — document is available for context injection
ErrorParsing failed (e.g. password-protected PDF, corrupted file)
When status is Error, hover over the document card to see the error message.

What gets injected into context

When a document is active in a session, its parsed text chunks are concatenated (respecting the engine’s context limit) and injected into the prompt as:
=== Document: filename.pdf ===
[chunked content here]
Multiple documents are concatenated with this separator pattern, in the order they appear in the Document Panel.

Unsupported formats

Images (PNG, JPEG, GIF, SVG), audio, video, Excel (.xlsx), PowerPoint (.pptx), and compressed archives are not supported. For Excel files, export to CSV first.
For large PDFs, only the most relevant chunks are injected to stay within the context budget. Use the chunking settings in Settings → Engine to tune chunk size and overlap.