Key Global Configuration Options for no‑mistakes: A Complete Reference

no‑mistakes reads global settings from ~/.no‑mistakes/config.yaml (or from a path defined by the NM_HOME environment variable), where key global configuration options control agent selection, pipeline timeouts, auto‑fix loops, and security policies that govern the daemon and CI pipeline.

The kunchenguid/no-mistakes repository centralizes its runtime behavior through a single configuration file that affects every repository the daemon touches. These settings are defined in internal/config/config.go and documented in docs/src/content/docs/reference/global-config.md, allowing you to customize tool behavior without modifying per‑project files.

Configuration File Location and Environment Variables

The daemon and CLI expect the global configuration at ~/.no-mistakes/config.yaml by default. You can relocate this directory by exporting the NM_HOME environment variable before invoking the tool.


# Use a custom configuration directory

export NM_HOME=/etc/no-mistakes
no-mistakes axi run

When the daemon starts—specifically within internal/daemon/manager.go—it parses this file and applies any per‑repository overrides defined in local .no‑mistakes.yaml files, unless explicitly disabled.

Agent Selection and Binary Overrides

The agent field (type string or []string, default: auto) determines which AI agent executes tasks. The value auto selects the first native agent found on your system PATH, such as claude, codex, or opencode. For ACP targets, use the format acp:<target>.

You can override agent binary locations and arguments without modifying your system PATH:

  • acpx_path (string, default: acpx): Specifies the path to the user‑installed acpx binary used when agent is set to an ACP target.
  • acp_registry_overrides (map[string]string, default: {}): Maps specific ACP target names to raw shell commands, bypassing the registry lookup.
  • agent_path_override (map[string]string, default: {}): Provides custom binary locations for native agents. For example, claude: /usr/local/bin/claude forces a specific Claude binary.
  • agent_args_override (map[string][]string, default: {}): Injects extra CLI flags into native agent invocations. Use this for model selection, tier specification, or reasoning effort flags.

These overrides are read by the agent launcher in internal/agent/*.go when spawning new processes.

Pipeline Timeouts and Daemon Connectivity

Control execution limits and responsiveness through duration‑based fields:

  • ci_timeout (string Go duration or "unlimited", default: "168h"): Defines the idle timeout for the CI monitor. The timer re‑arms whenever the upstream default branch advances. Set to "unlimited", "0", or a negative value to disable the timeout entirely.
  • step_quiet_warning (string Go duration, default: "10m"): Specifies how long a pipeline step may produce no output before AXI marks it as "quiet." This is purely for observability and does not abort execution.
  • daemon_connect_timeout (string Go duration, default: "3s"): The maximum time CLI clients wait for the daemon socket to accept a connection.

These timeouts are enforced by the step controllers in internal/pipeline/steps/* and the daemon manager.

Automation Intelligence and Session Management

Fine‑tune autonomous behavior and transcript processing:

  • session_reuse (bool, default: true): Enables per‑run, per‑role session reuse for agents supporting native resume (claude, codex). Set to false to force cold invocations on every step.
  • auto_fix (object, default: {rebase:3, review:0, test:3, document:3, lint:3, ci:3}): Limits the number of follow‑up auto‑fix attempts per pipeline step. Setting any value to 0 disables the retry loop for that specific phase.
  • intent (object, default: {enabled:true, threshold:0.2, slack_days:3, disabled_readers:[]}): Configures transcript‑based intent extraction, including scoring thresholds and disabled analysis readers.

Security Controls and Project Restrictions

Manage execution privileges and instruction scoping:

  • allow_repo_commands (bool, default: false): When set to false (the default), commands defined in a repository’s .no‑mistakes.yaml are blocked from execution by the daemon for security.
  • disable_project_settings (bool, default: false): Disables all project‑level instruction overrides, forcing the daemon to use only global settings.
  • instructions (string, optional): Free‑form documentation or policy text appended to every run, visible to agents.

Logging and Evidence Storage

Control observability and artifact persistence:

  • log_level (string, default: "info"): Controls daemon verbosity. Accepts debug, info, warn, or error.
  • test.evidence (object, default: {store_in_repo:false, dir:".no-mistakes/evidence"}): Determines where test‑step evidence is stored. When store_in_repo is true, the evidence directory is committed back to the repository.

Complete Configuration Example

The following ~/.no-mistakes/config.yaml demonstrates agent overrides, custom timeouts, and disabled auto‑fixes:

agent: auto                     # Pick first native agent on PATH

acpx_path: /usr/local/bin/acpx

agent_path_override:
  codex: /opt/homebrew/bin/codex

agent_args_override:
  codex:
    - -m
    - gpt-5.4
    - -c
    - model_reasoning_effort=low

ci_timeout: "168h"              # 7 days idle timeout (re-arms on base-branch advance)

step_quiet_warning: "10m"
daemon_connect_timeout: "5s"
log_level: debug

auto_fix:
  rebase: 5
  review: 0                     # Require manual review for findings

  test: 3
  lint: 2

intent:
  enabled: true
  threshold: 0.25

test:
  evidence:
    store_in_repo: true
    dir: .no-mistakes/evidence

allow_repo_commands: false      # Maintain secure defaults

Summary

Understanding the key global configuration options for no‑mistakes lets you centralize control over the entire automation pipeline:

  • Location: The daemon loads ~/.no-mistakes/config.yaml (or $NM_HOME/config.yaml) at startup.
  • Agent Control: Use agent, acpx_path, agent_path_override, and agent_args_override to customize how AI tools are invoked.
  • Timeouts: ci_timeout re‑arms on branch advancement, while step_quiet_warning provides observability without killing steps.
  • Automation: auto_fix limits retry loops, session_reuse enables native agent resumption, and intent configures transcript analysis.
  • Security: allow_repo_commands defaults to false to prevent repository‑defined command execution, while disable_project_settings forces global‑only policies.

Frequently Asked Questions

How do I change the global configuration directory for no‑mistakes?

Set the NM_HOME environment variable to point to your desired directory. The daemon and CLI will look for config.yaml inside that path instead of the default ~/.no-mistakes/.

What is the security risk of enabling allow_repo_commands?

When allow_repo_commands is set to true, the daemon executes shell commands defined in repository‑local .no-mistakes.yaml files. Since these files may be modified by contributors, enabling this option exposes your system to arbitrary code execution from untrusted sources. It defaults to false for this reason.

Can I use different agent binaries for different projects without changing global settings?

Yes. While the global agent_path_override map applies system‑wide, you can achieve per‑project variation by leaving agent as auto in the global config and using the local .no-mistakes.yaml file to specify project‑specific agent versions, provided you do not set disable_project_settings: true.

Why does my CI pipeline keep running after I set ci_timeout to 168h?

The ci_timeout counter re‑arms (resets) whenever the upstream default branch advances, such as when new commits are pushed. This design keeps long‑running CI monitors alive during active development. To force a hard limit that does not re‑arm, you must implement an external timeout mechanism outside of no‑mistakes.

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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →