Agent skill

Acp Debug

by kdlbs in kdlbs/kandev

Debug an ACP agent CLI by spawning it, speaking raw JSON-RPC, and capturing every frame to a JSONL file.

AGPL-3.0Auto-check passedProductivity & Automation

Install Acp Debug

skills CLI
$ npx skills add kdlbs/kandev --skill acp-debug -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install kdlbs/kandev acp-debug --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/kdlbs/kandev.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/acp-debug .claude/skills/acp-debug && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
acp-debug
GitHub stars
909
Token cost
~2.1k tokens
SKILL.md length
858 words
Files
1
Skills in repo
45
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Debug an ACP agent CLI by spawning it, speaking raw JSON-RPC, and capturing every frame to a JSONL file.

  • Works in 6 steps: Pick the sub-command that matches the… → Run the command → Read the JSONL file → …
  • The user asks to probe an agents capabilities
  • SKILL.md covers When to use this skill, Before anything else: build…, Sub-commands and Steps, plus 1 more section
  • Calls jq and make

What it does

Acp Debug is an agent skill from kdlbs/kandev. Debug an ACP agent CLI by spawning it, speaking raw JSON-RPC, and capturing every frame to a JSONL file. Use when the user asks to probe an agent's capabilities, compare agents, test a prompt against an agent, inspect raw ACP wire frames, or investigate why an agent fails to initialize.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Productivity & Automation. The repository describes itself as: AI Kanban & Development Environment. Orchestrate multiple agents, review changes, open PRs. Multi-provider, self-hostable, no telemetry. The licence is AGPL-3.0.

When your agent uses it

  • The user asks to probe an agents capabilities
  • Test a prompt against an agent
  • Inspect raw ACP wire frames
  • Investigate why an agent fails to initialize

Example prompts

  • “/acp-debug”

Requirements

  • Docker

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Pick the sub-command that matches the user's intent
  2. Run the command
  3. Read the JSONL file
  4. Summarize for the user
  5. If something looks wrong, walk the frames
  6. For matrix, read matrix-summary.json too

What it can do on your machine

Read from SKILL.md and the folder at commit b734113. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • jq
    • make

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Acp Debug loads about 2.1k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 858 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~74
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from kdlbs/kandev at commit b734113, republished under its AGPL-3.0 licence (© kdlbs). 858 words, ~2,068 tokens.

Download SKILL.mdSave it as .claude/skills/acp-debug/SKILL.md (or your agent's skills folder).
name
acp-debug
description
Debug an ACP agent CLI by spawning it, speaking raw JSON-RPC, and capturing every frame to a JSONL file. Use when the user asks to probe an agent's capabilities, compare agents, test a prompt against an agent, inspect raw ACP wire frames, or investigate why an agent fails to initialize.

ACP Debug

Run a headless ACP JSON-RPC session against any registered kandev agent (or an arbitrary command), record every wire frame to a JSONL file, and summarize the handshake. Backed by the acpdbg binary at apps/backend/bin/acpdbg.

When to use this skill

  • "what models does auggie advertise"
  • "probe claude-acp" / "probe all agents" / "run the matrix"
  • "debug why copilot-acp isn't starting"
  • "what does a session/new response actually look like for X"
  • "try this prompt against auggie with mode=ask"
  • "reproduce session/load for session <id> against claude-acp"
  • User mentions inspecting raw ACP wire payloads or a JSONL file from an earlier run

Before anything else: build the binary if missing

bash
test -x apps/backend/bin/acpdbg || make -C apps/backend build-acpdbg

Sub-commands

text
acpdbg list                                            # enumerate registered ACP agents
acpdbg probe <agent>                                   # initialize + session/new + close
acpdbg probe --exec "<cmd> [args...]"                  # probe an arbitrary binary not in the registry
acpdbg mcp-probe <agent>                                # inject a temporary MCP sentinel into session/new
acpdbg prompt --prompt "..." [--model M] [--mode M] <agent>
acpdbg session-load --session-id <id> <agent>
acpdbg matrix                                          # probe every ACP agent in parallel

Flags MUST come before the positional <agent>. The CLI uses Go's stdlib flag parser, which stops at the first non-flag token — so any flag placed after <agent> is silently ignored (probe/matrix, e.g. a dropped --timeout) or errors (prompt → --prompt is required). Always write acpdbg prompt --prompt "..." --timeout 240s <agent>, not acpdbg prompt <agent> --prompt ....

Shared flags (apply to every sub-command):

  • --out DIR — JSONL output directory (default ./acp-debug/)
  • --file PATH — exact JSONL path, overrides --out
  • --timeout DUR — overall run timeout (default 30s)
  • --workdir PATH — child cwd (default: fresh /tmp/kandev-acpdbg-<pid>-*)
  • --verbose — mirror frames to stderr
  • --stderr — capture child stderr into the JSONL

Steps

Create a task for each step below and mark them as completed as you go.

1. Pick the sub-command that matches the user's intent
  • "what models does X have" / "does X support modes" → acpdbg probe X
  • "test a prompt against X" → acpdbg prompt --prompt "..." X
  • "compare all agents" / "run the matrix" → acpdbg matrix
  • "resume session <id>" → acpdbg session-load --session-id <id> X
  • "did this agent attach the injected MCP server" → acpdbg mcp-probe X
  • "try this random binary" → acpdbg probe --exec "path/to/bin --acp"
2. Run the command

Always capture stdout — it contains the JSONL file path (and for matrix, the summary table and matrix-summary.json path).

bash
apps/backend/bin/acpdbg probe --timeout 45s auggie

For matrix, prefer --timeout 60s so npx-spawned agents have time to cold-start.

For Claude ACP, the generated default workdir is an absolute temporary directory and is sent as the ACP cwd; no --workdir flag is required. If you override it, supply an existing absolute directory (for example, run mkdir -p /tmp/kandev-acpdbg-claude before passing that path to --workdir). An empty cwd can cause Claude to reject session/new; confirm the cwd in the recorded request frame before diagnosing a provider failure.

3. Read the JSONL file

The JSONL schema is:

directionMeaningExtra fields
metaacpdbg-generated markerevent (start / close), meta (map with agent, command, workdir for start; exit_code, reason for close)
sentFrame written to child's stdinframe (JSON-RPC request or reply)
receivedFrame read from child's stdoutframe (JSON-RPC request, response, or notification)
stderrChild stderr line (only when --stderr)line

Entries are strictly chronological. Each line is a single JSON object terminated by \n.

Useful jq recipes:

bash
# Full initialize response
jq -c 'select(.direction == "received" and .frame.id == 1)' acp-debug/<file>.jsonl

# Full session/new response (models, modes, auth)
jq '.frame.result' acp-debug/<file>.jsonl | head -50

# Just the models advertised
jq -r 'select(.direction == "received") | .frame.result.models.availableModels[]?.modelId' acp-debug/<file>.jsonl

# Close event (exit code + reason)
jq -c 'select(.direction == "meta" and .event == "close")' acp-debug/<file>.jsonl

# All agent-initiated requests we auto-replied to
jq -c 'select(.direction == "received" and .frame.method and .frame.id)' acp-debug/<file>.jsonl
4. Summarize for the user

Give a concise markdown summary: agent, protocol version, models found (with currentModelId), modes found (with currentModeId), auth methods, any errors, and the JSONL path for deeper inspection. Example:

text
**auggie** (protocol v1, auggie 0.20.1)
Models (11): claude-sonnet-4-6 (current), claude-opus-4-6, gpt-5-4, …
Modes  (2):  default (current), ask
Auth methods: (none advertised)
JSONL: acp-debug/auggie-probe-20260409-183104.jsonl
Show full SKILL.md (356 more words)Show less
5. If something looks wrong, walk the frames

Common failure modes:

SymptomLikely causeNext step
meta close exit_code: 127 immediatelychild binary not installedCheck which <cmd>; suggest install command
meta close before any received framechild crashed on startupRe-run with --stderr to capture the error
initialize response has populated authMethods but session/new failsauth requiredSurface the auth method ids; suggest setting env var / running CLI login
session/new hangs (context deadline exceeded)agent waiting on an unanswered agent-initiated requestCheck JSONL for received frames with method + id that we auto-replied to with method not found — the agent may be retrying
Response has no models / modes fieldsagent doesn't expose them over ACPNot a bug — document the gap

Re-run with --stderr whenever the child exits before the handshake completes; the stderr lines land in the JSONL and usually contain the root cause.

For mcp-probe, distinguish sentinel_delivered (the agent accepted the session/new configuration) from initialize_observed and tools_list_observed (the temporary endpoint received MCP traffic). An unobserved result is intentionally not a generic agent failure: a provider can attach lazily or ignore the supplied transport. Sentinel metadata has only opaque connection IDs and timestamps; the explicit acpdbg JSONL still contains raw ACP frames and must stay a developer-only artifact.

6. For matrix, read matrix-summary.json too
bash
jq '.' acp-debug/matrix-summary.json

One entry per agent with status, models_count, current_model_id, auth_methods_count, duration_ms, and jsonl (the full per-agent JSONL file). Useful for answering "which agents succeeded / failed / need auth" without re-reading every JSONL.

What this skill does NOT do

  • No interactive UI. For ad-hoc side-by-side comparison, read the matrix-summary.json output or build a separate visualization tool on top of the JSONL.
  • No permission-request handling beyond canned replies. Agent-initiated requests (fs/read_text_file, session/request_permission, etc.) are answered with -32601 method not found so the session doesn't hang. If you need to exercise a real permission flow, use the full kandev backend.
  • No automatic credential bootstrap. The child inherits the parent shell's env; if an auth check fails the skill reports which methods were advertised and lets the user fix their local credentials.
  • No Docker / remote executor support. Standalone subprocess only — same as a manual auggie --acp invocation.

© kdlbs, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/acp-debug of kdlbs/kandev.

Open the folder on GitHubat commit b734113

Compare with similar skills

Acp Debug next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Acp Debug compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Acp Debug this skillkdlbs/kandev909—~2.1kAutomated safety check: PassAGPL-3.0
Orca Linear Ticket Workflowstablyai/orca87k1 repos~522Automated safety check: PassMIT
cmux Diagnosticsmanaflow-ai/cmux28k1 repos~819Automated safety check: PassCustom licence
OpenObserve PR Briefopenobserve/openobserve22k—~1.8kAutomated safety check: PassAGPL-3.0
Issue From NotesAxonIQ/AxonFramework3.6k—~1.1kAutomated safety check: PassApache-2.0
Sesh Terminal Sessionsjoshmedeski/sesh2.9k—~2.3kAutomated safety check: PassMIT

Similar skills

  • Linear ticket work through Orca's CLI. Use when working from a linked Linear issue, finishing work with a PR/MR link and a completion comment, moving a ticket…

    87k GitHub starsUsed in 1 repo~522 tokens
    Productivity & AutomationAuto-check passed
  • cmux Diagnostics

    manaflow-ai/cmux

    Runs a read-only health check for cmux and explains what it finds, covering the CLI and socket, settings, agent hooks, session restore and notifications.

    28k GitHub starsUsed in 1 repo~819 tokens
    Productivity & AutomationAuto-check passed
  • OpenObserve PR Brief

    openobserve/openobserve

    Produces a read-only morning brief of your open pull requests across the openobserve GitHub org, with a next step for each and a reminder for idle ones.

    22k GitHub stars~1.8k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Issue From Notes

    AxonIQ/AxonFramework

    Create well-structured GitHub issues from any source: meeting notes, transcriptions, conversation context, informal descriptions, or direct requests.

    3.6k GitHub stars~1.1k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Sesh Terminal Sessions

    joshmedeski/sesh

    Starts work in tmux sessions and windows through sesh instead of raw tmux commands, resolving names, directories, zoxide results and configured sessions.

    2.9k GitHub stars~2.3k tokensUpdated yesterday
    Productivity & AutomationAuto-check passed
  • n8n Code Node JavaScript

    czlonkowski/n8n-skills

    Guides writing JavaScript in n8n Code nodes: picking an execution mode, reading input data, returning items, using built-in helpers and avoiding common errors.

    6.4k GitHub stars~4.9k tokensUpdated 21 days ago
    Productivity & AutomationAuto-check passed

More from kdlbs/kandev

All 45 skills in this repo
  • PR Walkthrough

    kdlbs/kandev

    Generate a single-file HTML walkthrough that explains a PR's purpose, user impact, interface changes, compatibility risks, and implementation.

    909 GitHub stars~6.2k tokensUpdated today
    Auto-check passed
  • Debug

    kdlbs/kandev

    Diagnose Kandev bugs, running-instance issues, UI/browser failures, and runtime behavior.

    909 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Improve Kandev's AI harness from session learnings or explicit requests.

    909 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Diagram Design

    kdlbs/kandev

    Create branded architecture, IT current-state, flowchart, sequence, state machine, ER/data model, timeline, swimlane, quadrant, radar/spider, polar chart (polar/radial lollipop), loop/flywheel…

    909 GitHub starsUsed in 1 repo~8k tokens
    Auto-check passed
  • TDD

    kdlbs/kandev

    Implement changes using Test-Driven Development (Red-Green-Refactor).

    909 GitHub stars~4.2k tokensUpdated today
    Auto-check passed
  • Verify

    kdlbs/kandev

    Run a broad local verification audit only when the user explicitly requests it or PR/CI remediation requires it.

    909 GitHub stars~2.7k tokensUpdated today
    Auto-check passed

Questions about Acp Debug

What does Acp Debug do?

Debug an ACP agent CLI by spawning it, speaking raw JSON-RPC, and capturing every frame to a JSONL file. Acp Debug is an agent skill from kdlbs/kandev. Debug an ACP agent CLI by spawning it, speaking raw JSON-RPC, and capturing every frame to a JSONL file.

When should I use Acp Debug?

Acp Debug fits situations like: the user asks to probe an agents capabilities; test a prompt against an agent; inspect raw ACP wire frames; investigate why an agent fails to initialize.

How do I install Acp Debug in Claude Code?

Run `npx skills add kdlbs/kandev --skill acp-debug -a claude-code`. Or copy the skill folder (.agents/skills/acp-debug in kdlbs/kandev) into .claude/skills/acp-debug in your project. Claude Code loads it when a task matches its description.

How do I install Acp Debug in Codex?

Run `npx skills add kdlbs/kandev --skill acp-debug -a codex`. Or copy the skill folder (.agents/skills/acp-debug in kdlbs/kandev) into .agents/skills/acp-debug in your project. Codex loads it when a task matches its description.

Can I use Acp Debug in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kdlbs/kandev --skill acp-debug -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/acp-debug, .gemini/skills/acp-debug, .github/skills/acp-debug and .opencode/skills/acp-debug in your project.

What does Acp Debug need to run?

Going by SKILL.md and its folder, Acp Debug needs the command-line tools its instructions call (jq and make). Our summary lists: Docker.

Does Acp Debug access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Acp Debug safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Acp Debug use?

Acp Debug is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Acp Debug use?

About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Acp Debug?

Skills that share tags, products or a category with Acp Debug: Orca Linear Ticket Workflow (stablyai/orca, 87k stars), cmux Diagnostics (manaflow-ai/cmux, 28k stars), OpenObserve PR Brief (openobserve/openobserve, 22k stars) and Issue From Notes (AxonIQ/AxonFramework, 3.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Acp Debug?

kdlbs (a GitHub organization) maintains it in kdlbs/kandev, which has 909 GitHub stars. The repository holds 45 skills in this directory. The repository was last updated on October 8, 2026.

Source: kdlbs/kandev on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.