Did you get it working in the end? I assume you didn't share your setup/config anywhere?
More or less what it says in the README:
fence -t code -- claude --dangerously-skip-permissions
Or wrap it in a function as an alias # cat prompt.md | ralph
function ralph() {
fence -t code -- \
claude --verbose --dangerously-skip-permissions --output-format stream-json -p "$@" \
| jq -r 'select(.type == "assistant") | .message.content[]? | select(.type? == "text") | .text'
}