github / github/copilot-cli

Xcode ACP custom agent: session/prompt always fails with "failed to produce a response" despite a working CLI and valid auth

Open
#4,227 0 comments 0 reactions 0 assignees View on GitHub
area:non-interactive
Dominant language
Shell
Stars
11.2k
Forks
1.9k
Avg merge
14h 16m
Merged PRs (30d)
6

Description

Goal: Set up GitHub Copilot CLI as a custom agent in Xcode's Coding Intelligence settings via the Agent Client Protocol ( --acp ).

Setup:

• Copilot CLI 1.0.73, installed via Homebrew ( /opt/homebrew/bin/copilot )
• Xcode Coding Intelligence → custom agent config:
• Executable: /opt/homebrew/bin/copilot
• Arguments: --acp
• Interpreter: blank
• Environment Variables: blank (later also tried setting these — see below)
• copilot works fine standalone in Terminal (chat, auth all functional)

Symptom:
As soon as I send any prompt in Xcode (even plain text like "test" ), it fails with:

JSON-RPC request with ID JSONRPCID(rawValue: "D1C50172-B98A-4ABD-8550-6E06581D4B42", intValue: nil) failed to produce a response.

initialize , authenticate , and session/new all appear to succeed — only the prompt request fails, immediately, every time.

Troubleshooting already attempted (no change in any case):

1. Fully quit and relaunched Xcode.
2. Removed and re-added the custom agent entry.
3. Set GITHUB_TOKEN and COPILOT_GITHUB_TOKEN explicitly in Xcode's agent Environment Variables field (I have these set in my shell profile normally, suspecting Xcode's spawned process doesn't inherit them — no effect either way).
4. Confirmed Xcode's agent config only supports Executable + Arguments (stdio) — no URL/host/port field available to try TCP mode ( --acp --port ) as a workaround.
5. Don't have admin access, so can't use Console.app to pull crash/error logs for the copilot process.

Independent verification (works fine outside Xcode):
I manually replayed the full ACP handshake and prompt flow over raw stdio JSON-RPC against the same CLI binary/version:
initialize → authenticate → session/new → session/prompt , using both plain integer IDs and UUID-string IDs (matching the format Xcode uses). All four requests completed successfully, including a real streamed model response and stopReason: "end_turn" .

This strongly suggests the CLI's ACP server implementation is functioning correctly, and the issue lies in Xcode's ACP client — possibly around stdio pipe handling, a client-side capability/callback (e.g., permission requests) that isn't being answered, or some other difference between how Xcode spawns the process versus how Terminal/a manual harness does.

Ask: Any guidance on Xcode-side ACP client debugging, or known issues with this specific integration path, would be appreciated.

Contributor guide

Open the contributing guide

Research direction

Start with Xcode Coding Intelligence's custom agent configuration and the /opt/homebrew/bin/copilot --acp entry point. Reproduce session/prompt in Xcode while comparing it with the successful raw stdio JSON-RPC flow; done means Xcode receives the streamed response and end_turn result instead of the failed-to-produce-a-response error.

Written by the indexing model from the issue text.

Assessment

Tech stack
github
Domain
cli, devtools
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.