> ## Documentation Index
> Fetch the complete documentation index at: https://docs.piebald.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Tool calls

export const MuxVideo = ({playbackId, title = "Video demo"}) => <iframe className="w-full aspect-video rounded-xl" src={`https://player.mux.com/${playbackId}?accent-color=%23ff8400`} title={title} allow="accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture" allowFullScreen></iframe>;

In Piebald chats, tool calls are treated as first-class citizens, with convenient ways to view tool call input, output, errors, etc.

### Tool calls are streamed

<Badge color="blue">Available in Piebald Basic (Free)</Badge>

Tool calls to the UI progressively as the model generates them.  This can make agentic development feel faster because you can see tool calls right away instead of waiting for them to be fully finished streaming.

<video src="https://mintcdn.com/piebald/4FtGqNeaL7sgvJi4/imgs/streamed_tool_calls.mp4?fit=max&auto=format&n=4FtGqNeaL7sgvJi4&q=85&s=9ae1a7a791b41f148cbbff4b3b982740" name="streamed_tool_calls.mp4" controls data-path="imgs/streamed_tool_calls.mp4">Video showing streamed tool calls</video>

### Enabling/disabling individual tools

<Badge color="blue">Available in Piebald Basic (Free)</Badge>

Piebald allows you to disable individual MCP servers and tools or tool use altogether.

In a chat, open the configuration sidebar by clicking the <Icon icon="settings" /> icon in the top-right corner, go to the **Configuration** tab, and scroll to the bottom.  You'll see a list of all enabled MCP servers and their tools:

<img className="shadow-md rounded-xl" width={900} alt="A screenshot of the chat config sidebar showing only two builtin tools selected." src="https://mintcdn.com/piebald/pYyoBFgyzbnv87V8/imgs/v0-1-3/tool_enablement.png?fit=max&auto=format&n=pYyoBFgyzbnv87V8&q=85&s=eacb2e522bd746612598782046e4c2ff" data-path="imgs/v0-1-3/tool_enablement.png" />

### Re-executing tool calls

<Badge color="green">Available in [Piebald Pro](https://piebald.ai/pricing)</Badge>

Tool calls can be **re-executed** any time after they finish running.  This is useful if the model runs a command but you meant to make change to the environment before it ran it.  For example, the model might try to run a certain command but it's not installed, so you installed it and then re-executed the tool call. That way the model never knew the command wasn't installed at first.

When a tool call is re-executed, it's marked as *stale*, to indicate that its latest output has never been sent to the model and that any subsequent messages were produced with the old output. Clicking "Regenerate" will regenerate the messages after the tool call.

Here's a demo of a tool call being re-executed:

<MuxVideo playbackId="ErRfHyl0001OclllZbgXztdmVVnpxoEZhyhl6JPr007i3U" title="Tool call re-execution (Pro)" />

### Tool call execution time

<Badge color="blue">Available in Piebald Basic (Free)</Badge>

On some tool calls (e.g. terminal commands), Piebald automatically records the length of time that the tool call takes to execute.  The time is displayed in the tool call widget at the right of the arguments:

<img className="shadow-md rounded-xl" width="600" alt="Screenshot displaying tool call execution time" src="https://mintcdn.com/piebald/c82788trErFjPBqo/imgs/tool_call_execution_time.png?fit=max&auto=format&n=c82788trErFjPBqo&q=85&s=a7fff308e37435779542f4c8ec0fec24" data-path="imgs/tool_call_execution_time.png" />

By default, this feature is disabled.  You can enable this setting at **Settings → Chat Interface → Show Tool Execution Time**.
