Type @ in the message box to point Oda at something outside your message: a file or folder of the workspace, a helper this chat has started, or an earlier chat. Your pick becomes a reference chip in the message, and Oda opens it with its own tools while it works. This page covers the @ menu; Slash commands and references covers the / side of the same menu.
Open the menu and pick an entry
Type @, or @ followed by a few letters. The menu opens above the message box.
Keep typing to narrow the list; rows you have already seen stay while it refreshes.
Pick an entry with Enter, or by clicking it. The pick is added to the message you are writing; nothing is sent yet.
Leave the menu with Escape or Shift+Tab without picking anything.
The menu holds three groups, in this order: Files & folders, then Subagents (the helpers this chat has started; see Subagents), then Sessions (your earlier chats).
@ starts a mention at the start of the message, after a space, or after punctuation. Inside an address such as user@host, or straight after a word or number, it stays ordinary text.
A row carries an icon and a name; a file row can also show the folder it sits in. A chat that sits in another folder is listed with that folder and a short age, such as 2h or 3d; a chat in the folder you are working in shows only the age, and when Oda cannot tell the folder the row reads (no cwd).
Chats are matched against their titles and folders, not against the messages inside them; to look through what was said, use search in your chats in the sidebar.
Browsing changes nothing in your chat: looking through the menu, narrowing it and drilling into folders have no effect. Only a pick adds to your message.
How file suggestions are found
As you type after @, Oda suggests paths from the chat's folder:
A plain word matches across the folder tree, for example @budget. The best matches come first: an exact name, then names that start with your text, then names containing it, then paths containing it, then looser matches.
When matches are otherwise equal, a folder comes before a file, a shorter path before a longer one, and the rest in alphabetical order.
Type a slash after a folder's name to look inside it directly: @src/ lists what src holds.
The list shows up to 20 file and folder suggestions; type more of the name to narrow it.
Hidden files stay out unless you begin what you type with a dot, for example @.env.
With a path in quotes, such as @"src/my folder", the menu searches files and folders only, never your chats.
The suggestions match names and paths; they do not look inside files.
Folders the suggestions skip
To keep the list short, the suggestions skip common build and cache folders:
lib is not skipped, so projects that keep source files in a lib folder stay findable.
Oda does not read .gitignore files to decide; the list above is its own.
A folder reached through a symbolic link is not searched.
These are the skips of the @ suggestions. Oda's file searches keep their own list; see Finding files and text.
Browse a folder before you pick
Folder rows end with a slash (/) and offer two actions:
Enter, or a click on the row, picks the folder itself.
Tab on the highlighted row, or a click on the row's chevron, looks inside instead: the menu stays open and lists the folder's contents.
While a folder row holds the highlight, it shows a Browse folder caption and its Tab keycap.
A drilled listing publishes a breadcrumb above the list, starting at Workspace. Click an earlier step to go back up; the folder you are in is not clickable, and the breadcrumb disappears when the menu closes.
Drilling leaves the path as plain text in the message box, so you can keep editing it, press Tab again to go deeper, or pick the folder or a file when you are ready.
What a pick leaves in your message
A folder becomes a reference with a trailing slash, such as @src/.
A file becomes a reference to that file; a path that contains spaces is written in quotes, such as @"docs/design notes.md". A path with characters a mention cannot carry, such as a double quote or a control character, cannot be written as a mention.
A chat becomes a chip that shows the chat's title, with a small chat-bubble glyph.
A helper from Subagents becomes a reference to that helper.
A reference is one piece of the message: the arrow keys step over it in one move, and Backspace removes it whole. The message box covers removing one.
Click a file reference to open its preview in the side panel: Preview files in Oda.
When an entry is missing
Entries Oda cannot reference are left out of the list rather than shown broken.
Oda builds a list of the chat's folder and refreshes it as work goes on. A file you have just created can be missing for a moment while the list is rebuilt; type a little more of its name, or try again shortly.
The list behind the suggestions holds up to 50,000 files and folders. In a larger workspace some files can fall outside it; write the path yourself to mention one.
The suggestions stay inside the chat's folder. For a file outside it, write the path yourself: a relative path resolves from the chat's folder, and an absolute path names a file or folder on this computer.
If one part of the menu cannot answer, it shows no rows for that part and no error, while the other parts keep listing.
Entries change as you type: when your text moves on, results for the earlier text are dropped, so the list always belongs to what you last typed.
What happens when you send
A reference tells Oda what to look at; Oda opens the file, folder or chat with its own tools when the task needs it, and the read shows in the chat as a step (Reading files and images).
If Oda cannot open a referenced chat while working on your message, that turn stops with the reason.
Questions, answered
What can I point Oda at with the @ menu?
Files and folders of the workspace, the helpers this chat has started, and your earlier chats. The groups appear in this order: Files & folders, Subagents, Sessions.
Why did the @ menu not open when I typed it?
The menu needs @ at the start of the message, after a space, or after punctuation. Inside an address such as user@host, or straight after a word or number, the @ stays ordinary text, and no menu opens.
What does a mention look like once it is in my message?
A folder is written with a trailing slash, such as @src/; a file becomes a reference to that file, in quotes when its path contains spaces, such as @"docs/design notes.md". A chat becomes a chip with the chat's title, and a helper from Subagents becomes a reference to that helper. A chip is one piece: the arrow keys step over it in one move, and Backspace removes it whole. Clicking a file reference opens its preview; see Preview files in Oda.
How do I mention a path with spaces?
Type the path in quotes, for example @"src/my folder". With quotes, the menu searches files and folders only, and never your chats.
How do I browse a folder before picking a file from it?
Press Tab on the highlighted folder row, or click the row's chevron. The menu stays open and lists the folder's contents, with a breadcrumb starting at Workspace; clicking an earlier step takes you back up. The folder you are in is not clickable. Pick a file with Enter, or drill deeper with Tab again.
What do the folder and time next to a chat mean?
A chat that sits in another folder is listed with that folder and a short age, such as 2h or 3d. A chat in the folder you are working in shows only the age, and when Oda cannot tell the folder the row reads (no cwd).
Why is a file I expected not in the list?
A file you have just created can be missing for a moment while Oda refreshes its list of the chat's folder; type a little more of the name. Build and cache folders are skipped, the list holds up to 50,000 entries, and entries Oda cannot reference are left out instead of shown broken.
Which folders do the suggestions skip?
Build and cache folders: .git, node_modules, dist, build, out, coverage, target, .next, .nuxt, .turbo, .venv, __pycache__, .pytest_cache, .mypy_cache and .gradle. lib is not skipped, and Oda does not read your .gitignore files to decide.
Why does a hidden file, such as .env, not appear in the suggestions?
Hidden files stay out of the suggestions unless you begin what you type with a dot: @.env offers it.
Does mentioning a file make Oda read it?
No. A mention is a pointer at a path; Oda reads the file only when the task needs it, and the read appears as its own step (Reading files and images).
Can I point Oda at a file outside the chat's folder?
Yes, by writing the path yourself: a relative path resolves from the chat's folder, and an absolute path names a file or folder on this computer. The @ suggestions stay inside the chat's folder; to browse it, open Workspace files in the side panel (Browse workspace files).
Why did my run stop when I mentioned an earlier chat?
A chat reference is prepared once your message is sent. If Oda cannot open that chat, the turn stops with the reason.