Squawk
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, and its rules flag unsafe statements, incompatible changes, and migration patterns. Messages provide examples and reasoning about the flagged changes. Developers can lint SQL files with the CLI, use the language server or VS Code extension in an editor, or check modified migrations in pull requests with a GitHub Action. Squawk can also comment on GitHub pull requests through its upload-to-github command or GitHub App. Installation options include npm, PyPI, direct release binaries, Docker, a browser playground, and VS Code. The playground runs a WebAssembly build in the browser. Configuration allows users to set PostgreSQL version, include or exclude rules and paths, and specify whether SQL files are assumed to run in transactions; some rules must be enabled explicitly. Squawk supports PostgreSQL only. It does not provide automatic fixes or custom rules, and its GitHub App needs Pull Requests write permission to comment.
For and against
For
- Checks migration risks that could block reads or writes.
- Available through CLI, editor, and pull request workflows.
- Browser playground lints SQL with WebAssembly.
- Rules and transaction assumptions are configurable.
Against
- Supports PostgreSQL only.
- Does not provide automatic fixes.
- Custom rules are not available.
- GitHub App commenting requires Pull Requests write permission.
The verdict
Squawk gives PostgreSQL teams several ways to lint migrations, from a local CLI to pull request comments. Its narrow dialect focus and lack of automatic fixes make it best suited to teams comfortable addressing findings themselves.
Who it suits
It suits developers working with PostgreSQL schema changes who want migration linting locally, in an editor, or in pull request workflows. It is not intended for other SQL dialects.
On the record
- 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.squawkhq.com · read 4 Oct 2026
- Browser playground
- A WASM powered playground lets users lint SQL locally in a browser.squawkhq.com · read 4 Oct 2026
- CLI
- The CLI can lint SQL files and supports configuration for excluding rules and paths.squawkhq.com · read 4 Oct 2026
- Downtime prevention
- It checks schema changes for risks that can block database reads or writes.squawkhq.com · read 3 Oct 2026
- Editor support
- Squawk provides a language server and VSCode extension for editor linting.squawkhq.com · read 4 Oct 2026
- GitHub App permissions
- The GitHub App setup guide specifies Pull Requests write permission so Squawk can comment on pull requests.squawkhq.com · read 3 Oct 2026
- GitHub comments
- Squawk can comment on GitHub pull requests through its upload-to-github command or a GitHub App.squawkhq.com · read 3 Oct 2026
- GitHub integration
- Squawk can comment on GitHub pull requests through a GitHub Action or its upload-to-github command.squawkhq.com · read 4 Oct 2026
- Install methods
- The docs list npm, pip, direct release binaries, Docker, the browser playground, and VSCode as ways to use Squawk.squawkhq.com · read 4 Oct 2026
- Migration guidance
- Its rules flag schema mistakes, incompatible changes, and migration patterns that can block reads or writes.squawkhq.com · read 3 Oct 2026
- Opt-in rules
- Some rules are disabled by default and must be enabled with an include option or configuration setting.squawkhq.com · read 3 Oct 2026
- Other CI
- The docs describe configuring Squawk as a GitHub App for use outside GitHub Actions, including CircleCI.squawkhq.com · read 4 Oct 2026
- Platform binaries
- The releases page lists macOS (darwin) and Linux binaries as well as VS Code extension packages.github.com · read 3 Oct 2026
- Postgres focus
- The product is specifically a linter for Postgres migrations and SQL.squawkhq.com · read 4 Oct 2026
- Pricing
- The pages opened provide no pricing or paid plans.squawkhq.com · read 4 Oct 2026
- Product
- Squawk is a linter and language server for Postgres migrations and SQL.squawkhq.com · read 4 Oct 2026
- Pull request integration
- The GitHub Action can lint modified SQL migrations on pull requests.squawkhq.com · read 3 Oct 2026
- Purpose
- It checks schema changes to help prevent blocking reads or writes and breaking existing clients.squawkhq.com · read 4 Oct 2026
The review
Overview
Squawk is a PostgreSQL-only linter and language server for SQL and schema migrations. It is a strong fit for developers who want migration checks in their local, editor, or pull request workflow; teams using multiple SQL dialects should choose a broader tool.
Its practical appeal is catching changes that could obstruct database reads or writes and explaining the concern. It leaves the fix to developers, so it is less suited to teams seeking automated remediation.
Key features
Squawk’s rules flag risky migration statements, incompatible changes, and patterns that may block reads or writes. Actionable messages include examples and reasoning, helping developers understand why a change deserves attention. That guidance is useful during review, but Squawk does not automatically fix findings or let teams add custom rules.
The CLI lints SQL files, and configuration can exclude rules and paths, set a PostgreSQL version, and specify whether files are assumed to run in transactions. Some rules are opt-in, so teams should decide which checks to enable rather than rely on every rule being active by default.
A language server and VS Code extension bring linting into the editor. For pull requests, the GitHub Action checks modified SQL migrations; comments can also be added with the upload-to-github command or GitHub App. The App needs Pull Requests write permission to comment. For CI outside GitHub Actions, Squawk recommends the App setup, including for CircleCI.
Installation options include npm, PyPI, release binaries, Docker, and VS Code. A WebAssembly-powered browser playground offers a way to lint SQL without installing the tool. Releases include macOS and Linux binaries; Squawk’s Postgres-specific scope remains the central limitation regardless of installation method.
Pricing
Squawk is free and open source, with no paid plans or free trial. That makes it suitable for individual developers and teams that want migration linting without a software subscription. There are no published seat or usage quotas to weigh against the free option.
Platforms
Squawk supports Linux and macOS release binaries, along with a VS Code extension, Docker, npm, and PyPI installation routes. Its browser playground runs SQL linting through WebAssembly. The product is focused on PostgreSQL rather than a range of SQL dialects.
Who it's for
Squawk suits developers maintaining PostgreSQL schema changes who want to catch migration risks locally, in VS Code, or during pull request review. It is especially useful when a team values explanatory warnings and can handle fixes manually. It is a poor fit for teams that need automatic corrections, custom checks, or linting across dialects beyond PostgreSQL.
Pros and cons
- Pros: PostgreSQL migration checks target changes that may block reads or writes, with examples and reasoning to clarify the risk.
- Pros: CLI, editor, browser, and pull request workflows give teams several places to catch issues.
- Pros: Free, open-source availability avoids subscription costs.
- Cons: No automatic fixes or custom rules means developers must resolve findings and cannot extend the checks with bespoke policies.
- Cons: Some rules require opt-in configuration, making rule selection part of setup.
- Cons: PostgreSQL-only support excludes teams that need a multi-dialect SQL linter.
Alternatives
Browse SQL Linters and Formatters for more options. SQLCheck is a free open-source command-line tool for Linux, macOS, and Windows. sqlfmt offers a free browser formatter that runs through WebAssembly without installation. pgFormatter is free software distributed under the PostgreSQL Licence. Poor SQL pairs online and offline formatting with SSMS and Visual Studio plugins. Sleek is a free open-source SQL formatter with extension and desktop platform support. The freemium sqlfmt has a free tier with 20 analyses per day, five dialects, live formatting, and saved snippets and history; choose it if those browser-based capabilities matter more than Squawk’s migration-specific checks. SQLint is a free Linux option with a Standard SQL (BigQuery) parser and linter. Sqruff is another free SQL tool to consider.
Verdict
Choose Squawk if your team works in PostgreSQL and wants reasoned migration warnings in its editor and pull request process without paying for the linter. Its focused checks are the main reason to adopt it; its PostgreSQL-only scope and manual remediation are the main reasons to look elsewhere.