# AI Coding Agents Supported by no-mistakes: Complete Implementation Guide

> Explore how no-mistakes supports 8 AI coding agents like Claude, Codex, Copilot, and more. Learn about auto-detection in this implementation guide.

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

---

**TLDR:** The `no-mistakes` CLI supports eight distinct AI coding agents including Claude, Codex, Copilot, Rovo Dev, OpenCode, Pi, and dynamic ACP targets, with an auto-detection mode that selects the first available agent on your system.

The `kunchenguid/no-mistakes` repository provides a flexible pipeline for AI-driven code review and CI automation. Understanding which AI coding agents are supported by no-mistakes is essential for configuring your development workflow and selecting the right backend for your specific use case.

## Complete List of Supported AI Agents

The supported agents are enumerated in [`internal/types/types.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/types/types.go) as the `AgentName` constants. Each constant maps to a specific implementation in the `internal/agent/` directory and is instantiated by the factory logic in [`internal/agent/agent.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/agent.go).

- **Claude** (`AgentClaude` / `"claude"`): Anthropic Claude Code implementation in [`internal/agent/claude.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/claude.go)
- **Codex** (`AgentCodex` / `"codex"`): AWS Code Codex CLI integration in [`internal/agent/codex.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/codex.go)
- **Rovo Dev** (`AgentRovoDev` / `"rovodev"`): Rovo Dev platform driver in [`internal/agent/rovodev.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/rovodev.go)
- **OpenCode** (`AgentOpenCode` / `"opencode"`): Vendor-neutral OpenCode implementation in [`internal/agent/opencode.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/opencode.go)
- **Pi** (`AgentPi` / `"pi"`): GitHub Pi AI integration in [`internal/agent/pi.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/pi.go)
- **Copilot** (`AgentCopilot` / `"copilot"`): GitHub Copilot CLI driver in [`internal/agent/copilot.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/copilot.go)
- **ACP** (`AgentACP` / `"acp"`): Dynamic ACP agent loader in [`internal/agent/acpx.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/acpx.go) that resolves `acp:<target>` values at runtime
- **Auto** (`AgentAuto` / `"auto"`): Auto-detection mode that selects the first available concrete agent on the host

## How to Configure AI Agents in no-mistakes

Agent selection is handled by the factory in [`internal/agent/agent.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/agent.go), which creates the concrete implementation based on your configuration method.

### YAML Configuration

Create a [`.no-mistakes.yaml`](https://github.com/kunchenguid/no-mistakes/blob/main/.no-mistakes.yaml) file in your project root to specify the agent explicitly:

```yaml

# .no-mistakes.yaml

agent: claude               # Explicitly use Claude Code

# or

agent: auto                 # Auto-detect available agents

# or for ACP targets

agent: acp:my-custom-backend

```

### Command-Line Override

Override any configuration file setting using the `--agent` flag when running the CLI:

```bash
no-mistakes run --agent claude   # Use Claude explicitly

no-mistakes run --agent copilot  # Use GitHub Copilot

```

### Programmatic Selection

For custom tools or Go tests, import the types and config packages to select agents programmatically:

```go
import (
    "github.com/kunchenguid/no-mistakes/internal/config"
    "github.com/kunchenguid/no-mistakes/internal/types"
)

func useClaude() {
    cfg := &config.Config{
        Agent: types.AgentClaude, // Select Claude via constant
    }
    // Pass cfg to the pipeline executor; the Claude agent will be
    // instantiated by internal/agent/agent.go.
}

```

## Summary

- **no-mistakes** supports eight AI coding agents: Claude, Codex, Rovo Dev, OpenCode, Pi, Copilot, ACP (dynamic), and Auto-detect.
- Agent constants are defined in [`internal/types/types.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/types/types.go) with concrete implementations residing in `internal/agent/`.
- Configure agents via [`.no-mistakes.yaml`](https://github.com/kunchenguid/no-mistakes/blob/main/.no-mistakes.yaml), CLI flags (`--agent`), or programmatically using the `config` and `types` packages.
- ACP agents support dynamic targeting via `acp:<target>` syntax for custom backends without code changes.
- Auto mode (`AgentAuto`) selects the first available agent at runtime by probing the host system.

## Frequently Asked Questions

### Which AI coding agents are supported by no-mistakes?

no-mistakes supports Anthropic Claude Code, AWS Code Codex CLI, Rovo Dev, OpenCode, Pi AI, GitHub Copilot CLI, and dynamic ACP agents. An auto-detection mode is also available to automatically select the first available agent on your system according to the logic in [`internal/agent/agent.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/agent.go).

### How does the auto-detection mode work?

Auto mode (`AgentAuto` or `"auto"` in configuration) iterates through available agent implementations at startup and selects the first one that successfully launches on your host. This eliminates the need to specify a particular agent when you have multiple tools installed.

### Can I use custom ACP agents with no-mistakes?

Yes. The ACP agent type supports dynamic targeting using the syntax `acp:<target>`. When you specify a target like `acp:my-custom-backend`, the implementation in [`internal/agent/acpx.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/acpx.go) resolves and loads the agent at runtime without requiring modifications to the core `no-mistakes` codebase.

### Where are the agent implementations defined?

Agent constants are declared in [`internal/types/types.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/types/types.go), while concrete implementations reside in [`internal/agent/claude.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/claude.go), [`internal/agent/codex.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/codex.go), [`internal/agent/copilot.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/copilot.go), [`internal/agent/rovodev.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/rovodev.go), [`internal/agent/opencode.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/opencode.go), [`internal/agent/pi.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/pi.go), and [`internal/agent/acpx.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/acpx.go). The factory logic that instantiates these agents is located in [`internal/agent/agent.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/agent.go).