# Tool Approval Modes in Reasonix: How to Configure Ask, Auto, and YOLO

> Explore Reasonix tool approval modes ask auto and yolo. Learn how to configure these settings via the UI or configuration files for streamlined tool execution.

- Repository: [YHH/DeepSeek-Reasonix](https://github.com/esengine/DeepSeek-Reasonix)
- Tags: how-to-guide
- Published: 2026-08-07

---

**Reasonix provides three distinct tool approval modes—`ask`, `auto`, and `yolo`—that govern whether the system prompts for confirmation before executing approval-gated tool calls, configurable via the Heartbeat settings UI or direct configuration file edits.**

DeepSeek-Reasonix implements a sophisticated permission system through its Heartbeat feature, allowing users to define exactly how the AI assistant handles tool execution requests. Understanding how to configure these tool approval modes is essential for maintaining security boundaries while optimizing for automation in AI-assisted development workflows.

## The Three Tool Approval Modes

Reasonix defines its approval behavior through a strict type union in [`desktop/frontend/src/custom/features/heartbeat/heartbeat.types.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/desktop/frontend/src/custom/features/heartbeat/heartbeat.types.ts). The `HeartbeatConfig` interface specifies `approvalMode` as an optional field accepting one of three string literals, defaulting to `"yolo"` when omitted.

### Ask Mode (Explicit Confirmation)

When configured to **Ask** (`"ask"`), the system prompts you before executing any approval-gated tool call. This mode is explicitly not read-only; it requires active user confirmation rather than passively allowing execution.

According to the locale definitions in [`desktop/frontend/src/locales/en.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/desktop/frontend/src/locales/en.ts), the interface presents this mode with specific hint text indicating its non-passive nature. The test suite in [`desktop/frontend/src/__tests__/tool-approval-mode.test.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/desktop/frontend/src/__tests__/tool-approval-mode.test.ts) verifies this boundary by asserting that the `heartbeat.approvalModeAskHint` string includes the phrase "not read-only", ensuring users understand that selecting Ask mode requires their active participation in the execution workflow.

### Auto Mode (Conditional Automation)

**Auto** mode (`"auto"`) executes tool calls automatically without interrupting the workflow for standard operations. The system only requests input when a user-owned plan decision is required, such as selecting between specific implementation strategies or resolving ambiguous execution paths.

### YOLO Mode (Minimal Interruption)

**YOLO** mode (`"yolo"`) skips ordinary permission prompts entirely, allowing the system to proceed with tool execution unless explicit deny conditions or "fresh-approval" requirements are triggered. Even in this permissive configuration, hard security boundaries remain active for critical operations requiring fresh approval.

## How to Configure Tool Approval Modes

### Via the Heartbeat Settings UI

Navigate to the **Heartbeat** settings panel within the Reasonix interface, typically located under *Preferences → Heartbeat*. Locate the dropdown labeled for tool approval configuration and select **Ask**, **Auto**, or **YOLO** based on your security and automation preferences. The system automatically persists this selection to your user configuration storage.

### Via Configuration File

Advanced users can modify the `approvalMode` field directly in the Reasonix configuration file (commonly `~/.reasonixrc` or the application's local storage). Set the value to your preferred mode as defined in the `HeartbeatConfig` type:

```json
{
  "heartbeat": {
    "approvalMode": "auto"
  }
}

```

After saving the configuration, restart the Reasonix application or reload the settings panel to apply the change.

## Technical Implementation and Source Files

The type definition in [`desktop/frontend/src/custom/features/heartbeat/heartbeat.types.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/desktop/frontend/src/custom/features/heartbeat/heartbeat.types.ts) establishes the contract for configuration:

```typescript
export type HeartbeatConfig = {
  approvalMode?: "ask" | "auto" | "yolo"; // empty defaults to "yolo"
};

```

The human-readable labels and descriptive hints displayed in the UI are defined in the locale files. For English users, [`desktop/frontend/src/locales/en.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/desktop/frontend/src/locales/en.ts) contains the keys `heartbeat.approvalModeAsk`, `heartbeat.approvalModeAuto`, and `heartbeat.approvalModeYolo`, along with corresponding tooltip and hint strings that explain each mode's behavior. Chinese (Simplified and Traditional) variants provide localized strings for the same keys, ensuring consistent internationalization across the Heartbeat feature.

## Summary

- Reasonix implements three distinct tool approval modes—**Ask**, **Auto**, and **YOLO**—to control execution confirmation behavior for gated tools.
- The modes are defined in [`heartbeat.types.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/heartbeat.types.ts) as `"ask"`, `"auto"`, and `"yolo"`, with `"yolo"` serving as the default when no mode is specified.
- **Ask** mode requires explicit confirmation for all approval-gated calls and is verified to be non-read-only through the test suite in [`tool-approval-mode.test.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/tool-approval-mode.test.ts).
- **YOLO** mode skips ordinary prompts but maintains hard boundaries for explicit denies and fresh-approval requirements.
- Configuration is available both through the Heartbeat settings UI and by editing the JSON configuration file to set the `heartbeat.approvalMode` property.

## Frequently Asked Questions

### What is the default tool approval mode in Reasonix?

When the `approvalMode` field is left empty or undefined in the configuration, the system defaults to **YOLO** mode. This behavior is documented in the type definition comments within [`desktop/frontend/src/custom/features/heartbeat/heartbeat.types.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/desktop/frontend/src/custom/features/heartbeat/heartbeat.types.ts), ensuring that new installations operate with minimal interruption while maintaining critical security boundaries for fresh-approval scenarios.

### Does YOLO mode disable all security checks?

No. While **YOLO** mode skips ordinary permission prompts for standard tool calls, it still enforces explicit deny conditions and "fresh-approval" requirements for sensitive operations. This ensures that even the most permissive setting maintains hard security boundaries where explicitly required by the system's permission model.

### Where are the approval mode labels defined for different languages?

The user interface labels, tooltips, and descriptive hints for each approval mode are defined in the locale files located at `desktop/frontend/src/locales/`. The English translations reside in [`en.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/en.ts), while Chinese variants provide localized strings for the same `heartbeat.approvalMode*` keys, ensuring consistent internationalization across the Heartbeat feature.

### How can I verify my current approval mode setting programmatically?

You can inspect the current configuration by checking the `approvalMode` property within the `HeartbeatConfig` object stored in your Reasonix settings. The test suite in [`desktop/frontend/src/__tests__/tool-approval-mode.test.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/desktop/frontend/src/__tests__/tool-approval-mode.test.ts) demonstrates validation techniques by asserting that mode descriptions contain expected boundary indicators, such as verifying that Ask mode hints include "not read-only" text.