Running Psalm

Once you've set up your config file, you can run Psalm from your project's root directory with


and Psalm will scan all files in the project referenced by <projectFiles>.

If you want to run on specific files, use

./vendor/bin/psalm file1.php [file2.php...]

Command-line options

Run with --help to see a list of options that Psalm supports.


Psalm currently offers some GitHub integration with public projects.

Add --shepherd to send information about your build to

Currently, Shepherd tracks type coverage (the percentage of types Psalm can infer) on master branches.

Running Psalm faster

Psalm has a couple of command-line options that will result in faster builds:

  • --threads=[n] to run Psalm’s analysis in a number of threads
  • --diff which only checks files you’ve updated since the last run (and their dependents).
  • --diff-methods which only checks methods you’ve updated since the last run (and their dependents).

Data from the last run is stored in the cache directory, which may be set in configuration. If you are running Psalm on a build server, you may want to configure the server to ensure that the cache directory is preserved between runs.

Running them together (e.g. --threads=8 --diff --diff-methods) will result in the fastest possible Psalm run.