Tool calls in the chat

As Oda works, every step it takes appears in the chat as a card: reading a file, changing one, running a command, searching, or fetching a page. This page covers how those cards behave: how they nest, what they show while they run, and what a rejected, stopped or denied step looks like afterwards.

The kinds of cards and their details are on Step cards in chat. For the chat around them, see Chat with Oda; for how Oda's tools are offered and controlled, see Tools and how they are offered.

Steps are cards in a tree

What each card shows

The collapsed row is made to scan: an icon for the kind of step, a one-line title, and its state. What the card holds when opened depends on the kind of step:

While a call runs, and how it ends

Approvals: allow, reject or cancel

Some steps wait for your answer before they run. The ask appears as an approval card in the chat; Your first task shows the choices and what each one does.

Denied before it ran: Auto review

When Auto review decides a call must not run, the step shows the denial in its collapsed row and, opened, one line saying the call was not executed. The denied call's raw arguments are not shown, and the denial is displayed instead of the step's usual card. Nothing on your computer changed: the call was stopped before it ran.

Inspect a recorded call

Inspect opens the recorded view of a step. The control appears only when a recorded view was kept for that step; without one, the card is all there is.

When a card cannot be drawn

If a step's record cannot be read as a card, Oda does not guess: the step falls back to a plain block with the recorded input and output. The same fallback appears when a result is too large to keep in the chat and is stored separately; Commands Oda runs describes that case for commands.

Questions, answered

What does a rejected step show in the chat?

It stays as a rejected call: it did not run, and the recorded result says the tool was rejected. If you rejected with instructions, your words are kept as the call's note.

Why does a failed step replace its description with an error line?

So the cause is visible without opening the card. The row shows the first line of the failure; the full result is inside.

Why does a stopped step keep its usual icon?

The icon names the kind of step, not its state. The state stays explicit: the row shows it as stopped, and it is also readable by screen readers.

Why are some steps shown under another step?

Because they were started from inside it. Expand the step that holds them to see them; each keeps its own expanded or collapsed state.

When does the Inspect control appear?

Only when a recorded view was kept for the step. Inspect opens that view; without one, the control is not shown.

What does it mean when Auto review denied a step?

The call was stopped before it ran, so nothing on your computer changed. The row shows the denial, and opening it gives one line saying the call was not executed.

Why does a newly created file show only added lines?

There is no earlier text for the file in that change, so there is nothing to show as removed.

Why does a failed step not stop the task?

A failed step is ordinary feedback: Oda is told what went wrong and can continue the task or try another way.

Why does a step say that approval was cancelled?

The ask for your approval was cancelled, so the step did not run. The recorded result reads Error: approval for tool "<name>" was cancelled.

Can I open the file an edit step changed?

Yes. The changed file shows as a link on the step; when the file opens, the step's comparison is attached to it.