Skip to content
SPECIFICTION
Get listed

Squawk

squawkhq.com

WebWindowsmacOSLinuxiOSAndroid
Visit squawkhq.com
Spec score 7.3 #22 of 26 in SQL Linters and Formatters

What it is

Squawk is an open-source linter and language server for PostgreSQL migrations and SQL. It checks schema changes for risks that could prevent database reads or writes. Its rules flag potentially unsafe statements, incompatible changes, and migration patterns, with messages that include examples and reasoning. The command-line tool lints SQL files, and a language server and VS Code extension provide editor linting.

For pull requests, a GitHub Action can lint modified migrations; Squawk can also comment through its upload-to-github command or GitHub App. For CI outside GitHub Actions, the documentation recommends configuring the GitHub App, citing CircleCI as an example. Installation options include npm, PyPI, release binaries, Docker, the browser playground, and VS Code. The playground uses WebAssembly to lint SQL in a browser. Configuration can set the PostgreSQL version, include or exclude rules and paths, and specify whether SQL files are assumed to run in transactions. Some rules are disabled by default and require explicit enabling. Squawk supports PostgreSQL only and has no automatic fixes or custom rules.

Spec sheet

Purpose
It checks schema changes to help prevent blocking reads or writes and breaking existing clients.Read 4 Oct 2026 · squawkhq.com
Product
Squawk is a linter and language server for Postgres migrations and SQL.Read 4 Oct 2026 · squawkhq.com
Audience
Squawk is aimed at developers working with Postgres schema changes who want to lint migrations locally, in an editor, or in pull request workflows.Read 4 Oct 2026 · squawkhq.com
Support
The site links to GitHub Help and directs users to open an issue if a rule, message, or documentation page needs improvement.Read 4 Oct 2026 · squawkhq.com
Browser playground
A WASM powered playground lets users lint SQL locally in a browser.Read 4 Oct 2026 · squawkhq.com
CLI
The CLI can lint SQL files and supports configuration for excluding rules and paths.Read 4 Oct 2026 · squawkhq.com
Downtime prevention
It checks schema changes for risks that can block database reads or writes.Read 3 Oct 2026 · squawkhq.com
Editor support
Squawk provides a language server and VSCode extension for editor linting.Read 4 Oct 2026 · squawkhq.com
GitHub App permissions
The GitHub App setup guide specifies Pull Requests write permission so Squawk can comment on pull requests.Read 3 Oct 2026 · squawkhq.com
GitHub comments
Squawk can comment on GitHub pull requests through its upload-to-github command or a GitHub App.Read 3 Oct 2026 · squawkhq.com
GitHub integration
Squawk can comment on GitHub pull requests through a GitHub Action or its upload-to-github command.Read 4 Oct 2026 · squawkhq.com
Install methods
The docs list npm, pip, direct release binaries, Docker, the browser playground, and VSCode as ways to use Squawk.Read 4 Oct 2026 · squawkhq.com
Migration guidance
Its rules flag schema mistakes, incompatible changes, and migration patterns that can block reads or writes.Read 3 Oct 2026 · squawkhq.com
Opt-in rules
Some rules are disabled by default and must be enabled with an include option or configuration setting.Read 3 Oct 2026 · squawkhq.com
Other CI
The docs describe configuring Squawk as a GitHub App for use outside GitHub Actions, including CircleCI.Read 4 Oct 2026 · squawkhq.com
Platform binaries
The releases page lists macOS (darwin) and Linux binaries as well as VS Code extension packages.Read 3 Oct 2026 · github.com
Postgres focus
The product is specifically a linter for Postgres migrations and SQL.Read 4 Oct 2026 · squawkhq.com
Pricing
The pages opened provide no pricing or paid plans.Read 4 Oct 2026 · squawkhq.com
Pull request integration
The GitHub Action can lint modified SQL migrations on pull requests.Read 3 Oct 2026 · squawkhq.com
Rule configuration
Users can include or exclude rules, set a PostgreSQL version, and configure whether SQL files are assumed to run in transactions.Read 3 Oct 2026 · squawkhq.com
Rules
Its rules flag potentially unsafe migration statements and provide actionable messages with examples and reasoning.Read 4 Oct 2026 · squawkhq.com
Security and compliance
The pages opened provide no security or compliance commitments.Read 4 Oct 2026 · squawkhq.com
Support route
The website links to GitHub Help for support.Read 3 Oct 2026 · squawkhq.com
Ways to install
The project documents installation through npm, PyPI, direct release binaries, Docker, a browser playground, and VS Code.Read 3 Oct 2026 · squawkhq.com

Strong points and limits

Strong points

  • Flags schema changes that may block reads or writes.
  • Linting is available in VS Code and the command line.
  • GitHub Action can check modified migration files.
  • Browser playground runs a WebAssembly build.
  • Rules and transaction assumptions are configurable.

Limits

  • Supports PostgreSQL only.
  • No automatic fixes are available.
  • Custom rules are not supported.
  • GitHub App needs Pull Requests write permission to comment.

Who it suits

It suits developers working with PostgreSQL schema changes who want to lint migrations locally, in an editor, or in pull-request workflows.

Squawk in depth

Read the full write-up

Overview

Squawk is an open-source linter and language server for PostgreSQL SQL and migrations. It is best suited to developers who want migration-risk checks in their editor and pull-request workflow. Its focused checks can flag changes that may interrupt reads or writes, but developers must decide how to address them.

Key features

Squawk’s rules flag potentially unsafe statements, incompatible changes, and migration patterns that can block database reads or writes. Messages include examples and reasoning, helping developers understand why a statement warrants attention. That makes the tool useful as an early warning in migration work, but it does not provide automatic fixes or custom rules; remediation and any organization-specific checks remain outside its scope.

The CLI lints SQL files and can exclude rules and paths. Configuration also lets teams set a PostgreSQL version and specify whether files are assumed to run in transactions, which helps tailor checks to a project’s migration conventions. Some rules are disabled by default, so teams should review the rule set and explicitly enable relevant opt-in checks.

A language server and VS Code extension bring linting into the editor. For pull requests, the GitHub Action can lint modified SQL migrations; comments can be added through the upload-to-github command or GitHub App. The App requires Pull Requests write permission to comment. For CI outside GitHub Actions, Squawk recommends configuring the App, with CircleCI as an example.

Installation routes include npm, PyPI, release binaries, Docker, and VS Code. A browser playground uses WebAssembly to lint SQL without requiring a local installation, making it a convenient way to try a check, though it is not a substitute for integrating migration linting into a project’s workflow.

Pricing

Squawk is free and open source. There are no paid plans or free-trial terms to weigh; its trade-offs are its PostgreSQL-only focus and the work required to handle findings and configure opt-in rules.

Platforms

Squawk is available through its CLI and editor extension, a browser playground, Docker, package managers, and release binaries. The releases page lists macOS and Linux binaries as well as VS Code extension packages. Its platform labels also include Android, iOS, Windows, API, and self-hosted, but the documented binary releases are for macOS and Linux.

Who it's for

Choose Squawk if your team works with PostgreSQL schema changes and wants checks at more than one point in the workflow: while editing SQL, from the command line, or on pull requests. It is less suitable for teams that need multiple SQL dialects, automatic repairs, or custom lint rules.

Pros and cons

Pros: Risk-focused rules explain findings with examples and reasoning, giving developers context to assess migration warnings.

Pros: Editor, CLI, browser, and pull-request routes let teams place checks where they work.

Pros: Free and open source, with configuration for PostgreSQL version, transaction assumptions, excluded rules, and paths.

Cons: PostgreSQL is the only supported dialect, so teams working across other SQL dialects need another tool for those checks.

Cons: Findings are not automatically fixed, and custom rules are not supported; developers must make changes themselves and cannot add bespoke checks.

Cons: Some rules require explicit opt-in, so relying on defaults alone may leave relevant checks inactive.

Alternatives

For a different SQL linting or formatting tool, compare SQL Linters and Formatters.

Consider SQLCheck as another free, open-source command-line option for Linux, macOS, and Windows. Choose sqlfmt if a free browser-based formatter that runs through WebAssembly is a better fit. Poor SQL is another free option with online and offline formatting and SSMS/Visual Studio plugin support.

Sqruff, TSQLLint, JSQLFormatter, Sleek, and SQL Formatter are also alternatives to compare.

Verdict

Squawk is a strong fit for PostgreSQL developers who want migration risks surfaced in local, editor, or pull-request checks without paying for a plan. Its explanations and workflow integrations are the main reasons to choose it; look elsewhere if you need broader dialect coverage, custom rules, or automatic fixes.

Verdict

Squawk focuses on identifying risks in PostgreSQL migrations, with local, editor, browser, and pull-request workflows. Its scope is limited to PostgreSQL, and flagged SQL does not receive automatic fixes.

Where Specifiction places it

Alternatives to SquawkAll alternatives →