use-acpx

Provides knowledge about acpx CLI for agent-to-agent communication. Use when user asks about acpx commands, ACP protocol, agent sessions, prompt queueing, or scriptable agent workflows.

523 stars

Best use case

use-acpx is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Provides knowledge about acpx CLI for agent-to-agent communication. Use when user asks about acpx commands, ACP protocol, agent sessions, prompt queueing, or scriptable agent workflows.

Teams using use-acpx should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/use-acpx/SKILL.md --create-dirs "https://raw.githubusercontent.com/FradSer/dotclaude/main/acpx/skills/use-acpx/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/use-acpx/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How use-acpx Compares

Feature / Agentuse-acpxStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Provides knowledge about acpx CLI for agent-to-agent communication. Use when user asks about acpx commands, ACP protocol, agent sessions, prompt queueing, or scriptable agent workflows.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# acpx

## CRITICAL: Background Execution Required

**MUST** use `run_in_background: true` for ALL `acpx` bash commands. Running `acpx` in the foreground will block Claude Code and make the session unusable.

When executing any `acpx` command:

```json
{
  "command": "acpx codex 'your prompt here'",
  "run_in_background": true
}
```

Failure to run in background will cause Claude Code to block indefinitely while waiting for the agent to complete.

## What acpx is

`acpx` is a headless, scriptable CLI client for the Agent Client Protocol (ACP). It is built for agent-to-agent communication over the command line and avoids PTY scraping.

**WARNING**: Never use Claude-related ACP agents with acpx. Using Claude to call Claude creates recursive loops and unpredictable behavior. Use alternative agents like `codex`, `openclaw`, `gemini`, etc.

Core capabilities:

- Persistent multi-turn sessions per repo/cwd
- One-shot execution mode (`exec`)
- Named parallel sessions (`-s/--session`)
- Queue-aware prompt submission with optional fire-and-forget (`--no-wait`)
- Cooperative cancel command (`cancel`) for in-flight turns
- Graceful cancellation via ACP `session/cancel` on interrupt
- Session control methods (`set-mode`, `set <key> <value>`)
- Agent reconnect/resume after dead subprocess detection
- Prompt input via stdin or `--file`
- Config files with global+project merge and `config show|init`
- Session metadata/history inspection (`sessions show`, `sessions history`)
- Local agent process checks via `status`
- Stable ACP client methods for filesystem and terminal requests
- Stable ACP `authenticate` handshake via env/config credentials
- Structured streaming output (`text`, `json`, `quiet`)
- Built-in agent registry plus raw `--agent` escape hatch

## Install

```bash
npm i -g acpx
```

For normal session reuse, prefer a global install over `npx`.

## Command model

`prompt` is the default verb. Commands follow this shape:

```bash
acpx [global_options] [<agent>] [verb] [prompt_options] [prompt_text...]
```

Verbs: `prompt` (default), `exec`, `cancel`, `set-mode`, `set`, `status`, `sessions`, `config`. When prompt text is omitted and stdin is piped, `acpx` reads from stdin. For the full grammar, see `./references/cli.md`.

## Built-in agent registry

**IMPORTANT**: Do NOT use Claude-related ACP agents (e.g., `claude`, `@zed-industries/claude-agent-acp`). These create recursive agent-calling-agent scenarios that can cause infinite loops or unexpected behavior.

Friendly agent names resolve to commands:

- `pi` -> `npx pi-acp`
- `openclaw` -> `openclaw acp`
- `codex` -> `npx @zed-industries/codex-acp`
- `gemini` -> `gemini --acp`
- `cursor` -> `cursor-agent acp`
- `copilot` -> `copilot --acp --stdio`
- `droid` -> `droid exec --output-format acp`
- `kimi` -> `kimi acp`
- `opencode` -> `npx -y opencode-ai acp`
- `kiro` -> `kiro-cli acp`
- `kilocode` -> `npx -y @kilocode/cli acp`
- `qwen` -> `qwen --acp`

Rules:

- Default agent is `codex` for top-level `prompt`, `exec`, and `sessions`.
- Unknown positional agent tokens are treated as raw agent commands.
- `--agent <command>` explicitly sets a raw ACP adapter command.
- Do not combine a positional agent and `--agent` in the same command.

## Commands

### Prompt (default, persistent session)

```bash
acpx codex 'fix flaky tests'             # implicit prompt
acpx codex prompt 'fix flaky tests'      # explicit
acpx prompt 'fix flaky tests'            # defaults to codex
```

Auto-resumes the saved session for scope `(agentCommand, cwd, name?)`. Exits code `4` if no session exists — run `sessions new` first. Queue-aware: submits to running queue owner when a prompt is already in flight. On interrupt, sends ACP `session/cancel` before force-kill.

Prompt options: `-s/--session <name>`, `--no-wait`, `-f/--file <path>`.

### Exec (one-shot)

```bash
acpx codex exec 'summarize this repo'
```

Runs a single prompt in a temporary session; does not reuse or persist session state.

### Cancel / Mode / Set

```bash
acpx codex cancel
acpx codex set-mode auto
acpx codex set approval_policy conservative
```

`cancel` sends cooperative `session/cancel` via IPC. `set-mode` calls ACP `session/set_mode` (mode ids are adapter-defined). `set` calls ACP `session/set_config_option`. Both route through queue-owner IPC when active.

### Sessions

```bash
acpx sessions list
acpx sessions new [--name <name>]
acpx sessions close [name]
acpx sessions show [name]
acpx sessions history [name] [--limit <count>]
acpx status

acpx codex sessions new --name backend
acpx codex sessions close backend
acpx codex sessions show backend
acpx codex sessions history backend --limit 20
acpx codex status
```

Key behaviors: `sessions` and `sessions list` are equivalent. `new` creates a fresh session for the current scope; if an open session already exists in that scope, it is soft-closed. `show [name]` prints metadata; `history [name]` prints turn previews (default 20).

For the complete subcommand list including `ensure`, all flags, global options, config keys, session scoping rules, queueing internals, output format details, permission modes, and exit codes, see `./references/cli.md`.

## Global options (summary)

- `--agent <command>`: raw ACP command (escape hatch)
- `--cwd <dir>`: working directory for session scope
- `--approve-all` / `--approve-reads` (default) / `--deny-all`: permission mode (mutually exclusive)
- `--format <fmt>`: `text` (default), `json`, `quiet`
- `--timeout <seconds>` / `--ttl <seconds>`: timing controls (TTL default 300s)
- `--verbose`: ACP/debug logs to stderr

## Reference summary

**Config files**: merged in order — `~/.acpx/config.json` (global), `<cwd>/.acpxrc.json` (project). Key settings: `defaultAgent`, `defaultPermissions`, `ttl`, `timeout`, `format`, `agents` map, `auth` map. Run `acpx config show` to inspect; `acpx config init` to create global template.

**Session behavior**: sessions scoped by `agentCommand` + absolute `cwd` + optional `name`. Records in `~/.acpx/sessions/*.json`. Prompt mode auto-resumes by walking up to git root; exits code `4` if no session found (run `sessions new`). Dead PIDs are respawned. Use `-s/--session <name>` for parallel conversations.

**Prompt queueing**: the first `acpx` process for a session becomes the queue owner; others submit over local IPC. Default: wait for completion. `--no-wait`: return after enqueue. `Ctrl+C` sends ACP `session/cancel` before force-kill. Owner shuts down after TTL idle (default 300s).

**Output formats**: `--format text` (default) human-readable stream, `--format json` NDJSON for automation, `--format quiet` final text only, `--json-strict` suppresses non-JSON stderr.

**Permission modes**: choose one — `--approve-all`, `--approve-reads` (default), `--deny-all`. If all requests are denied/cancelled and none approved, `acpx` exits with permission-denied status.

For full details on all options, subcommands, exit codes, and IPC internals, see `./references/cli.md`.

## Practical workflows

Persistent repo assistant (multi-turn):

```bash
acpx codex 'inspect failing tests and propose a fix plan'
acpx codex 'apply the smallest safe fix and run tests'
```

Parallel named sessions + queued follow-up:

```bash
acpx codex -s backend 'fix API pagination bug'
acpx codex -s docs 'draft changelog entry for release'
acpx codex --no-wait 'after tests, summarize root causes and next steps'
```

One-shot and automation:

```bash
acpx --format quiet exec 'summarize repo purpose in 3 lines'
acpx --format json codex 'review current branch changes' > events.ndjson
acpx --cwd ~/repos/shop --approve-all codex -s pr-842 \
  'review PR #842 for regressions and propose minimal patch'
```

For more examples including stdin/file prompts, session management, and JSON automation pipelines, see `./references/cli.md`.

Related Skills

update-readme

523
from FradSer/dotclaude

Updates README.md and README.zh-CN.md to reflect the project's current state. Use this skill whenever the user asks to "update the README", "sync the docs", "update documentation", "reflect latest changes in README", or wants both the English and Chinese READMEs to match the current project. Always triggers when the user mentions updating or regenerating README files, especially for bilingual (EN/ZH) projects.

swiftui-review

523
from FradSer/dotclaude

Reviews SwiftUI code for best practices on modern APIs, maintainability, and performance. This skill should be used when the user asks to review SwiftUI code, check for deprecated iOS/macOS APIs, validate data flow patterns, or audit accessibility compliance in Swift projects.

writing-plans

523
from FradSer/dotclaude

Creates executable implementation plans that break down designs into detailed tasks. This skill should be used when the user has completed a brainstorming design and asks to "write an implementation plan" or "create step-by-step tasks" for execution.

systematic-debugging

523
from FradSer/dotclaude

Provides a systematic debugging methodology with a 4-phase root cause analysis process. This skill should be used when the user reports a bug, error, test failure, or unexpected behavior, ensuring thorough investigation precedes any code changes.

need-vet

523
from FradSer/dotclaude

This skill should be used when the user invokes /need-vet to enable work verification for the current task. Claude must verify completion and append the verified tag before the session can end.

executing-plans

523
from FradSer/dotclaude

Executes written implementation plans efficiently using agent teams or subagents. This skill should be used when the user has a completed plan.md, asks to "execute the plan", or is ready to run batches of independent tasks in parallel following BDD principles.

build-like-iphone-team

523
from FradSer/dotclaude

Applies Apple's Project Purple design philosophy for radical innovation. This skill should be used when the user wants to challenge industry conventions, approach open-ended problems requiring disruptive thinking, or when standard brainstorming needs a breakthrough approach.

brainstorming

523
from FradSer/dotclaude

Structures collaborative dialogue to turn rough ideas into implementation-ready designs. This skill should be used when the user has a new idea, feature request, ambiguous requirement, or asks to "brainstorm a solution" before implementation begins.

behavior-driven-development

523
from FradSer/dotclaude

Applies behavior-driven development principles including Gherkin scenarios and test-driven development. This skill should be used when the user asks to implement features, fix bugs, or when writing executable specifications and tests before writing production code.

agent-team-driven-development

523
from FradSer/dotclaude

Provides guidance on coordinating multiple specialized teammates working in parallel. This skill should be used when the user needs to execute complex implementation plans, resolve cross-cutting concerns, or coordinate independent work streams requiring communication.

shadcn

523
from FradSer/dotclaude

Manages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI. Provides project context, component docs, and usage examples. Applies when working with shadcn/ui, component registries, presets, --preset codes, or any project with a components.json file. Also triggers for "shadcn init", "create an app with --preset", or "switch to --preset".

refactor

523
from FradSer/dotclaude

Executes automated refactoring for specific files, directories, or semantic queries. This skill should be used when the user asks to refactor specific files or directories, simplify recently changed code, clean up dead code in a limited scope, or invokes "/refactor".