The surface renders ANSI colour. A colour terminal and a browser console both do; a bare pipe or a file does not. A command that can render richly with colour and plainly without it — an image thumbnail as ANSI half-blocks or an ASCII ramp — reads this to choose, and the plain rendering is always the floor.
The surface's operator sits at the same filesystem the engine runs on, so a path the engine resolves is a path they can open. True only for an in-process local shell. When false, a builtin that would write to disk must deliver through the surface instead, because the engine's disk is somebody else's machine.
The surface can put a file where its operator can reach it. What that means is the surface's business — a path on the local CLI's disk, a path on a remote CLI's client machine, a saved file in a browser — but never the daemon host's disk.
The surface can read a line without echoing it (password entry).
The surface can open content in a local editor and return the edited result.
The surface can put many files into a directory
structure of its own. True for any shell, remote included; false for a
browser, which has no directory to fill and can only accept files one at a
time. It answers a different question from engineFilesystem: not whose
disk, but whether there is one at all.
The surface can run a pipeline's non-first
segments (... | grep foo) through its own tools. Nothing ever spawns on
a daemon host: the local CLI runs segments in-process, a remote CLI runs
them on the client machine, and a browser surface lacks the capability
and fails such pipelines with a clear message.
The surface can run a !-prefixed host-shell
command on its own machine. A daemon delegates this capability to the
command's originating surface and never launches the process itself.
OptionaltasksThe engine may start long jobs that change things beyond
its host (a cloud's resources, and its bill): the tasks tier, declared
only by a daemon whose operator granted it at launch. Absent means no.
The surface is an interactive terminal (as opposed to a pipe, a script, or a headless host).
What interaction an attached surface can provide.