In the terminal, I type the command emacsclient -s test -a emacs --eval "(message \"hello\")" Emacs visits a file called (message "hello"), so in fact it interprets the last input as the name to a file instead of evaluating the lisp expression.