ClaudeCode.Session.PermissionMode (ClaudeCode v0.36.3)

View Source

Permission mode for controlling how Claude handles permission requests.

Values

  • :default - Standard permission prompting
  • :accept_edits - Auto-accept file edits without prompting
  • :bypass_permissions - Bypass all permission checks (requires :allow_dangerously_skip_permissions)
  • :delegate - Delegate permission decisions
  • :dont_ask - Never prompt for permissions
  • :plan - Planning mode only

Summary

Functions

Encodes a permission mode atom to its camelCase CLI string.

Parses a camelCase permission mode string from the CLI into an atom.

Types

t()

@type t() ::
  :default
  | :accept_edits
  | :bypass_permissions
  | :delegate
  | :dont_ask
  | :plan
  | String.t()

Functions

encode(mode)

@spec encode(t()) :: String.t()

Encodes a permission mode atom to its camelCase CLI string.

Examples

iex> ClaudeCode.Session.PermissionMode.encode(:default)
"default"

iex> ClaudeCode.Session.PermissionMode.encode(:accept_edits)
"acceptEdits"

iex> ClaudeCode.Session.PermissionMode.encode(:bypass_permissions)
"bypassPermissions"

parse(value, nil_fallback \\ nil)

@spec parse(String.t() | nil, t() | nil) :: t() | nil

Parses a camelCase permission mode string from the CLI into an atom.

Returns nil_fallback (default nil) for nil input. Unrecognized string values are kept as strings for forward compatibility.

Examples

iex> ClaudeCode.Session.PermissionMode.parse("default")
:default

iex> ClaudeCode.Session.PermissionMode.parse("acceptEdits")
:accept_edits

iex> ClaudeCode.Session.PermissionMode.parse("bypassPermissions")
:bypass_permissions

iex> ClaudeCode.Session.PermissionMode.parse("futureMode")
"futureMode"

iex> ClaudeCode.Session.PermissionMode.parse(nil)
nil

iex> ClaudeCode.Session.PermissionMode.parse(nil, :default)
:default