Loading the documentation…

The terminal

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

  1. 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.
  2. 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.
  3. 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

Type, name and resize

Messages the tab shows

What stays running

Close a terminal

Limits

WhatLimit
Terminals in one chat8 at a time, counting exited terminals and ones still opening
New terminal80 columns by 24 rows, smaller when the environment caps it lower
Screenup to 500 columns by 200 rows
Scrollbackabout the last 1,000 lines
One input64 KiB
Terminal name1 to 120 characters
Unattended closeafter about 2 hours without activity, only when no open tab holds the terminal

Your shell, not Oda's

Questions, answered

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.