# psalm (vimeo/psalm)

> Psalm is a static analysis tool that scans PHP code to find errors and security vulnerabilities without running the application.

- GitHub: https://github.com/vimeo/psalm
- GitHub.Locker page: https://github.locker/vimeo/psalm
- Stars: 5.9K
- Language: PHP
- License: MIT
- Last push: 2026-11-02

## Questions and answers

Written by GitHub.Locker from the README and the repository; check the README below for details.

**Is it a library I import, or a tool I run?**

It's a tool you run against your PHP project, not code you import into the app.

**How do I get it running?**

The README doesn't list commands. It points to an installation guide on Psalm's website, and there is also a live demo there if you want to try it first.

**What do I need on my side first?**

The README lists no requirements. Psalm targets PHP applications, so you need a PHP codebase to analyze. Check the installation guide for the exact environment.

**What does type inference do in Psalm?**

Psalm works out the types of variables and return values from the code itself, so it can flag mismatched values even where you did not write explicit type hints.

**What is taint analysis?**

It follows untrusted input, such as user data, from where it enters the app to where it is used, and warns when that data reaches a dangerous spot like a database query without proper handling.

**Does it run on Windows and macOS too?**

The README does not list supported operating systems. As a PHP command-line tool it generally runs wherever PHP runs, but check the installation guide to confirm.


---

## README (checked against GitHub 2026-11-03)

Source: https://github.com/vimeo/psalm/blob/master/README.md

<h1>Psalm</h1>

[![Packagist](https://img.shields.io/packagist/v/vimeo/psalm.svg)](https://packagist.org/packages/vimeo/psalm)
[![Packagist](https://img.shields.io/packagist/dt/vimeo/psalm.svg)](https://packagist.org/packages/vimeo/psalm)
[![Psalm coverage](https://shepherd.dev/github/vimeo/psalm/coverage.svg?)](https://shepherd.dev/github/vimeo/psalm)
[![Psalm level](https://shepherd.dev/github/vimeo/psalm/level.svg?)](https://psalm.dev/)

Psalm is a static analysis tool for finding errors in PHP applications.

[Join the official Psalm news channel](https://t.me/psalmphp) and the Psalm community on [Telegram](https://t.me/psalmphp_community) and [Discord](https://discord.gg/RwH8rEpxt9)!

## Installation

To get started, check out the [installation guide](docs/running_psalm/installation.md).

## Live Demo

You can play around with Psalm [on its website](https://psalm.dev/).

## Documentation

Documentation is available on [Psalm’s website](https://psalm.dev/docs), generated from the [docs](https://github.com/vimeo/psalm/blob/master/docs) folder.

## Support Psalm development

You can support Psalm development by requesting a support contract from [Daniil Gentili](https://daniil.it), the only active maintainer of Psalm.  

Support contracts can cover full integration of Psalm into existing codebases, support for Psalm issues and development of additional Psalm features.  

See [here &raquo;](https://daniil.it) for info, pricing and contact information.  

## Interested in contributing?

Have a look at [CONTRIBUTING.md](CONTRIBUTING.md).

## Who made this

Built by Matt Brown ([@muglug](https://github.com/muglug)).

Maintained by Daniil Gentili ([@danog](https://github.com/danog)) and Alies Lapatsin ([@alies-dev](https://github.com/alies-dev)).

Former maintainers: Orklah ([@orklah](https://github.com/orklah)) and Bruce Weirdan ([@weirdan](https://github.com/weirdan)).

The engineering team at [Vimeo](https://github.com/vimeo) have provided a lot encouragement, especially [@nbeliard](https://github.com/nbeliard), [@erunion](https://github.com/erunion) and [@nickyr](https://github.com/nickyr).

