Skip to main content
Dangerous built-in tools (shell commands, file writes, edits, deletes, and patch application) now prompt for confirmation before running. Safe mode is ON by default — no config needed.
The user asks the agent to run shell commands or edit files; dangerous built-in tools pause for interactive approval first.

Quick Start

1

Run safely out of the box

praisonai code is safe by default — dangerous tools pause and ask before running:
No flags needed. Safe mode is always on for interactive TTY sessions.
2

Disable for a single trusted task

When you trust a specific one-off task, use --no-safe:
Only that session bypasses approval. Subsequent sessions remain safe by default.
3

Disable for CI / non-interactive scripts

Set the environment variable once in your CI pipeline and every praisonai command in that shell skips approval prompts automatically:
Or export it in the job environment:
4

Use --dangerously-skip-approval for headless agents

For long-running headless processes that have their own external approval gate, use the explicit flag:
This also sets PRAISONAI_TOOL_SAFETY=off for the duration of the process.

Which Tools Require Approval


Precedence Ladder

Higher entries override lower entries. The explicit --dangerously-skip-approval flag always wins.

How It Works

On non-interactive TTYs (CI, piped stdin, PRAISONAI_TOOL_SAFETY=off), the guard is bypassed and tools execute immediately.

Best Practices

Never rely on the default behaviour in automated pipelines. Set PRAISONAI_TOOL_SAFETY=off explicitly in every CI job that runs praisonai code:
This makes the bypass intentional and visible in code review.
Use --no-safe for individual commands rather than exporting PRAISONAI_TOOL_SAFETY=off globally in your shell. A global bypass means every subsequent praisonai code in that shell runs without approval — easy to forget.
If your pipeline already has an external approval gate (pull request review, policy-as-code), use --dangerously-skip-approval to document the intent clearly. This is better than --no-safe because it communicates that the operator consciously chose to skip the built-in guard.
Never run with PRAISONAI_TOOL_SAFETY=off on a machine where the API key is shared across users. The approval guard is the last line of defence against a prompt injection tricking an agent into deleting or exfiltrating files.

Interactive Approval

Deep dive into the interactive approval flow and how to customise it

Core Controls

Other safety controls available for agents