Command line tools

This proposal tries to clean up the command line tools that we distribute with ASE.

Current status

ASE currently has 7 command line tools that we install in /usr/bin:

command description
ag ASE’s GUI
ASE2ase Translate old ASE-2 code to ASE-3 style
testase Run tests
ase First attempt to create a command that can do everything
asec Second attempt
foldtrajectory Wrap atoms outside simulation box to inside box
trajectoryinfo Write information about trajectory file

Proposed set of command line tools

In the future things will look like this:

command description
ase-gui ASE’s GUI
ase-info Write information about files
ase-test Run tests
ase-build Build simple molecule or bulk structure
ase-run Run calculations with ASE’s calculators
ase-db Put stuff into or query database



Renamed to ase-gui.


Removed — no longer needed.


Renamed to ase-test. Alternative:

python test

ase and asec:

Replaced by new commands ase-build and ase-run. The old ase command is hopefully not used a lot since we propose to get rid of it.


Too specialized to deserve its own command. Use:

python -m



Replaced by new more general command ase-info that can pull out information from anything that ASE can read.

Naming convention

Any suggestions for better names or are the proposed ones OK? The good thing about using ase-something for all is that it is consistent and if you know one command, you will maybe discover the other ones when you do tab-completion.

Implementation details

  • Should we use the very nice argparse module, which is the future but only available in Python 2.7, or should we stick with the old and deprecated optparse module?