Syntax

Runtime Modes

Default, AutoEdit, and Bypass — the three-state cycle that gates which tool calls run unattended.

Runtime Modes control how cautious Syntax is about running tool calls without asking you first. The cycle has three states:

ModeBehavior
DefaultAsks before running anything that touches your filesystem, runs a shell command, or calls out to the network. Reads are usually unattended.
AutoEditAuto-approves common edits and routine commands; asks only for genuinely risky operations (e.g., destructive shell, network egress to non-allowlisted hosts).
BypassApproves everything without asking. Requires an explicit Y/N confirmation to enter.

You cycle through the three states with Ctrl+M in the TUI (or the equivalent toggle in the desktop app). The current mode shows in the status bar as a small badge.

Why three modes

Most coding sessions sit comfortably in AutoEdit. The cost of approving every diff hunk is real, and the risk of an unwanted edit is small for most operations. AutoEdit removes the friction without giving up the gates that matter.

Default is the right place to be when you're working on something unfamiliar, when you're sharing your screen, or when you want a strict human-in-the-loop posture.

Bypass is the right place to be when you've validated the agent's plan, you trust the approvals fence to be set elsewhere (e.g., a sandbox), and you want maximum velocity. The explicit confirmation gate exists because Bypass is genuinely riskier — it is not the default posture and it is not the default mode you cycle into accidentally.

What's gated regardless of mode

A small number of operations are always gated through a deterministic classifier rather than the current Runtime Mode. These include operations that delete data, force-push, modify shared infrastructure, or upload content to third-party web tools. The Runtime Mode is a posture, not an override; the deterministic classifier on truly risky operations always runs.

Cancellation

Independently of the mode, Esc always interrupts the current turn. It works:

  • Pre-turn (between submit and the agent actually starting).
  • Mid-turn (during streaming or tool execution, even when the working spinner is hidden).
  • With a popup active (popup dismisses first; second Esc cancels the turn).