Command Line Interface Overview
CHEMSMART provides a comprehensive command-line interface for quantum chemistry calculations and molecular analysis. This guide covers the fundamental CLI structure, execution modes, and common options.
Basic Command Structure
CHEMSMART offers two main execution modes:
Local execution: Use
chemsmart runto execute tasks on the current terminal.HPC submission: Use
chemsmart subto submit jobs to high-performance computing clusters.
The basic command structure is:
chemsmart run/sub [OPTIONS] <CMD> [CMD_OPTIONS] <SUBCMD> [SUBCMD_OPTIONS]
Common Options for All Jobs
Server and Resource Options
Option |
Type |
Description |
|---|---|---|
|
string |
Server name from |
|
int |
Number of cores per job |
|
int |
Number of GPUs per node (defaults to server configuration) |
|
int |
Memory allocation in gigabytes |
Note
The -s option takes the server name without the .yaml extension. The -n, -g, and -m options
override the server defaults.
Execution Control Options
Option |
Type |
Description |
|---|---|---|
|
bool |
Skip or rerun completed jobs (default: skip) |
|
bool |
Enable simulation mode with fake job runners (default: disabled) |
|
bool or None |
Force scratch on ( |
Note
Use -R at the end of the command to rerun a completed job.
Note
CLI (``chemsmart run`` / ``chemsmart sub``)
When both --scratch and --no-scratch are omitted, scratch mode is decided in JobRunner.from_job before
the typed runner is built:
Explicit
--scratchor--no-scratchwins.Else program
SCRATCHin server YAML for executable-backed runners.Else the job-runner class default (
Truefor Gaussian/ORCA/NCIPLOT;Falsefor xTB, CREST, PyMOL, thermochemistry, etc.).
Programmatic API (direct constructor)
If you construct a runner yourself with scratch=None, server YAML is not read—you get the class SCRATCH
default only. That can differ from the CLI path when YAML would override the class default.
Scratch path (when mode is on) is resolved separately from program ENVARS, then SERVER.SCRATCH_DIR, then
user settings. See Scratch Behavior in Server Settings.
Note
--fake automatically selects the program-matched fake runner based on the command group:
chemsmart run --fake gaussian .../chemsmart sub --fake gaussian ...uses the Gaussian fake runner.chemsmart run --fake orca .../chemsmart sub --fake orca ...uses the ORCA fake runner.chemsmart run --fake xtb .../chemsmart sub --fake xtb ...uses the xTB fake runner.chemsmart run --fake crest .../chemsmart sub --fake crest ...uses the CREST fake runner.
In these fake modes, executable-path checks for the corresponding real program are not required and the corresponding fake runner will be used without needing to specify its path.
Debugging and Logging Options
Option |
Type |
Description |
|---|---|---|
|
bool |
Enable debug logging (default: disabled) |
|
bool |
Enable logging to stdout (default: enabled) |
Submission-Specific Options
These options are only available with chemsmart sub:
Option |
Type |
Description |
|---|---|---|
|
float |
Maximum job runtime in hours |
|
string |
HPC queue name |
|
bool |
Enable verbose output and debug logging (default: disabled) |
|
bool |
Generate scripts without submitting (default: disabled) |
|
bool |
Print the generated command (default: disabled) |
Available Commands
gaussian: Run or submit Gaussian jobsorca: Run or submit ORCA jobsxtb: Run or submit xTB jobscrest: Run or submit CREST conformational search jobsmol: Run PyMOL visualization and analysis jobsthermochemistry: Run thermochemistry analysis jobsgrouper: Run structure grouping jobsconvert: Convert molecular structure files between formats
Next Steps
For specific job types, see the detailed tutorials:
Note
CHEMSMART checks job name uniqueness. If a job with the same name is already running, submission will be blocked. Use
-a (append label) or -l (label) options to create unique job names.