In the external special remote protocol, the File parameter of various requests is specified to be a regular file. If it could be a named pipe, this would open up useful possibilities: git-annex-cat, transitive transfers, git-annex-export --from option, OPT: "bundle" get + check (of checksum) in a single operation, to and from multiple remotes, faster git-annex-fsck --from, passing named pipes on git-annex command line (for streaming the outputs of a running command directly to a remote, or using git-annex as a building block of larger workflows), and maybe others.

An optional protocol request NAMEDPIPESSUPPORTED, similar to EXPORTSUPPORTED, could tell git-annex that the remote supports named pipes. For remotes that don't declare such support, it could be emulated: before sending e.g. TRANSFER STORE Key File, if File is a pipe and the remote hasn't said it supports pipes, git-annex would drain the pipe to a TempFile and then send TRANSFER STORE Key TempFile instead. Then the rest of git-annex can presume pipes support.