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

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. 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, 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 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:

{
  "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 establishes the contract for configuration:

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 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 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.
  • 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, 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, 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 demonstrates validation techniques by asserting that mode descriptions contain expected boundary indicators, such as verifying that Ask mode hints include "not read-only" text.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →