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

> Explore DeepSeek Reasonix tool approval modes: Ask, Auto, and YOLO. Learn how to configure AI assistant permissions via Heartbeat UI and JSON for gated tool operations.

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

---

**DeepSeek Reasonix provides three tool approval modes—Ask, Auto, and YOLO—that control how the AI assistant handles gated tool operations, with configuration available through both the Heartbeat UI settings panel and manual JSON configuration.**

DeepSeek Reasonix implements a **heartbeat-based permission system** that governs when and how the AI can execute tool calls requiring user approval. Understanding these modes and their configuration options ensures you maintain appropriate control over autonomous operations while minimizing friction for routine tasks.

## The Three Tool Approval Modes in Reasonix

Reasonix defines three distinct approval behaviors in its heartbeat type system. The mode selection directly impacts when the system pauses for human confirmation versus proceeding automatically.

### Ask Mode (`"ask"`)

**Ask mode** requires explicit user confirmation before executing any approval-gated tool call. This is the most restrictive setting.

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 Ask mode displays with tooltip: "The system prompts you before executing any approval-gated tool call." The hint text explicitly clarifies that this mode is **not read-only**—users must actively confirm rather than simply review.

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 is preserved:

```typescript
eq(en["heartbeat.approvalModeAskHint"].includes("not read-only"), true,
   "heartbeat Ask hint preserves the same boundary");

```

### Auto Mode (`"auto"`)

**Auto mode** executes tool calls automatically, only prompting when a user-owned plan decision is required. This balances autonomy with control for critical choices.

As defined in the heartbeat types at [`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), Auto mode handles routine operations without interruption while reserving manual input for plan selection scenarios.

### YOLO Mode (`"yolo"`)

**YOLO mode** skips ordinary permission prompts entirely. However, as noted in the source strings, **explicit denies and fresh-approval requirements still apply**—this is not an absolute bypass.

The mode name reflects permissive operation while maintaining hard security boundaries. When no `approvalMode` is specified in configuration, YOLO serves as the default behavior.

## Where Approval Modes Are Defined

The type definition in [`heartbeat.types.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/heartbeat.types.ts) establishes the contract:

```typescript
// desktop/frontend/src/custom/features/heartbeat/heartbeat.types.ts
export type HeartbeatConfig = {
  approvalMode?: "ask" | "auto" | "yolo"; // empty defaults to "yolo"
};

```

UI localization strings in [`desktop/frontend/src/locales/en.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/desktop/frontend/src/locales/en.ts) provide human-readable labels:

- `heartbeat.approvalModeAsk` → "Ask"
- `heartbeat.approvalModeAuto` → "Auto"
- `heartbeat.approvalModeYolo` → "YOLO"

Corresponding `*Hint` and tooltip keys deliver behavior descriptions that appear in the interface.

## How to Configure Tool Approval Mode

### Method 1: Heartbeat Settings UI

The standard configuration path uses Reasonix's built-in preferences panel:

1. Open **Preferences → Heartbeat**
2. Locate the dropdown labeled **"Tool Approval Mode"**
3. Select **Ask**, **Auto**, or **YOLO**
4. Changes save automatically to user configuration

### Method 2: Manual Configuration File

Advanced users can edit the configuration directly. Add or modify the `approvalMode` field in your Reasonix config (typically `~/.reasonixrc` or platform-equivalent):

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

```

Restart Reasonix or trigger a settings reload to apply changes.

### Configuration Validation

The type system enforces valid values at compile time. Invalid strings will trigger TypeScript errors in development or fall back to YOLO behavior in production builds.

## Key Source Files for Tool Approval

| File | Purpose |
|------|---------|
| [`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) | TypeScript type definitions for `HeartbeatConfig` and `approvalMode` |
| [`desktop/frontend/src/locales/en.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/desktop/frontend/src/locales/en.ts) | English UI strings, tooltips, and behavioral hints |
| [`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) | Unit tests verifying mode descriptions and boundaries |

Chinese (Simplified and Traditional) localization files parallel the English structure with equivalent keys and translated values.

## Choosing the Right Approval Mode

Consider these factors when selecting your Reasonix tool approval mode:

- **Security sensitivity**: Use **Ask** when operating on critical systems or unfamiliar codebases
- **Workflow efficiency**: **Auto** suits established projects with predictable tool patterns
- **Development velocity**: **YOLO** accelerates prototyping while preserving deny-list protections

The default YOLO behavior optimizes for quick iteration, but production deployments typically benefit from Auto or Ask configurations depending on compliance requirements.

## Summary

- **Three modes**: Ask (confirm each), Auto (confirm plans only), YOLO (skip ordinary prompts)
- **Type definition**: `approvalMode?: "ask" | "auto" | "yolo"` in [`heartbeat.types.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/heartbeat.types.ts)
- **Default behavior**: YOLO when unspecified
- **Configuration paths**: Heartbeat UI preferences or manual JSON in `~/.reasonixrc`
- **Security boundaries**: Explicit denies and fresh-approval requirements persist even in YOLO mode

## Frequently Asked Questions

### What happens if I don't configure an approval mode in Reasonix?

The system defaults to **YOLO mode** per the type definition comment `// empty defaults to "yolo"`. Tool calls proceed without ordinary prompts, though hard security boundaries like explicit denies remain enforced.

### Can I switch approval modes without restarting Reasonix?

UI-based changes through the Heartbeat settings panel apply immediately. Manual configuration file edits require a settings reload or application restart to take effect.

### Does Ask mode prevent all automatic tool execution?

No—Ask mode specifically gates **approval-gated tool calls**. The hint text in [`en.ts`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/en.ts) emphasizes this is "not read-only"; background operations and non-gated tools may still execute automatically depending on their classification in the heartbeat system.

### Where are the approval mode descriptions stored for non-English languages?

Parallel locale files in `desktop/frontend/src/locales/` contain Chinese (Simplified and Traditional) translations using identical key structures (`heartbeat.approvalModeAsk`, etc.) with culturally appropriate descriptions of the same behavioral boundaries.