> ## 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.

# Permission modes

Piebald has four **permission modes** that

## Read-only

The **Read-only** permission mode automatically approves `ReadFile` tool calls.  `ReadFile` tool calls that attempt to read files outside the project directory are also automatically approved.

Piebald uses a hardcoded list of common, read-only terminal commands that are automatically, e.g. `pwd`, `ls`, `head`, `tail`, etc.  In the future, we'll add a list somewhere of all these read-only commands.

## Auto-accept

The **Auto-accept** permission mode automatically approves `WriteFile` and `EditFile` tool calls within the project directory.  `WriteFile` and `EditFile` tool calls that attempt to write or edit files outside the project directory must be manually approved.

All read-only commands auto-approved in the Read-only permission mode are also auto-approved in Auto-accept.  Commands are also automatically approved if they use the `>` or `>>` redirect operators.  Note that commands that redirect output to files outside the project directory are also automatically applied.

## Plan

In Piebald, plan mode is represented by the **Plan** permission mode.  In this mode, read-only commands and `ReadFile` calls are automatically approved.

A context notification is attached to your message to tell the LLM in strong words to plan only and not to attempt to write.  If it still does attempt to write files using the `WriteFile` or `EditFile` tools, the tool calls will need to be manually approved or denied.

The LLM is instructed to use the `ProposePlanToUser` to end the planning session.

<img class="shadow-md rounded-xl" width="700" alt="plan_mode_context_notification.png" src="https://mintcdn.com/piebald/c82788trErFjPBqo/imgs/plan_mode_context_notification.png?fit=max&auto=format&n=c82788trErFjPBqo&q=85&s=c5895f3cbeea6627d6bb56f3fb9955b9" data-path="imgs/plan_mode_context_notification.png" />

## YOLO

In **YOLO**, all tool calls except `AskUserQuestion` and `ProposePlanToUser` are automatically approved, whether they're read-only, write, or destructive.  Automatically approving `AskUserQuestion` and `ProposePlanToUser` would defeat their purpose, so you'll still have to manually approve those tool calls.

## Setting a permission mode as default

You can select a default permission mode (Read-only, Auto-accept, Plan, or YOLO) that new chats should use.

This is done with the setting **Settings → General → Default Permission Mode** or by holding <kbd>Ctrl</kbd> and selecting a permission mode from the dropdown.
