Usage agreement


This software is distributed in the hope that it will be useful, but we do not guarantee it for accuracy, completeness or fitness for a particular purpose. It is distributed free of charge for academic, scientific, educational, and noncommercial users. Users belonging to commercial enterprises may also use this software at no cost until a license for business users is established. Permission to use this software is hereby granted under the following conditions.

Data and plots produced by VASPKIT may be used in any publications provided that its use is explicitly acknowledged. A suitable reference for VASPKIT is:

[1] V. Wang, N. Xu, J.C. Liu, G. Tang, W.T. Geng, VASPKIT: A User-Friendly Interface Facilitating High-Throughput Computing and Analysis Using VASP Code, Computer Physics Communications 267, 108033 (2021).


Part of these terms may be changed without any prior announcement. This software is provided “as is” without any express or implied warranty.


Currently we only provide the executable binary files of VASPKIT which can run on Windows, Mac OS X, and Linux. After downloading the package, please take a few minutes to read the instructions in the manual; everything is detailed there.

The compiled version of the program can be obtained from the latest release page on sourceforge. At the release page you find the a compressed tarball (tar zxvf vaspkit.*.tar.gz) usually containing the following content:

├── acknowledgement
├── bin/
│   └── vaspkit
├── crystals/
├── docs/
├── examples/
├── changelog
├── citations
├── contributors
├── how_to_install
├── how_to_set_environment_variable
├── license
├── utilities
└── vaspkit_logo.pdf


VASPKIT is supported by Python 3.x. Please install the following dependencies prior to installing VASPKIT. I strongly suggest to use anaconda package to manage various python packages.


  1. First unzip VASPKIT package.

tar -zxvf vaspkit.1.00.tar.gz

In order to ensure the full functionality of VASPKIT, please configure the environment of the vaspkit from ~/.vaspkit file. Enter VASPKIT folder, and copy the environment variable file how_to_set_environment_variable to users’ home directory by running the following command under the bash terminal.

cd vaspkit.1.00
cp -f how_to_set_environment_variable ~/.vaspkit

Edit the .vaspkit file,

vi ~/.vaspkit

The configuration ~/.vaspkit file is mainly used to set the environment variables of VASPKIT, including VASP version information, directory of the target pseudo potential, selection of functional, whether to use recommended POTCAR, and so on.

Usually, the PBE_PATH is the only one that need to be modified according to your POTCAR path.

# cp how_to_set_environment_variable ~/.vaspkit and modify the ~/.vaspkit file based on your settings!
VASP5                         .TRUE.                         # .TRUE. or .FALSE.; Set .FALSE. if you are using vasp.4.x
LDA_PATH                      ~/POTCAR/LDA                   #  Path of LDA potential.
PBE_PATH                      ~/POTCAR/PBE                   #  Path of PBE potential.
GGA_PATH                      ~/POTCAR/GGA                   #  Path of PW91 potential.
POTCAR_TYPE                    PBE                           #  PBE, PW91 or LDA; Set PBE if you want to make PBE-POTCAR file
GW_POTCAR                     .FALSE.                        # .TRUE. or .FALSE.; For example, H_GW, O_GW will be chose when POTCAR_GW = .TRUE.
RECOMMENDED_POTCAR            .TRUE.                         # .TRUE. or .FALSE.; The recommended PAW potential will be chose when RECOMMENDED_POTCAR = .TRUE.
SET_FERMI_ENERGY_ZERO         .TRUE.                         # .TRUE. or .FALSE.; The Fermi Energy will be set to zero eV when SET_FERMI_ENERGY_ZERO = .TRUE.
MINI_INCAR                    .FALSE.                        # .TRUE. or .FALSE.; A simplified INCAR will be written when MINI_INCAR = .TRUE.
USER_DEFINED_INCAR            .FALSE.                        # .TRUE. or .FALSE.; whether to use embedded INCAR templates or user defined INCAR templates
WRITE_SELECTIVE_DYNAMICS      .FALSE.                        # .TRUE. or .FALSE.; whether the selective dymanics set will be forced to write when SET_SELECTIVE_DYNAMICS_MODE = .FALSE.
PYTHON_BIN                     ~/anaconda3/bin/python3       #  Python executable program with its installation path. I recommend you install anaconda package for Python data science
PLOT_MATPLOTLIB               .FALSE.                        # .TRUE. or .FALSE.; Set .TRUE. if you want to generate Graphs. (Matplotlib and Numpy packages MUST be embedded in Python)
VASPKIT_UTILITIES_PATH        ~/vaspkit/utilities            #  IF ADVANCED_USER is .TRUE., set VASPKIT_UTILITIES_PATH like ~/vaspkit.0.72/utilities in order to use scripts in it.
ADVANCED_USER                 .TRUE.                         # .TRUE. or .FALSE.; Please fill in your settings in the block 'USER_DEFINED' if you want vaspkit to integrate your own scripts in the 'UTILITIES' file.
SET_INCAR_WRITE_MODE           OVERRIDE                      #  OVERRIDE, APPEND, BACK-UP-OLD,BACK-UP-NEW;  "Customize INCAR File"  whether to override existing INCAR/appending existing INCAR/backup existing INCAR to INCAR.old && write into INCAR/write into
PHS_CORRECTION                .FALSE.                        # .TRUE. or .FALSE.; whether to make PHS correction during linear optical calculations. More details on this correction are given in Comput. Mater. Sci. 172 (2020) 109315.

# Reset the default values of variables in here
SYMPREC                        1E-5                          # Distance tolerance in Cartesian coordinates to find crystal symmetry (default value: 1E-5)
EMIN                          -20.0                          # Minimum energy for evaluation of DOS (default value: -20.0 eV)
EMAX                           20.0                          # Maximum energy for evaluation of DOS (default value:  20.0 eV)
NEDOS                          2001                          # Number of grid points in DOS (default value: 2001)
GAMMA_CENTERED                .TRUE.                         # .TRUE. or .FALSE.; (default value: .TRUE.)
VACUUM_THICKNESS               15.0                          # The thickness of vacuum to build slab or 2D materials (default value: 10 angstrom)
CENTER_SLAB                   .TRUE.                         # Center the slab in the z direction; (default value: .TRUE.)
  1. Setting up local repository pseudo potential directory. For example,

    unzip the VASP PAW_PBE pseudo potentials at ~/POTCAR/PBE directory.

  2. Add the absolute path of the vaspkit to the environment variable.

  3. The ~/.vaspkit file might need to be manually updated if some new environment variables are introduced in the newest version of vaspkit.

echo 'export PATH=/home/vaspkit.1.00/bin/:$PATH' >> ~/.bashrc
source ~/.bashrc

Replace the absolute path of the /home/vaspkit.1.00/bin/ directory by user’s own VASPKIT executable path.

VASPKIT also provides an automatic configuration script since version 0.73. Execute

source or bash and finally, source ~/.bashrc

Auto-Plot Data

  1. Make sure you have installed vaspkit (Ver. 1.3.0 or newer), python3, numpy, scipy, matplotlib, etc.

  2. Add the following parameters in the ~/.vaspkit file;

PYTHON_BIN        ~/anaconda3/bin/python3
AUTO_PLOT         .TRUE.
  1. Copy the plot presets from the vaspkit/how_to_set_environment_variable file to the ~/.vaspkit file if doesn’t exist. Must copy the block from

  1. The figure file will be generated automatically in the post-processing of vaspkit (> ver. 1.3.0). Furthremore, a file named will be also generated if you first time run vaspkit in the working folder. You can re-custom the plot presets in the file and re-run vaspkit again. Then the program reads the plot presets from the file if it exists.

Installation FAQs

1. If ~/.vaspkit already exists, the above operation will not be overwritten. The old version of the environment variable file will be kept.

After above settings, you can start the VASPKIT by directly typing vaspkit in the terminal.

2. If the following problem occurs, your LINUX dependent library version is too low and needs to be upgraded (not recommended), you can contact the developer to get the version compiled in the low version LINUX environment.

vaspkit: /lib64/ version `GLIBC_2.14' not found (required by vaspkit)

3. If the-bash: line 7: ./vaspkit: Permission denied permission issue occurs, simply add the VASPKIT execute permission:

chmod u+x /home/vaspkit.1.00/bin/vaspkit
  1. The Windows version of vaspkit is still maturing. A few utilities fail to run under Windows system, for example, cannot read the configuration .vaspkit file and generate POTCAR file.

Bug Report

Please send bug reports and suggestions for improvements to