`comint-term-environment' consults `system-uses-terminfo' to determine how to set environment variables to indicate comint's terminal capabilities. However, `system-uses-terminfo' describes whether the host system running Emacs uses terminfo, not whether the remote system uses it. Similarly for `comint-terminfo-terminal'. If `comint-term-environment' were aware of connection-local variables, it would be possible to create a connection-local profile to configure this for remote hosts, e.g.: (connection-local-set-profile-variables 'remote-terminfo '((system-uses-terminfo . t) (comint-terminfo-terminal . "dumb-emacs-ansi"))) (connection-local-set-profiles '(:application tramp :machine "foo") 'remote-terminfo)) (Note: "dumb-emacs-ansi" comes from the ncurses-term package[1] in Debian, and should be a good value to represent comint's capabilities.) This lets the user pass a terminfo-friendly value for TERM to the remote system, even if the local system doesn't use terminfo. Then programs on the remote system can consult terminfo to their hearts' content. I've attached a patch that does this, assuming the reasoning above makes sense. Perhaps it also warrants an entry in NEWS? I wasn't sure... [1] https://packages.debian.org/buster/all/ncurses-term/filelist