claude --print returns empty output (exit 0) in v2.1.109
Resolved 💬 2 comments Opened Apr 15, 2026 by spencech Closed Apr 15, 2026
Description
claude --print returns empty stdout with exit code 0 in version 2.1.109. This is a regression from 2.1.108 where --print worked correctly.
Reproduction
$ claude --version
2.1.109 (Claude Code)
$ claude --print -p 'say hello'
# (empty output, exit 0)
$ echo "say hello" | claude --print
# (empty output, exit 0)
$ claude --print --no-session-persistence --permission-mode bypassPermissions -p 'Reply with exactly: {"test": true}'
# (empty output, exit 0)
All three forms produce zero stdout, zero stderr, and exit code 0.
Impact
Any application using claude --print as a subprocess is broken:
- Custom macOS apps that fork Claude for background tasks (classification, summarization, triage)
- Piped workflows (
echo "prompt" | claude --print | jq) - Any automation relying on
--printmode
The interactive mode (without --print) continues to work normally.
Environment
- macOS 15.4 (Darwin 25.2.0)
- claude-code 2.1.109
- Rate limits are well within bounds (15% of 5-hour window)
- Auth is valid (interactive sessions work fine)
Expected behavior
claude --print should output the model's response to stdout and exit, as it did in 2.1.108.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗