Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Global Config

The global configuration file lives at ~/.azureal/azufig.toml. It holds settings that apply across all projects: your API key, the path to the Claude Code binary, your permission mode, the list of registered projects, and any global run commands or preset prompts.


Location

~/.azureal/
  azufig.toml    <-- global config
  AZUREAL.app/   <-- macOS app bundle (if present)
  speech/        <-- Whisper model files

The ~/.azureal/ directory is created automatically on first launch if it does not exist. The config file itself is created when you first register a project or save a setting through the UI.


Sections

[config]

Core application settings.

[config]
anthropic_api_key = "sk-ant-..."
claude_executable = "/usr/local/bin/claude"
default_permission_mode = "ignore"
KeyDescriptionDefault
anthropic_api_keyAnthropic API key. Used by Claude Code CLI for authentication.(none)
claude_executableAbsolute path to the Claude Code CLI binary. AZUREAL uses this to spawn agent processes.Auto-detected from $PATH
codex_executableAbsolute path to the Codex CLI binary.Auto-detected from $PATH
default_permission_modePermission mode for agent sessions. Valid values: "approve", "ignore", "ask"."ignore"
verboseEnable verbose logging.false

The default_permission_mode controls how Claude Code handles tool use permissions:

  • "ignore" – Claude Code skips permissions entirely (--dangerously-skip-permissions).
  • "approve" – Claude Code approves all tool use automatically.
  • "ask" – Claude Code asks for permission on each tool use (default Claude behavior).

[projects]

Registered projects. Each entry maps a display name to a filesystem path.

[projects]
AZUREAL = "~/AZUREAL"
Website = "~/projects/website"

Keys are display names shown in the Projects Panel. Values are paths to the project root (the directory containing .git). Tilde (~) is expanded at runtime. Paths must point to a valid git repository.

When you register a project through the Projects Panel in the UI, it writes an entry here. When you unregister a project, the entry is removed.

[runcmds]

Global run commands available in every project. Entries use numbered prefixes to preserve display order.

[runcmds]
1_Build = "cargo build --release"
2_Test = "cargo test"
3_Lint = "cargo clippy -- -W clippy::all"

The prefix format is N_Name, where N is a positive integer and Name is the display label shown in the run commands menu. The value is the shell command to execute.

Global run commands appear alongside project-local run commands in the run commands list. See Run Commands for how these are executed.

[presetprompts]

Global preset prompts available in every project. Same prefix format as run commands.

[presetprompts]
1_Review = "Review this file for bugs and suggest improvements."
2_Explain = "Explain what this code does, step by step."
3_Refactor = "Refactor this code for clarity without changing behavior."

The prefix format is N_Name, where N determines order and Name is the display label. The value is the prompt text that gets injected into the input field when selected.

Global preset prompts appear alongside project-local preset prompts. See Preset Prompts for how these are used in the UI.


Example File

A complete global config:

[config]
anthropic_api_key = "sk-ant-api03-xxxxxxxxxxxxxxxxxxxx"
claude_executable = "/opt/homebrew/bin/claude"
default_permission_mode = "ignore"

[projects]
AZUREAL = "~/AZUREAL"
Webapp = "~/projects/webapp"
Infra = "~/work/infrastructure"

[runcmds]
1_Build = "cargo build --release"
2_Test = "cargo test -- --nocapture"
3_Format = "cargo fmt --all"

[presetprompts]
1_CodeReview = "Review this code for correctness, performance, and style."
2_WriteTests = "Write comprehensive tests for this module."