Squawk
squawkhq.com
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
- SQL Linters and Formatters#22 of 267.3