Files open in the side panel beside your chat as read-only preview tabs: the preview picks a viewer for the file's format, and you can switch viewers, zoom images and PDFs, and read a file without leaving the chat. The Workspace files tab shows the chat's folder as a file tree you can browse.
Note
Oda reads the file with your account's access. A preview never edits the file; to change it, open it in its usual application (Open files and folders in other apps). What you read in a preview never enters model requests, and opening one starts nothing in the chat.
Open a preview
Open the file: click a file in the Workspace files tab, choose Preview in sidebar on a file card, or click a file reference in a message or a file step in the chat.
The file opens as its own tab in the side panel, with its type glyph and its name.
Several files can be open at once. Each tab has a close control, and the add control opens another file. Right-click a tab for its menu; Escape closes the menu.
A tab belongs to one file, not to a name. Two files with the same name in different folders are two tabs, and the same file open in two chats has a tab in each.
When a chat step, a link or a search result names a line, the file opens in the text or code view and that line is brought into view.
The panel itself, its tabs and its sizes are covered in The side panel.
Browse workspace files
Open the side panel and choose Workspace files; the chat's folder opens as a tree.
Expand a folder to see inside it. Folders are read one level at a time, and a folder you reopen shows its earlier contents while it reads them again.
Click a file row to open its preview.
Folders come first, then files in natural name order, so file2.txt sorts before file10.txt. Hidden files such as .env appear with the rest. An entry that is neither a file nor a folder comes last, greyed, and hovering it shows Not a file or a directory, so it cannot be opened.
A symbolic link is listed with the kind of thing it points to, but the link itself does not open.
A folder with more than 2,000 entries is cut at the limit with Too many entries, showing only some of them. An empty folder reads Empty directory, and a chat whose folder has not been chosen yet reads This session has no workspace directory.; Add, rename or delete a workspace covers choosing a folder for a chat.
Reload in the tree's header reads the tree again in place and keeps what is already on screen while it does. The tree also follows changes in folders you have open.
The tree starts at the chat's folder and does not go above it. It is for reading: it has no search, filter, rename, drag and drop or right-click menu.
A folder that cannot be read says why:
Message
What it means
That directory is gone. It may have been moved or deleted.
There is nothing at that path any more.
That directory is outside the workspace, so the sidebar will not read it.
The tree and folder watching stay inside the chat's folder.
That is not a directory.
The path names something other than a folder.
Read failed: {message}
Something else went wrong; the detail after the colon says what.
Which viewer opens
File
Opens in
Text and code files, .log, and files with no extension or an unrecognised one
.md, .html and .svg files can also be read as their source text, and a .csv or .tsv file as Plain text.
Known binary types with no viewer, such as videos, audio files, archives and programs, show the file's type glyph with Preview is not available for this file type yet. and are not read at all. The tab offers Open, More ways to open and Show file location instead (Open files and folders in other apps).
Some formats are not supported at all, for example the macro-enabled .xlsm workbook.
Text files load in parts as you read them; images, PDFs, spreadsheets and HTML files are read whole, so a file over the preview's size limit is refused, never shown in part.
The file's full path. Folders along the path are dimmed, and hovering over it shows the full value.
Open with, when more than one viewer fits the file.
Line wrap, when the viewer supports wrapping long lines.
Read the file again, which reads that tab again at any time and affects only that tab.
Switch the viewer
Use Open with in the preview header to change how the same file is shown.
The control shows the viewer in use and lists the other viewers that fit the file; picking one switches the same tab to it and the file is read again.
Open with appears only when more than one viewer fits the file. PDFs, Word, Excel and PowerPoint files, and PNG images open in a single viewer, so they show no control. SVG and HTML files show it, because both can also be read as text.
Plain text is offered only for files that can be read as text.
Press Escape to close the list without changing the viewer.
Read code, text and Markdown
Code opens with highlighting for common languages, and with line numbers along the side. The numbers are for reading only: Copy copies the clean text without them, and the control reads Copied after you use it.
Text keeps arriving as you read: keep scrolling, or use Load more, to bring in the next part of a long file. Parts arrive in order, so a very deep line in a long file needs the earlier parts to load first.
A Markdown file opens as rendered text. Its images load through the chat's file access; an image stored beside the file waits until the file's full path is known, and an image that cannot load shows its alt text in place.
Reads follow your computer account's rights: Oda can read any file your account can open, inside the chat's folder or outside it when a link or a step points there. The tree and folder watching stay inside the chat's folder.
A file reached through a symbolic link is not read, even when the link points back inside the folder; a preview of it reports an error.
A file that refers to another file beside it, such as an image next to a Markdown file or a script next to an HTML page, resolves the reference from the referring file's folder.
A text read must decode as UTF-8 and contain no NUL bytes; a file that does not is not shown as text.
A part over its limit is refused rather than shortened, so you never see part of a file that looks whole.
Read
Limit
One part of a text file
up to 5,000 lines and 2 MiB; the part that holds the last line marks the end of the file
One part of a binary file
2 MiB
A whole file
32 MiB
One folder listing
2,000 entries, then cut with a note
Keep the preview up to date
The preview follows the file: while a preview tab stays open, Oda watches the file and reloads the view when it changes, so you read the current version. For each chat and each file, one watch serves every open preview of it.
If it is still showing the previous content, it says so: The file has changed, showing the previous content. Use Reload next to the notice to read the file again; your place in the file is kept.
If a watch is interrupted, the preview reports it instead of going on with text that may be out of date. Where watching is not available at all, nothing is marked as failed, and Read the file again still reads the file on demand.
A file that is deleted, moved or replaced while you read it is reported as an error; a preview never answers with content that does not match the file. A file that returns at the same path can be picked up again.
Zoom an image or a PDF
Images and PDFs share the floating zoom control at the bottom edge of the pane.
Fit width is the default: the content follows the pane's width as you resize it, and fit width never enlarges content past its natural size. At 100% an image shows at its natural size.
The menu offers 25%, 50%, 100%, 150% and 200%; the minus and plus buttons step by 25% within the range 25% to 400%.
On a trackpad, pinch to zoom the content around the pointer; the percentage follows the gesture.
Move the pointer toward the bottom edge of the pane, or focus the control, to bring it up; it stays while you hover over it, focus it or keep its menu open, and fades out after a pause. On a touch screen it stays visible, and Escape hides it.
The preview does not pan by dragging; scroll the pane to move around zoomed-in content.
Your zoom stays with the tab while it is open; tabs of the same file keep their own zoom and position. Closing the tab forgets it, so the next preview opens at Fit width.
Look at an image
PNG, JPEG, GIF, WebP, BMP, ICO and SVG files open as pictures at Fit width: a wider image shrinks to the pane's width, a smaller one keeps its natural size, and the pane never scrolls sideways.
Zooming keeps the same picture on screen, so an animated image keeps playing.
An image that cannot be decoded says This image could not be displayed., and one whose complete contents do not arrive says Image preview requires the complete file contents.; a partial picture is never shown.
An SVG file shows as a picture; its code does not run.
The folder's branch
When the chat's folder is inside a Git repository, the message box shows the checked-out branch, or the short commit of a detached checkout; hover it for the full name or commit. Nothing appears when the folder is not in a repository or the state cannot be named.
Oda reads the repository's own files to work this out; it never runs git commands, and the state follows a checkout or a new repository without a reload.
Loading and failure states
While content arrives, the pane shows a spinner with no text; its label names the state for screen readers, such as Reading…. Content that has already loaded stays visible while more arrives.
When a read fails, the preview uses one shared set of messages:
Message
What it means
File not found. It may have been moved or deleted.
The file is no longer at this path.
This page exceeds the {limit} limit and cannot be read.
The file, or the part being read, is over the preview's size limit. Open it in its usual application.
Not a regular file, nothing to display.
The path is a folder, a link or something other than a regular file.
Preview is not available for this file type yet.
The file has no viewer, or it is not text that a text read can show.
Read failed: {message}
Something else went wrong; the detail after the colon says what.
Where trying again can help, the preview offers Retry. If a failure comes after some content has loaded, the loaded content stays and Retry appears below it.
Questions, answered
How do I open a file in the preview?
Click a file in the Workspace files tab, choose Preview in sidebar on a file card, or click a file reference in a message or a file step in the chat. The file opens as its own tab in the side panel, with its type glyph and its name.
How does the preview choose a viewer for a file?
By the file's format: images, PDFs, Word and PowerPoint files, spreadsheets, HTML pages and text files each open in the viewer that fits them, as in the table above. A file with no viewer of its own opens as plain text when it can be read as text.
Why does my PDF have no Open with control?
Open with appears only when more than one viewer fits the file. PDFs, Word, Excel and PowerPoint files, and PNG images open in a single viewer, so they show no control. SVG and HTML files do, because both can also be read as text.
Why does the preview say it is showing the previous content?
The file changed while you were reading it, and the preview is still on the version it loaded. Use Reload to read the file again without losing your place; the preview also refreshes by itself when the file changes.
Can I zoom images and PDFs the same way?
Yes. Both use the same floating zoom control: Fit width by default, the preset sizes 25%, 50%, 100%, 150% and 200%, steps of 25% up to 400%, and trackpad pinch. Your zoom stays with the tab while it is open; closing the tab resets it.
Why can't my large file be previewed?
A part of a file over its limit, or a whole file over 32 MiB, is refused instead of shortened, so you never see part of a file that looks whole. The preview says This page exceeds the {limit} limit and cannot be read.; open the file in its usual application instead.
Does Oda have to stay inside the workspace folder to read a file?
No. Oda reads the files your computer account can open, inside the chat's folder or outside it when a link or a step points there. Browsing is narrower: the Workspace files tree and folder watching stay inside the chat's folder.
Why can't Oda read a file through a symbolic link?
A read refuses a file reached through a symbolic link, even when the link points back inside the folder. The tree still shows the link and marks what it points to. Open the file in its usual app to read it there.
Why does a folder show only some of its entries?
A folder holding more than 2,000 entries is cut at 2,000 and the tree says Too many entries, showing only some of them. Open the folder in your own app when you need the full list.
Can I rename or delete files from the tree?
No. The tree and its previews are read-only. To work with the files yourself, open the folder in your own app (Open files and folders in other apps); the changes Oda makes in a chat appear in the chat's changed-files card (Review changed files).
Does Oda see what I read in the preview?
No. What you read in a preview never enters model requests. The preview is for you.
Why does a video or an archive show no preview?
Videos, audio files, archives and programs have no viewer, so the side panel shows the file's type glyph with Preview is not available for this file type yet. and reads nothing. Use Open or Show file location to work with the file on your computer.