DeepSeek Reasonix Tool Approval Modes: How to Configure Ask, Auto, and YOLO Permissions
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, 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 verifies this boundary is preserved:
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, 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 establishes the contract:
// 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 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:
- Open Preferences → Heartbeat
- Locate the dropdown labeled "Tool Approval Mode"
- Select Ask, Auto, or YOLO
- 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):
{
"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 |
TypeScript type definitions for HeartbeatConfig and approvalMode |
desktop/frontend/src/locales/en.ts |
English UI strings, tooltips, and behavioral hints |
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"inheartbeat.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 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.
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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →