Comments
Comments create a discussion thread on any issue. Use them to record decisions, share findings, or leave context for the next person — or agent — who picks up the work.
Add a comment
xpo comment <id> "Fixed in auth.go — the token wasn't being refreshed on 401"
Comments support full markdown. For multi-line comments, pipe from stdin:
xpo comment <id> <<'EOF'
## Root cause
The refresh token was stored in a cookie with `SameSite=Strict`,
which prevented it from being sent on cross-origin redirects.
## Fix
Changed to `SameSite=Lax` and added a fallback retry.
EOF
View comments
xpo comments <id>
Shows the full conversation history with timestamps and authors.
From JSON
echo '{"body": "comment body"}' | xpo comment <id> --json
Prints {"id": "<id>"} on success. Unknown fields are rejected, so a typo fails loudly instead of being ignored. See Scripting with JSON.
Agent comments
When agents work on issues via MCP, their comments are attributed to both the agent and the person it works for. The board shows the person's name with a dashed underline, and hovering it reveals the agent — "Claude Code for Alice". xpo comments shows "Alice (via Claude Code)" (see Agent identity). This creates a clear record of what the agent did, and who is accountable for it.
History
Every comment is part of the issue's full history:
xpo history <id>
This shows all events — including comments — with timestamps and authors. Each change reads as a sentence, the same on the board and in the CLI: "set priority to High", "removed the assignee", "added this issue to Cycle 12", "cleared the estimate".