Amsterdam Modeling PySuite

The Amsterdam Modeling Suite ships with a ready-to-use Python distribution called amspython. That bundled environment already includes the AMS Python stack, so for most AMS scripting you do not need to install anything else.

Tip

Looking for copy-pasteable scripts that use these packages? Start with Python Examples.

You only need the instructions on this page if you want to use a separate Python environment such as a uv project, venv environment, or conda environment.

What It Includes

Amsterdam Modeling PySuite is the umbrella name for the AMS Python stack. It is not currently an installable package by itself. In separate Python environments, install the individual packages you need from the SCM package index.

The stack includes for example:

  • scm.base for ChemicalSystem, units, and AMS-oriented structure handling

  • plams for workflow automation and AMS job handling

  • scm.conformers

  • scm.input_classes

  • scm.params

  • scm.akfreader

  • scm.utils

  • scm.amspipe

  • scm.external_engines

The full package collection is larger than the list above.

Licensing

The AMS Python packages are downloaded from SCM package servers. Downloading or upgrading them in a separate Python environment therefore requires a valid SCM username and password. This is available to AMS customers and free-trial users.

After the packages have been installed, the Python modules themselves do not perform a runtime license check merely for being imported and used.

By contrast, plams is also available separately as a free open-source package on PyPI.

Using uv

AMS includes a bundled uv executable at $AMSBIN/uv. This is the recommended way to create a separate Python environment for AMS Python packages.

Create a new project:

"$AMSBIN/uv" init -p 3.12 my-ams-python-project
cd my-ams-python-project

Then edit pyproject.toml to use the SCM package index and request the packages you want:

[project]
name = "my-ams-python-project"
version = "0.1.0"
description = "AMS Python environment"
readme = "README.md"
requires-python = "==3.12.*"
dependencies = [
   "plams[all]",
   "scm-amspipe",
   "scm-base",
   "scm-conformers",
   "scm-external-engines",
   "scm-flexmd",
   "scm-glompo[all]",
   "scm-input-classes",
   "scm-pisa",
   "scm-params",
   "scm-akfreader",
   "scm-reactmap",
   "scm-utils",
   "scm-version",
   "scm-kpath",
   "scm-xlsx",
]

[tool.uv.sources]
plams = { index = "scm" }
scm-amspipe = { index = "scm" }
scm-base = { index = "scm" }
scm-conformers = { index = "scm" }
scm-external-engines = { index = "scm" }
scm-flexmd = { index = "scm" }
scm-glompo = { index = "scm" }
scm-input-classes = { index = "scm" }
scm-pisa = { index = "scm" }
scm-params = { index = "scm" }
scm-akfreader = { index = "scm" }
scm-reactmap = { index = "scm" }
scm-utils = { index = "scm" }
scm-version = { index = "scm" }
scm-kpath = { index = "scm" }
scm-xlsx = { index = "scm" }

[[tool.uv.index]]
name = "scm"
url = "https://downloads.scm.com/Downloads/packages/uv/channels/2026.1/simple/"
explicit = true

Authenticate to the SCM index:

"$AMSBIN/uv" auth login "https://downloads.scm.com/Downloads/packages/uv/channels/2026.1/simple/"

Install the environment:

"$AMSBIN/uv" sync

Check the installation:

"$AMSBIN/uv" run python -c "import scm.base, scm.conformers, scm.params, scm.plams"

Using pip in an Existing Environment

If you already have a venv or conda environment, you can install the AMS Python packages you need there instead.

For a standard virtual environment:

. /path/to/my/venv/bin/activate
python -m pip install \
  --extra-index-url "https://<scm-username>:<password>@downloads.scm.com/Downloads/packages/uv/channels/2026.1/simple/" \
  plams scm-amspipe scm-base scm-conformers scm-external-engines scm-flexmd scm-glompo scm-input-classes scm-params scm-pisa scm-akfreader scm-reactmap scm-utils scm-version scm-kpath scm-xlsx

For a conda environment:

conda run -n myenv python -m pip install \
  --extra-index-url "https://<scm-username>:<password>@downloads.scm.com/Downloads/packages/uv/channels/2026.1/simple/" \
  plams scm-amspipe scm-base scm-conformers scm-external-engines scm-flexmd scm-glompo scm-input-classes scm-params scm-pisa scm-akfreader scm-reactmap scm-utils scm-version scm-kpath scm-xlsx

Which Package Set Should I Install?

Use plams plus scm-base if you want the core AMS Python stack centered around scm.base and PLAMS.

Add packages such as scm-amspipe, scm-conformers, scm-external-engines, scm-flexmd, scm-glompo, scm-input-classes, scm-pisa, scm-params, scm-reactmap, scm-akfreader, scm-utils, scm-version, scm-kpath, and scm-xlsx when you need that broader functionality.

If you only need PLAMS and not the broader AMS Python stack, you can also install plain plams from PyPI.

See also