Headless software

Headless software (e.g. "headless Linux", ) is software capable of working on a device without a graphical user interface. Such software receives inputs and provides output through other interfaces like network or serial port and is common on servers and embedded devices.

The term "headless" is most often used when the ordinary version of the program requires that a graphics card or similar graphical interface device be present. For instance, the absence of a graphic card, mouse or keyboard may cause an initialization process that assumes their presence to fail, or the graphics card may be relied upon to build some offline image that is later served through network.

A headless computer (for example, and most commonly, a server) may be missing many of the system libraries that support the display of graphical interfaces. Software that expects these libraries may fail to start or even to compile if such libraries are not present.

Headless agents and games
Video games typically use a headless server for simulation of a multiplayer environment. "A headless server does not render any visuals, and there is nobody playing on it locally. This enables a dedicated server to focus on gameplay logic and moderating incoming information from clients, making the most of its resources for hosting a game."

Additionally, headless clients can be used to automate testing, play as NPC AIs, or integrate with an external artificial human companion system.

Headless simulations of games are used to accelerate the rate of gradient descent in machine learning, for example, by enabling large batches of simulation to be run in parallel.

Headless rendering
When no physical screen is present, software can still be used to render images for many applications.

In a headless website configuration, the frontend presentation is server-side rendered.

Headless rendering is also used in films and generation of synthetic data. For example, Blender provides command-line rendering.