HTTPie needs --ignore-stdin in non-TTY environments like Claude Code
HTTPie detects whether it’s running in a TTY. When there’s no TTY, like when Claude Code invokes it as a subprocess, HTTPie assumes stdin might have data coming and interprets the request as a POST, even if you meant a GET. The fix is --ignore-stdin: http --ignore-stdin GET localhost:3000/things The catch: once you tell Claude Code to always use --ignore-stdin, it will also use it when piping data, which breaks that use case entirely: ...