Browse / Agent tools
jirikuncar/sqlty
Type-safe raw SQL for Python: infer row types from SQL strings, rewrite them as SQL[T] and check them, without a database
- database
Some setups.Tested on 2026-10-27. Works with one model or system, not every one we tried.

What we checked
Does it run from the README?Yes. Running in 1:59 on a clean Linux box.The run
Tested Oct 27, 2026, rev 0ccad9d.
Does it do what the README says?2 of 2 claims held up.Evidence
“sqlty check reports a narrow-type error and exits non-zero when an annotation is too narrow for the schema”
Expected finding printed and exit code 1. Got [narrow-type] SQL[tuple[int, str]] should be SQL[tuple[int, str | None]].
“rewrite only touches the wrapper and never the SQL string”
Expected diff adds SQL[tuple[int, str]] wrapper around the unchanged SQL text. Got SQL[tuple[int, str]]("--sql\nSELECT id::INTEGER, name::TEXT FROM users").
Which setups did we try?Works with Haiku. Not yet with Luna.Setups
Linux / Haiku: works, Oct 27, rev 0ccad9d. Linux / Luna: not yet, Oct 27, rev 0ccad9d.
Needs keys, a login or a browser?No.Details
None seen
Is it safe to run?Made outbound HTTPS connections: yes (hosts not recorded) by <guest-path>What we saw
Review signals across current setups: connection review. 4 listed items (named-host connections, static matches, dependency advisories) are below and do not change this verdict.
Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 8 distinct locations. 2 attributed processes.
OSV reports a known vulnerability in this dependency version. pygments 2 findings.
Reviewed as expected for a test run: attempted writes that failed, so nothing was written; package managers (cargo) downloaded dependencies over HTTPS; package managers (rustup-init) downloaded dependencies over HTTPS; resolver address lookups that send no data; wrote only to its own open file handles.
Full event, path and process lists for each observed setup:
A quiet run is not a safety guarantee.
Is it maintained?Maintained · 392 commits in 90 days · 343 merged PRs in 90 days · 4 open issues · 3 open PRsActivity
actively maintained: last commit 0 days ago; 392 commits and 343 merged PRs in 90 days; 4 open issues, 3 open PRs; latest release 2026-10-27
Can I show this on my README?The badge says Some setups.Badge
The run
Oct 27 · rev 0ccad9dIndependent test, not endorsed by the project.