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 --print mode

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.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗