# Complete List of Supported Agent Adapters for no-mistakes

> Discover all seven supported agent adapters for no-mistakes including Codex Claude Copilot OpenCode Native Command ACPX and Fallback. Seamlessly integrate LLM services and execute commands.

- Repository: [Kun Chen/no-mistakes](https://github.com/kunchenguid/no-mistakes)
- Tags: api-reference
- Published: 2026-07-19

---

**no-mistakes ships with seven built-in agent adapters—Codex, Claude, Copilot, OpenCode, Native Command, ACPX, and Fallback—that implement the `internal/agent/Agent` interface to communicate with LLM services or execute local commands.**

The no-mistakes pipeline uses pluggable agent adapters to execute prompts against various language models and external tools. Each adapter resides in the `internal/agent` directory and implements a strict contract defined in [`internal/agent/agent.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/agent.go), enabling consistent invocation across OpenAI Codex, Anthropic Claude, GitHub Copilot, and native system binaries.

## Built-in Agent Adapters

The repository provides seven production-ready adapters, each designed for specific backend services or execution environments:

- **Codex** ([`internal/agent/codex.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/codex.go)): Interfaces with the OpenAI Codex `exec` endpoint to run prompts and stream JSON-formatted activity metrics.

- **Claude** ([`internal/agent/claude.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/claude.go)): Communicates with Anthropic’s Claude API via the `/v1/complete` endpoint to obtain completions and optional usage metrics.

- **Copilot** ([`internal/agent/copilot.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/copilot.go)): Sends requests to the GitHub Copilot service through the private `github-copilot` endpoint for code generation tasks.

- **OpenCode** ([`internal/agent/opencode.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/opencode.go)): Leverages the OpenAI OpenCode model through the same `exec`-style API pattern used by the Codex adapter.

- **Native Command** ([`internal/agent/native_command.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/native_command.go)): Executes arbitrary local shell commands directly via `exec.CommandContext`, enabling non-LLM agents such as custom bash scripts or compiled binaries.

- **ACPX** ([`internal/agent/acpx.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/acpx.go)): Implements an adapter-capability-proxy pattern that wraps any external executable conforming to the `agent-compatible` JSON protocol.

- **Fallback** ([`internal/agent/fallback.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/fallback.go)): Provides a wrapper that automatically selects the first available adapter when the specific configured adapter is missing or fails.

## Core Agent Interface Contract

All adapters implement the `Agent` interface defined in [`internal/agent/agent.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/agent.go). This contract ensures consistent behavior across diverse backends:

- `Invoke(ctx, prompt)`: Executes the agent against a given prompt and returns a `Result` struct containing raw output, structured findings, and optional `InvocationMetrics`.

- `SessionResumer()`: Optional capability allowing adapters like Codex and Claude to maintain durable sessions across multiple invocations.

- `GateInstructionNeutralizer()`: Optional capability that can neutralize `.no-mistakes` instruction files during execution.

The pipeline selects an adapter based on the `agent` key in **[`.no-mistakes.yaml`](https://github.com/kunchenguid/no-mistakes/blob/main/.no-mistakes.yaml)**. If the requested adapter is unavailable, the fallback adapter chooses the next compatible implementation.

## Configuring and Using Agent Adapters

### CLI Invocation with Codex

Run a specific pipeline step using the Codex adapter from the command line:

```bash

# Run the "test" step using the Codex adapter

no-mistakes axi run --agent codex --step test

```

The CLI parses the `--agent codex` flag, loads the adapter from [`internal/agent/codex.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/codex.go), and forwards the prompt to the OpenAI Codex endpoint.

### Native Command Configuration

Configure a custom shell script as an agent by specifying the `native` adapter in your configuration file:

```yaml

# .no-mistakes.yaml (partial)

agent: native
agents:
  native:
    command: "./my-script.sh"
    # Optional: environment variables for the command

    env:
      API_TOKEN: "{{ .Env.API_TOKEN }}"

```

The `native_command` adapter reads the `command` field and executes it via `exec.CommandContext` as implemented in [`internal/agent/native_command.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/native_command.go).

### Session Management with Claude

For adapters that support durable sessions, capture the session ID for later resumption:

```go
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Minute)
defer cancel()

result, err := agents.Claude.Invoke(ctx, prompt)
if err != nil { /* handle error */ }

fmt.Println("Claude response:", result.Output)
fmt.Printf("Session ID: %s\n", result.Session.ID) // durable session ID

```

The `Claude` adapter implements `SessionResumer`, allowing subsequent `axi resume` commands to reconnect using the same session identifier.

## Summary

- **no-mistakes provides seven built-in adapters**: Codex, Claude, Copilot, OpenCode, Native Command, ACPX, and Fallback.
- **All adapters implement the `Agent` interface** in [`internal/agent/agent.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/agent.go), ensuring consistent `Invoke`, `SessionResumer`, and `GateInstructionNeutralizer` methods.
- **Configuration occurs via [`.no-mistakes.yaml`](https://github.com/kunchenguid/no-mistakes/blob/main/.no-mistakes.yaml)**, where the `agent` key selects the specific implementation.
- **The Fallback adapter** automatically selects the first available adapter when the primary choice is unavailable.
- **Native Command and ACPX adapters** enable integration of arbitrary external executables and scripts.

## Frequently Asked Questions

### What is the primary interface that all no-mistakes agent adapters implement?

Every adapter implements the `Agent` interface defined in [`internal/agent/agent.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/agent.go). This interface requires the `Invoke` method for executing prompts and optionally exposes `SessionResumer` for stateful connections and `GateInstructionNeutralizer` for handling instruction files.

### How do I configure a custom shell script as an agent adapter?

Set the `agent` key to `native` in [`.no-mistakes.yaml`](https://github.com/kunchenguid/no-mistakes/blob/main/.no-mistakes.yaml) and specify the `command` path under the `agents.native` block. The `native_command` adapter in [`internal/agent/native_command.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/native_command.go) executes the script via `exec.CommandContext` and passes configured environment variables.

### Which adapters support session resumption for long-running tasks?

The **Codex** and **Claude** adapters implement the `SessionResumer` interface, allowing them to return durable session IDs in the `Result` struct. These IDs enable the `axi resume` functionality to reconnect to existing conversations rather than starting new ones.

### What happens if the configured agent adapter is unavailable?

The **Fallback** adapter ([`internal/agent/fallback.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/agent/fallback.go)) automatically activates when the requested adapter is missing or fails to initialize. It iterates through available adapters and selects the first one that successfully responds, ensuring pipeline continuity.