# Agents Supported by no-mistakes and How to Configure Custom Agent Paths

> Explore agents supported by no-mistakes including auto, claude, and codex. Learn to configure custom agent paths using agent_path_override in config.yaml for seamless integration.

- Repository: [Kun Chen/no-mistakes](https://github.com/kunchenguid/no-mistakes)
- Tags: how-to-guide
- Published: 2026-06-27

---

**no-mistakes supports seven built-in agents (`auto`, `claude`, `codex`, `rovodev`, `opencode`, `pi`, `copilot`) plus custom ACP targets, with binary paths configurable via `agent_path_override` in `~/.no-mistakes/config.yaml`.**

The `no-mistakes` CLI tool from the `kunchenguid/no-mistakes` repository provides a unified interface for multiple AI coding agents. Understanding which agents are supported by no-mistakes and how to configure custom agent paths is essential for teams using non-standard installations or custom agent builds.

## Agents Supported by no-mistakes

The supported agent identifiers are defined as constants in [`internal/types/types.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/types/types.go) (lines 35-43). These constants represent the native AI integrations available to the tool.

### Built-in Agent Identifiers

According to the source code, the `AgentName` constants include:

- **auto** – Automatically selects the first native agent detected on the system PATH
- **claude** – Anthropic Claude
- **codex** – OpenAI Codex
- **rovodev** – Rovo Dev
- **opencode** – OpenCode
- **pi** – Pi
- **copilot** – GitHub Copilot

When `agent: auto` is specified in the configuration, the tool iterates through these agents in a predefined order, selecting the first executable found on the system.

### Custom ACP Targets

Beyond the built-in agents, no-mistakes supports custom ACP (Agent Communication Protocol) targets using the `acp:<target>` syntax. These require additional configuration in the `acp_registry_overrides` map to define how the external agent is launched.

## How to Configure Custom Agent Paths

The global configuration file `~/.no-mistakes/config.yaml` controls agent selection and path overrides. The relevant configuration structures are defined in [`internal/config/config.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/config/config.go) (lines 41-46), which contains the `AgentPathOverride` and `AgentArgsOverride` maps within the `GlobalConfig` struct.

### Overriding Binary Locations

To replace the automatically detected executable with a custom binary, use the `agent_path_override` map. The `Config.AgentPath()` method (implemented in [`internal/config/config.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/config/config.go), lines 180-200) checks this map at runtime; if a key matches the selected agent, that value is returned instead of the PATH-discovered executable.

```yaml

# ~/.no-mistakes/config.yaml

agent: claude
agent_path_override:
  claude: /opt/custom/claude
  opencode: /usr/local/bin/opencode-dev

```

If the selected agent is not present in `agent_path_override`, the tool falls back to its built-in discovery logic.

### Custom CLI Arguments

Supply additional flags to specific agent binaries using `agent_args_override`:

```yaml
agent_args_override:
  claude: ["--model", "claude-2.1"]
  codex: ["--temperature", "0.1"]

```

These arguments are appended to the binary invocation when spawning the agent process.

### ACP Registry Overrides

For custom ACP targets, configure explicit commands via the `acp_registry_overrides` map (defined in [`internal/config/config.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/config/config.go), lines 44-45):

```yaml
agent: acp:gemini
acp_registry_overrides:
  gemini: node /usr/local/bin/gemini-acp.js

```

This maps the ACP target identifier to the specific command string required for execution, including interpreters if necessary.

### Programmatic Configuration Access

When consuming the configuration programmatically in Go, the resolution logic follows the same hierarchy:

```go
cfg, _ := config.LoadGlobalConfig()
agent := cfg.Agent                            // e.g., "claude"
bin, err := cfg.AgentPath()                  // returns custom path if set
args := cfg.AgentArgsOverride[agent]         // []string{"--model","claude-2.1"}

```

The `AgentPath()` function resolves the final executable path by first checking `AgentPathOverride`, then falling back to PATH discovery.

## Summary

- Seven built-in agents are supported: `auto`, `claude`, `codex`, `rovodev`, `opencode`, `pi`, and `copilot`
- Agent identifiers are defined as constants in [`internal/types/types.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/types/types.go) (lines 35-43)
- Custom binary paths are configured via `agent_path_override` in `~/.no-mistakes/config.yaml`
- The `Config.AgentPath()` method in [`internal/config/config.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/config/config.go) (lines 180-200) resolves custom paths at runtime
- Additional CLI arguments can be specified through `agent_args_override`
- Custom ACP targets require `acp_registry_overrides` for command mapping

## Frequently Asked Questions

### What agents are supported by no-mistakes?

no-mistakes supports seven built-in agent identifiers defined in [`internal/types/types.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/types/types.go): `auto`, `claude`, `codex`, `rovodev`, `opencode`, `pi`, and `copilot`. Additionally, you can configure custom ACP targets using the `acp:<target>` syntax, which requires explicit command mapping in the configuration.

### How do I configure custom agent paths in no-mistakes?

Add an `agent_path_override` map to your `~/.no-mistakes/config.yaml` file. Specify the agent name as the key and the absolute path to the binary as the value. The `Config.AgentPath()` function in [`internal/config/config.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/config/config.go) checks this map before falling back to the default PATH discovery logic.

### Can I pass custom arguments to agent binaries?

Yes. Use the `agent_args_override` configuration key to provide a list of additional command-line arguments for specific agents. These arguments are passed to the binary when the agent process is spawned, allowing you to set models, temperatures, or other agent-specific flags.

### How do I configure custom ACP targets?

Define the `acp_registry_overrides` map in your configuration file. Map the target identifier (the part after `acp:`) to the full command string required to launch that agent. This command can include the interpreter path, such as `node /path/to/script.js` or `/usr/local/bin/custom-agent`.