Piebald provides a set of built-in tools that are available to all models.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.
ReadFile: Reads a file from the file system. Does not add line prefixes. Auto-approved for file paths in the current project.WriteFile: Writes the given contents to a file on disk. Overwrite existing files, if any. Auto-approved in auto-accept edits mode for file paths in teh current project.EditFile: Replaces a given old string with a given new string. Auto-approved in auto-accept edits mode for file paths in teh current project.Glob: Search for file paths via glob patterns, e.g.**/*.ts.Grep: Search for text in a folder recursively using regular expressions. Accepts a variety of ripgrep-like options.WebFetch: Returns the text content of page at the given URL.WebSearch: Searches the web for the given query using the configured search service.RunTerminalCommand: Runs the given terminal command. Usesshon macOS and Linux andcmd /Con Windows, but you can configure the shell used for executing terminal commands.TodoWrite: Updates the current todo list for the chat.ProposePlanToUser: Prompts you to exit plan mode by displaying the given plan text as markdown.AskUserQuestion: Allows the model to ask you any number of questions with one or more answers per question.LaunchSubagent: Launches a subagent.
RunTerminalCommand
Configuring the shell to be used for command execution
Internally, theRunTerminalCommand tool executes the given command using sh -c on UNIX systems (macOS and Linux) and cmd.exe /C on Windows. However, you can change the default shell to a preset or a custom command.
Go to Settings → Built-in Tools and select a preset for Terminal Shell. The default presets are:
UNIX:
- Bourne Shell (
/bin/sh) - Bash (
/bin/bash) - Zsh (
/bin/zsh)
- Command Prompt (cmd.exe)
- Windows PowerShell
- Git Bash (MinGW)
Using a custom shell
You can also specify a custom shell, which is useful when you want to use a shell not explicitly mentioned above. For example, if you have custom aliases in a shell like Fish. To use a custom shell, set Terminal Shell to Custom… and then enter each individual argument required to invoke the shell with a command. Most UNIX shells accept a-c argument, e.g. fish -c "...". Use {command} as the last argument.
We plan to automatically detect installed shells so you won’t have to go the custom route for the majority of cases.
Live, interactive terminal commands
Available in Piebald Basic (Free) When the model runs a terminal command, Piebald executes the command in an integrated terminal instance embedded in the app. This means that interactive commands and commands that output colors and other ANSI escape codes are supported. When the command is interactive (i.e. requires user interaction/input likenpm init, sudo commands, etc.), you can enter input and navigate options directly inside the tool call UI. This opens interesting possibilities, including running full REPLs like node, or even TUIs like claude!
Terminal sessions are not currently preserved across multiple terminal commands. For example, if the model sets a shell variable in one command, the next command will not be able to echo it. This is a limitation that we plan on removing in the future.
Command output is truncated
Many commands return lots of output—compiling large projects, running large test suites, installing applications, etc. Instead of returning all this output directly to the LLM, the output is truncated to the first 10,000 and last 10,000 characters, as these windows usually contain the most important, useful information.ProposePlanToUser
Copying plans to clipboard
Available in Piebald Pro When the model proposes a plan, it can be convenient to copy the plan to your clipboard to paste into a new chat, share to a teammate, or save to a file. With Piebald Pro, plans proposed by the AI have a copy button () that will copy the markdown contents of the plan to your clipboard:
WebSearch
Using DuckDuckGo for web search
By default, theWebSearch tool uses a free web search service called Exa.. However, if you’ve hit your Exa rate limits or you’re not satisfied with the results from Exa web searches, you can change the search service to DuckDuckGo by setting Settings → Web Search → Search Backend to DuckDuckGo.