Cursor ACP doesn’t seem to return token usage in PromptResponse.usage

Where does the bug appear (feature/product)?

Cursor CLI

Describe the Bug

We’re using Cursor in ACP mode via agent acp.

In this mode, session/prompt doesn’t seem to return token usage in PromptResponse.usage. The response completes normally, but the usage field is missing, so ACP clients can’t report per-turn token usage for Cursor ACP sessions.

Steps to Reproduce

  1. Start Cursor Agent in ACP mode:

    agent acp

  2. From an ACP client, initialize the connection and create a new session with session/new.

  3. Send a prompt using session/prompt, for example:

    {
    “jsonrpc”: “2.0”,
    “id”: 1,
    “method”: “session/prompt”,
    “params”: {
    “sessionId”: “”,
    “prompt”: [
    {
    “type”: “text”,
    “text”: “Say hello in one sentence.”
    }
    ]
    }
    }

  4. Wait for the prompt turn to complete.

  5. Inspect the JSON-RPC response for the session/prompt request.

Expected Behavior

Expected: PromptResponse.usage should include token counts, such as input tokens, output tokens, cached read tokens, and total tokens if available. Like this:
{
“jsonrpc”: “2.0”,
“id”: 1,
“result”: {
“stopReason”: “end_turn”,
“usage”: {
“totalTokens”: 12345,
“inputTokens”: 10000,
“outputTokens”: 2000,
“thoughtTokens”: 300,
“cachedReadTokens”: 5000,
“cachedWriteTokens”: 0
}
}
}

Operating System

MacOS

Version Information

2026.05.09-0afadcc

For AI issues: which model did you use?

Auto

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey, thanks for the detailed report with repro steps. Confirmed, this is a bug. PromptResponse.usage isn’t being populated in ACP mode right now, even though the ACP SDK schema says it should be. I’ve reported it to the CLI team.

I can’t share an ETA for a fix yet. Once I have an update, We’ll reply in the thread.

Thanks for the quick confirmation and for reporting this to the CLI team. I really appreciate it.

Hope this can be fixed soon, and please let me know once there’s an update or a fix. Thanks again!