Skip to content
Development
Skill

/acpx-faq

Run coding agents (codex, claude, agy) through the acpx ACP CLI - one-shot dispatch into named sessions you can watch live. Use before launching or prompting a subagent, or when a command fails, a session is missing, or a prompt is lost.

From plugin
skills
4032 skills

Claude Code

$ npx -y skills add tenequm/skills --skill acpx-faq --agent claude-code

SKILL.md

acpx-faq.SKILL.md
name: acpx-faq
description: Run coding agents (codex, claude, agy) through the acpx ACP CLI - one-shot dispatch into named sessions you can watch live. Use before launching or prompting a subagent, or when a command fails, a session is missing, or a prompt is lost.
metadata:
  version: "0.11.0"
  categories: "agents, operations"
  topics: "acpx, acp, agent-orchestration, troubleshooting, headless-agents"
  upstream: "acpx@0.21.1, @agentclientprotocol/claude-agent-acp@0.100.0, @agentclientprotocol/codex-acp@2.5.0, agy@1.5.0, agy_acp_server@1.4.5"
  openclaw:
    homepage: https://github.com/tenequm/skills/tree/main/skills/acpx-faq
    emoji: "🔌"

acpx FAQ

Drive coding agents headlessly through [acpx](https://github.com/openclaw/acpx) (>= 0.19.3).

Syntax authority

Syntax comes from the binary, not this file. `acpx --skill show acpx` is the vendor reference (~43k chars) and the tiebreaker on command shape - do NOT dump it into the transcript. Retrieve in this order:

1. `acpx --help` / `acpx <cmd> --help` - the flags you are about to compose. 2. One topic: `acpx --skill show acpx | rg -B2 -A12 '<term>'`, or a section: `acpx --skill show acpx | sed -n '/^## Sessions/,/^## /p'`. 3. Authoring something novel (a flow, an embedded runtime): dump ONCE to a scratch file and grep that file.

This file repeats nothing the reference covers. It carries only what the reference lacks: exit codes, failure semantics, traps, and per-agent recipes. If a syntax question is not answered here, it is answered there - go get it, never guess a flag. The repo's `docs/` (exit-codes, session-control, session-watch, permissions, config) cover some of what the shipped reference omits.

When this lane

acpx is the headless out-of-process executor lane: another agent, vendor or account, driven from a script or from another agent, in a plain terminal, ssh or cron. In-session fan-out stays on the harness's own subagent tool.

Invariants

1. **Global flags precede the agent subcommand** (`--cwd`, `--model`, `--approve-all`, `--agent`, `--format`, `--timeout`, `--ttl`, `--mcp-config`). The prompt form accepts only `-s`, `--no-wait`, `-f` (and `exec` also `--config-option`); other subcommands carry their own (`sessions watch --cursor`, `sessions export|import --cwd`). A global flag after the agent exits **1** with `error: unknown option`; a bad flag *before* the agent exits **2**. 2. **`-s <name>` never creates a session.** It resolves one, walking from `--cwd` up to the nearest `.git` - a directory *or file*, so each worktree and submodule is its own boundary; outside git only the exact `--cwd` is checked. No match exits **4**. Create first with `sessions ensure --name <n>` in the same directory. 3. **`status` is not a turn signal.** It probes the queue-owner process, never the agent, and keeps saying `running` after the turn has ended. Never gate automation on it. 4. **Permission flags are not a sandbox.**

  • **claude**: the adapter starts in `permissions.defaultMode` from the Claude

settings (`acceptEdits` / `auto` approve edits without asking). Only what that mode escalates reaches acpx as a permission request - `--deny-all` refuses those (exit 5), but an auto-approved edit never asks.

  • **codex**: writes inside its workspace-write sandbox (rooted at `--cwd`, plus temp

dirs) raise no request, so `--deny-all` still writes; outside fails with `Operation not permitted` - including a linked worktree's gitdir, so a sandboxed lane in a `git worktree` cannot commit (`index.lock: Operation not permitted`). Network is off unless `config.toml` enables `network_access`. `--approve-all` does not change the adapter's mode; `INITIAL_AGENT_MODE=read-only|agent|agent-full-access` at spawn, or `codex set-mode agent-full-access -s <n>` on a live session, does.

  • `--allowed-tools` / `--max-turns` reach only claude (and qoder); codex and agy

ignore them. `--allowed-tools` pre-approves and never restricts: `--help`'s `"" for no tools` means no approvals, not no tools.

The real filesystem control is which `--cwd` you hand it. 5. **`[done] end_turn` and exit 0 are not proof of success.** A content-filter kill, an MCP load failure, an API error (a 401 during a token refresh, a 400 model rejection), or a truncated turn all end that way. Read the stream, or require the agent to write a result file you can check. Before a fan-out, one cheap `exec` ("Reply OK") per agent and model catches auth and model errors - codex and agy reject an unadvertised `--model` before the turn, claude warns and forwards it. 6. **A persistent session holds a resident process stack only while it is busy or warm.** Every `-s` prompt elects a queue owner holding `npm exec -> node <adapter> -> <agent>` (plus the agent's MCP servers), roughly 550-650 MB before MCP. After the idle TTL (default 300s) the owner exits and the session stays resumable; the next prompt respawns it. `sessions close` ends the task - chain it into the launch line (see Per agent) so teardown never depends on anyone remembering; `--ttl 0` removes the self-reap. See Teardown.

Per agent

**Dispatch one-shot: `sessions ensure && prompt && sessions close`, one chained call.** One named session per task, one prompt, closed when the result file is read. The `&&` chain makes teardown mechanical - nothing reaps open records, and orphans come from unchained closes - while a turn that fails nonzero (timeout 3, permission 5) skips the close on its own, leaving the session open for recovery (see Talking to a live session). An externally cancelled turn still exits 0, so the result file, not the exit code, is the success check (invariant 5). Do not park a session for expected follow-ups: a blocker's state lives outside the conversation (creds are machine-level, partials belong in the result file) - answer it with a fresh session fed the brief plus that fil

Read more
@tenequm
Ships withskills

Claude Code skills for founders, developers, and web3 builders. This repository publishes reusable skill folders under skills//, ships stable bundle downloads through GitHub Releases, and publishes changed skills to ClawHub.

Stars on GitHub

Momentum

stars in total
40
Star history of tenequm/skills on GitHub, a chart by star-history.com

Other skills on skills.

chrome-extension-wxt

chrome-extension-wxt

Build Chrome extensions with the WXT framework and TypeScript, React, Vue, or Svelte. Use when creating browser extensions or…

@tenequm@tenequmInstall Skill
founder-playbook

founder-playbook

Decision validation and thinking frameworks for founders. Use to pressure-test a decision, validate next steps, or sanity-check…

@tenequm@tenequmInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about acpx-faq.

Which coding agents can use acpx-faq?
acpx-faq installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.