Anyway of easily telling which packages are used by an input script?

Is there a quick way of telling which optional packages are used by an arbitrary input script (e.g. via messages in the output or log file?), without going through the commands one-by-one and looking them up in the docs?

There is currently no automated way to do this, but if you compile LAMMPS to include the lammps-shell program and enable exception handling, then you can try to source the input script in the lammps-shell and every missing style would cause an error printout like this:

LAMMPS Shell> pair_style quip
ERROR: Unrecognized pair style 'quip' is part of the ML-QUIP package which is not enabled in this LAMMPS binary. (src/force.cpp:278)
Last command: pair_style quip

But due to trapping exceptions, the shell would (usually) continue and you could this way test each questionable line.

That’s a very useful tip. There is so much I still don’t know about this program…