sqlite-scanner
sqlite-scanner is a tiny Go CLI that recurses through one or more directories, checks each regular file’s header bytes, and reports the ones whose first 16 bytes match SQLite format 3\x00. It never trusts file extensions, and it can run multiple workers in parallel for speed.
Features
- scans one or more positional paths or falls back to
.when no paths are specified - configurable worker pool via
--workers(defaults to your CPU count) - always prints absolute paths so results are unambiguous
- optional
--sizeflag that appends file sizes to text output and emits JSON objects like{"path": "...", "size": ...} - newline-delimited JSON via
--jsonl; use--sizeto include each object's size field - JSON output mode (
--json) that pretty-prints{"entries": [...]}objects for downstream processing - streams matches immediately as they’re discovered (plain text and pretty JSON)
- custom
--helptext that describes usage, examples, and notes
Setup
git clone https://github.com/simonw/sqlite-scanner
cd sqlite-scanner
Build
go build -o bin/sqlite-scanner
Usage
Simple scan (current directory):
bin/sqlite-scanner
Scan /tmp and $HOME:
bin/sqlite-scanner /tmp ~
Use JSON mode:
bin/sqlite-scanner /tmp --json
Example JSON output shape:
{
"entries": [
{"path": "/abs/path/to/db1.sqlite"},
{"path": "/abs/path/to/db2.sqlite"}
]
}
Use newline-delimited JSON to stream objects per line (requires --size to include size):
bin/sqlite-scanner --jsonl ~/dev
Example JSONL output shape (no size):
{"path": "/abs/path/to/db1.sqlite"}
{"path": "/abs/path/to/db2.sqlite"}
Example JSONL output shape (with --size):
{"path": "/abs/path/to/db1.sqlite", "size": 12345}
{"path": "/abs/path/to/db2.sqlite", "size": 67890}
Include sizes (plain text shows (size bytes) and JSON outputs objects) with:
bin/sqlite-scanner --size /tmp --json
Example --size output (plain text):
/abs/path/to/db1.sqlite (12345 bytes)
/abs/path/to/db2.sqlite (67890 bytes)
Check available flags (it prints the detailed help text added earlier; all flags use the --flag form):
bin/sqlite-scanner --help
Testing
go test
Release files for sqlite-scanner 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| sqlite_scanner-0.1.1-py3-none-win_arm64.whl | Python 3 | none | Windows ARM64 | Details |
| sqlite_scanner-0.1.1-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| sqlite_scanner-0.1.1-py3-none-musllinux_1_2_x86_64.whl | Python 3 | none | Linux musl 1.2+ x86-64 | Details |
| sqlite_scanner-0.1.1-py3-none-musllinux_1_2_aarch64.whl | Python 3 | none | Linux musl 1.2+ ARM64 | Details |
| sqlite_scanner-0.1.1-py3-none-manylinux_2_17_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| sqlite_scanner-0.1.1-py3-none-manylinux_2_17_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| sqlite_scanner-0.1.1-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| sqlite_scanner-0.1.1-py3-none-macosx_10_9_x86_64.whl | Python 3 | none | macOS 10.9+ x86-64 | Details |
Total release size: 17.1 MB
Release files / sqlite_scanner-0.1.1-py3-none-win_arm64.whl
| Download URL | sqlite_scanner-0.1.1-py3-none-win_arm64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
7bae87b45eb8b148eb4b6fd739b9e771ca833dfeb6391b01ec3c7fe77364ece5
|
|
BLAKE2b-256 checksum How to use checksums |
a391b2d77b4c467b649bad2696cdcf4f77fe4d053113fda1660af0299ab1661a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / sqlite_scanner-0.1.1-py3-none-win_amd64.whl
| Download URL | sqlite_scanner-0.1.1-py3-none-win_amd64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4b0e945ea5b71270c569df3bff4d61aea4828a071dce114faa82e70649ab7504
|
|
BLAKE2b-256 checksum How to use checksums |
2a579b607803157005cbc4e679c3ef98476346355faff2630756f684169937a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / sqlite_scanner-0.1.1-py3-none-musllinux_1_2_x86_64.whl
| Download URL | sqlite_scanner-0.1.1-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
41d42411208cb1331b40b236993856f02a5c103e563e9e0a781c9c230765ae7f
|
|
BLAKE2b-256 checksum How to use checksums |
03241546aad9e9ddc49fc649711206177787b0fb96992420432bcd4e2e3bcd48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / sqlite_scanner-0.1.1-py3-none-musllinux_1_2_aarch64.whl
| Download URL | sqlite_scanner-0.1.1-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
d72673df796634591b23d248b6cdee2779517dd2c8ae8c074a54b911b1a4f605
|
|
BLAKE2b-256 checksum How to use checksums |
2bfde82cbc8607bfd62c154e4902d4e2bd17a5be6f244289bbddb6719f94ea77
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / sqlite_scanner-0.1.1-py3-none-manylinux_2_17_x86_64.whl
| Download URL | sqlite_scanner-0.1.1-py3-none-manylinux_2_17_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
6f9c543d3aa9091806e63237b75cad846a55fc46589c19fb860ea4c5c0c98160
|
|
BLAKE2b-256 checksum How to use checksums |
7c86fa000bbd7278ae2cc536c8e64ac15b828397f7152eeadb40561760c37f14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / sqlite_scanner-0.1.1-py3-none-manylinux_2_17_aarch64.whl
| Download URL | sqlite_scanner-0.1.1-py3-none-manylinux_2_17_aarch64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
c972fe8c3ef9325bf1b6aa61cc60391ba600fdfce5e8096f7b6b2aebdf13193e
|
|
BLAKE2b-256 checksum How to use checksums |
6f1d2ec490677b4967acc413ee2eb53c213cdf323a0ec97ee0b76860134f5a88
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / sqlite_scanner-0.1.1-py3-none-macosx_11_0_arm64.whl
| Download URL | sqlite_scanner-0.1.1-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4625b69c4abd5176a29e0072d46390b3d7403ff0931e5e37923bc7d2d8d361c8
|
|
BLAKE2b-256 checksum How to use checksums |
88b117a716635d2733fec53ba0a8267f85bd6b6cf882c6b29301bc711fba212c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / sqlite_scanner-0.1.1-py3-none-macosx_10_9_x86_64.whl
| Download URL | sqlite_scanner-0.1.1-py3-none-macosx_10_9_x86_64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | Python 3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
04f1cead81616dbd2b320cd266935993eca24c0585d93032c2e8e960ab944b78
|
|
BLAKE2b-256 checksum How to use checksums |
2b545eef290f2c11dbb319c4f3b53965c0f71716a47426689b0b505cbc0ad17a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|