Option to run in headless mode

A great use case for procedural image generators is as part of an automated pipeline for generating assets in bulk (for example variations on particles or foliage). To make such workflows viable we need to be able to run the editor in command line mode, invokable from shell scripts or other external tooling, while varying various parameters to create outputs without manual edits.

Specifically two features need to be added in tandem:

  1. A ‘command line argument node’ in the node editor which takes its values from command line arguments, with a default in-editor value which can be fed into, for example, noise seeds. Various types could be supported, simple float values would already go a long way here. But it would be ideal to support, say, path arguments for loading images as well.
  2. Command line arguments which will simply run a .pixi pipeline and produce an output without launching the editor application. Users would run the executable with -input [.pixi] -output [.png] -arg [argname] [argval] command line options.

Proposal status: open-for-discussion
Discussion ends: 2026-05-14

Thank you for your proposal, it seems like demand for CLI mode is definitely there as this topic keeps coming back.

One thing for command line argument mode. I believe manually constructing graphs in CLI can be hard to do. It am afraid that would create long chains of barely understandable commands. Unless you have a good idea how it could look

I agree with that, which is why I think the CLI only need expose values on existing nodes (defined through the editor GUI) and not actual adding or removing of nodes or otherwise changing graph topology in any way.

A very simple workflow would be something like creating a graph in the editor:

CLI Variable Node (name: “seed” type: scalar) → Noise Node → Shader Node → Output

And the user would run a command like ./pixi -in myfile.pixi -out myfile.png -arg seed 12345

I do think there could be a world where you could define graphs in a human readable format (xml / json) and have have ways of importing / exporting to and from .pixi as well as running such pipelines from the CLI. That would open up a lot of possiblities for external tool development but I think the scope is large enough to be a separate proposal.

Ah, this makes more sense now. Instead of using custom CLI variable node, we can leverage blackboard, which is currently on development version. It would open a possibility to overwrite any argument for any .pixi file, which originally wasn’t made for CLI