The side panel of a chat can hold your own terminal: a shell where you type commands yourself, starting in the chat's workspace folder. It belongs to you alone: Oda does not type in it, does not read its output, and nothing from it joins the chat. The terminal is available in the DataMind Oda desktop app; in the VS Code extension the tab stays off, since VS Code has its own terminal.
Open a terminal
Open the side panel next to your chat and choose New terminal on its Start page (the card reads Run commands in the Session workspace). The shell you used last opens in a new tab, starting in the chat's workspace folder; the first time, it is the environment's default shell.
To use a different shell, open the arrow beside New terminal (its name for screen readers is Choose shell) and pick one from the list. Your pick opens right away and is remembered for later terminals.
To open another terminal, use New tab in the panel and choose New terminal again. Each terminal gets its own tab, and one tab holds one terminal.
While a terminal starts, its tab reads Reading terminal environment…, then Starting…, then Connecting…; the shell's screen appears once it is attached.
The terminal comes from the Terminal tab switch under Settings > Developer > Advanced features; if the card does not appear, check that switch first. Advanced features covers the switches.
Choose your shell
The list shows the environment's default shell first, then the shells found on this computer from zsh, bash, fish, pwsh, powershell and cmd. Where the environment names no default, the default is /bin/sh on macOS and Linux or cmd.exe on Windows.
Only shells Oda can verify are offered. A shell path it cannot verify is refused with Selected shell is not available in this execution environment, and Oda does not start a different shell in its place.
Your last choice is remembered on this computer and marked in the list. If the remembered shell is no longer installed, the default shell starts instead.
Tab completion and start-up files work as they do in that shell outside Oda.
Type, name and resize
Type and run. What you type reaches the shell as typed, including Tab and control combinations.
Rename. Double-click the tab's title and type a name of 1 to 120 characters into the Terminal name field. Press Enter or click away to save; Escape cancels.
Resize. The terminal refits its text when you resize the side panel or the window. A new terminal starts at 80 columns by 24 rows (smaller when the environment caps it lower), and the screen is capped at 500 columns by 200 rows.
Scroll back. The screen keeps about the last 1,000 lines; older lines drop off.
No splits. A terminal does not split inside its tab; to keep two shells side by side, open another terminal.
Messages the tab shows
Disconnected. A connection hiccup stopped the screen updates. The screen stays as it was and the tab offers Reconnect; the shell keeps running, and commands are not replayed or stopped by the reconnection.
Terminal error. The terminal could not continue; the note carries the reason.
This view is read-only. Another view of the same terminal owns the keyboard. The tab offers Take control; the shell keeps running either way.
Process exited (0). When the shell exits, its tab stays with the final output and the exit code, and offers New terminal. The shell is never restarted on its own.
Unavailable. If the terminal cannot start, it reads Unavailable and offers Retry.
What stays running
Collapsing the panel, switching tabs or chats, and floating or full-screen views do not stop the shell: a hidden terminal keeps running, and a busy command is not stopped by a timer.
Reloading Oda reattaches each terminal tab to its shell and restores its screen.
Quitting Oda ends the terminal processes. A terminal tab then comes back showing This terminal no longer exists. Open a new terminal., with a New terminal button that replaces the tab with a fresh terminal. Nothing restarts on its own.
A terminal that no open tab holds is closed after about two hours without activity. Only time in which the shell is definitely idle counts, so a command that keeps working is not reclaimed. Oda can read idleness only for bash and zsh on macOS and Linux; other shells, and every shell on Windows, are not closed by this timer, so close their tabs when you are done.
Closing a tab removes it at once and ends the shell and everything running in it, in the background. Detaching a view or hiding the tab never ends the shell.
A closed terminal cannot be reopened: open a new terminal instead.
If ending the processes cannot finish, the app remembers the request and retries it; you do not need to do anything.
An exited terminal stays visible and keeps counting toward the chat's terminal limit until you close it.
Limits
What
Limit
Terminals in one chat
8 at a time, counting exited terminals and ones still opening
New terminal
80 columns by 24 rows, smaller when the environment caps it lower
Screen
up to 500 columns by 200 rows
Scrollback
about the last 1,000 lines
One input
64 KiB
Terminal name
1 to 120 characters
Unattended close
after about 2 hours without activity, only when no open tab holds the terminal
Your shell, not Oda's
Commands run with the rights of your own account on this computer, like any shell you open yourself. Oda never elevates them, and the chat's access mode, its approval prompts and Oda's sandbox do not apply to what you type here; changing the access mode leaves the terminal as it is.
Oda does not use this terminal: it does not type in it, it does not read its output, and nothing from it joins the chat.
Is this the same as the shells Oda runs commands in?
No. Oda keeps its own shells for the commands it runs itself, and it never uses this one: it does not type in your terminal or read its output, and nothing printed here joins the chat. Those shells are described in Persistent shells; the reference pages for them are Terminal sessions and Terminal tools.
Do the chat's access modes and approvals apply to my terminal?
No. Commands you type run with the rights of your own account, and they are not checked by the chat's access mode or by Oda's approval prompts. Nothing widens your rights for them, and changing the access mode does not change the terminal. The modes are explained in Workspaces, files and permissions.
Why is there no Terminal tab?
The terminal comes from the Terminal tab switch in Settings > Developer > Advanced features, and the switch applies immediately. If no Terminal tab appears, that switch is off; turn it on there, or ask your administrator if your company keeps it off. In the VS Code extension the terminal stays off, since VS Code has its own terminal. See Advanced features.
Does the terminal keep running if I collapse the panel or switch chats?
Yes. Collapsing the side panel, switching tabs or chats, and floating or full-screen views leave the shell running, and a busy command is not stopped by a timer. The shell ends when you close its tab or quit Oda.
What happens when I close a terminal tab?
The tab disappears at once, and the app ends the shell and everything running in it, in the background. A closed terminal cannot be reopened, so open a new one when you need it. If the app cannot finish ending the processes, it remembers the request and retries it; you do not need to do anything.
Do my terminals come back after a reload?
Reloading reattaches each terminal tab to its shell and restores the screen. If the shell is gone, for example after Oda quit, the tab shows This terminal no longer exists. Open a new terminal. and offers a New terminal button; nothing restarts the old shell on its own.
Why did my terminal close while I was not using it?
A terminal that no open tab holds is closed after about two hours without activity. Only time in which the shell is definitely idle counts, so a command that keeps working is not reclaimed. Oda reads idleness only for bash and zsh on macOS and Linux; other shells are not closed by this timer. Open a new terminal when you need one again.
How many terminals can I keep open?
Up to eight per chat at a time, and exited terminals count toward the limit too. Close unused tabs to release them. At the limit, a new terminal is refused with a Terminal error note: The terminal limit has been reached. Close unused terminals and try again. Exited terminals also count toward the limit.
Can I use a different shell?
Yes. Open the arrow beside New terminal in the panel and pick from the list: the environment's default comes first, then the shells found on this computer from zsh, bash, fish, pwsh, powershell and cmd. Your pick opens right away and is remembered. Only shells Oda can verify are offered; a path it cannot verify is refused with Selected shell is not available in this execution environment. If a remembered shell is no longer installed, the default shell starts instead.
The same terminal is open in two windows and one will not accept typing. Why?
Only one view of a terminal owns the keyboard at a time; the other shows a note reading This view is read-only., with a Take control button. Click Take control in the view you are working in. Both views show the same shell, and it keeps running.
A big paste fails with an error. Why?
Typing is buffered up to 64 KiB at a time, and a very large paste can overflow the buffer. The tab shows a Terminal error note: The input buffer is full. Reconnect and try again. Press Reconnect and send the text in smaller pieces; the shell keeps running.
A command printed a flood of text and the tab stopped updating. What should I do?
That view fell behind the terminal's output buffer, and the tab reports Terminal output consumer exceeded its buffer; reconnect to recover the current screen. Press Reconnect, and the current screen is restored. The shell keeps running while you do.