coldpass

simonw/sqlite-utils

GitHub ↗ · How this check works

Per-setup public labels: Linux / Haiku: Works · Linux / Luna: Works

Static status badge · SVG · read-only JSON. Embed with ![Coldpass status](https://coldpass.dev/badge/simonw--sqlite-utils.svg).

data

Works

The recorded run passed on 2 setups.

Answers apply to each recorded setup, revision and operation. Earlier observations remain in Run details.

Tested on Linux
PlatformHaikuLuna
Linuxyesyes

Linux / Haiku 5.5: yes · Oct 27, 2026 · 9c66bafa52ae · claude-code / 2.1.310 (Claude Code)
Recorded operation: <guest-path> memory - 'select name, age from stdin'

Linux / Luna: yes · Oct 27, 2026 · 9c66bafa52ae · codex / codex-cli 0.164.0
Recorded operation: /tmp/sqlite-utils-venv/bin/sqlite-utils memory - 'select name, age from stdin'

Does what it says
2 of 2 claims checked out
  • sqlite-utils memory runs SQL over CSV piped on stdin: Real input produced the expected result: "name": "Cleo"

    Source: `sqlite-utils memory` lets you import CSV or JSON data into an in-memory database and run SQL queries against it in a single command:

    Input: CSV via stdin, select name and age

    Expected: rows with name Cleo

    Command: <guest-path> memory - 'select name, age from stdin'

    Observed: "name": "Cleo", "age": 4}, {"name": "Pancakes", "age": 2}]

  • sqlite-utils memory runs SQL over JSON piped on stdin: Real input produced the expected result: "name": "Pancakes"

    Source: `sqlite-utils memory` lets you import CSV or JSON data into an in-memory database and run SQL queries against it in a single command:

    Input: JSON array via stdin, select name

    Expected: rows with name Pancakes

    Command: <guest-path> memory - 'select name from stdin'

    Observed: "name": "Pancakes"}]

MCP
No
Local or hosted
local
Local: runs on your machine
Needs keys or browser
None seen
Maintained
Maintained
actively maintained: last commit 16 days ago; 28 commits and 10 merged PRs in 90 days; 94 open issues, 67 open PRs; 1 of 38 recent threads got a maintainer reply, median first reply 81.1h; latest release 2026-08-13

Last commit Oct 10, 2026

Setup time
5 min 14 s
5 min 14 s to a working result
Issue
none found in recorded check
Examples
2 of 2 ran as expected
  • Insert a CSV file into a new SQLite database file: command completed successfully with no output

    Source: README.md: sqlite-utils insert dogs.db dogs dogs.csv --csv

    Input: <guest-path> into fresh <guest-path>

    Expected: exit 0 and new database file created

    Command: <guest-path> insert <guest-path> dogs <guest-path> --csv

  • Repository documented test suite (CI runs pytest): command completed successfully

    Source: .github/workflows/test.yml: pytest -v

    Input: offline test suite in venv

    Expected: all tests pass

    Command: <guest-path> -q -p no:cacheprovider

    Observed: TemporaryDirectory' or pytest's 'tmp_path' fixture with absolute paths instead. with runner.isolated_filesystem(): tests/test_insert_files.py::test_insert_files_bad_text_encoding_error <guest-path> DeprecationWarning: 'isolated_filesystem' is deprecated and will be removed in Click 9.0. Use 'tempfile.TemporaryDirectory' or pytest's 'tmp_path' fixture with absolute paths instead. with runner.isolated_filesystem(): -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 1497 passed, 16 skipped, 33 warnings in 87.76s (0:01:27)

Evidence
README behavior checked
Agent interfaces
CLI
CLI

Observed interfaces were exercised by the checker. Documentation alone does not confirm compatibility.

Tested with
Claude Code / Haiku 5.5
  • Linux: Claude Code / Haiku 5.5 · agent 2.1.310 (Claude Code) · Checked operation passed · Oct 27, 2026 on 9c66bafa52ae

Each entry describes its recorded operation and source revision.

Safety
No unexpected network or file activity found in these checks

No problems traced to this repository code in these checks; a short run cannot prove safety.

Reviewed as expected for a test run: attempted writes that failed, so nothing was written.

Full event, path and process lists for each observed setup:

Run details

Haiku 5.5

Native agent · Checked operation passed

Checked operation <guest-path> memory - 'select name, age from stdin'

Agent-reported scope: Run sqlite-utils (CLI) on CSV and JSON piped via stdin using the README's `sqlite-utils memory` command, plus insert a CSV into a new SQLite file and run the offline pytest suite

Run details
run
simonw--sqlite-utils-claude-haiku-5-5-1793089076431220656
date
Oct 27, 2026
time to working
314.1s
product hosting / execution
Local command in the guest
recorded operation scope
product operation
model
claude-haiku-5-5
agent / version
claude-code / 2.1.310 (Claude Code)
platform
linux
reported cost
$0.014017
Recorded source
https://github.com/simonw/sqlite-utils
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "9c66bafa52ae23d40499c74b0db3b635bcddb876", "url": "https://github.com/simonw/sqlite-utils"}
Test version
readme-d5b140d3c0f8b95c2dd6fe6fc381a303cacb92679582c22317d8e78b572f0cf2
revision
9c66bafa52ae23d40499c74b0db3b635bcddb876
Whose fault: not assigned · resolved

Safety: No problems traced to this repository code in these checks.

No problems traced to this repository code in these checks.

Reviewed as expected for a test run: attempted writes that failed, so nothing was written.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Answers recorded for this run
  • sqlite-utils memory runs SQL over CSV piped on stdin: Real input produced the expected result: "name": "Cleo"

    Source: `sqlite-utils memory` lets you import CSV or JSON data into an in-memory database and run SQL queries against it in a single command:

    Input: CSV via stdin, select name and age

    Expected: rows with name Cleo

    Command: <guest-path> memory - 'select name, age from stdin'

    Observed: "name": "Cleo", "age": 4}, {"name": "Pancakes", "age": 2}]

  • sqlite-utils memory runs SQL over JSON piped on stdin: Real input produced the expected result: "name": "Pancakes"

    Source: `sqlite-utils memory` lets you import CSV or JSON data into an in-memory database and run SQL queries against it in a single command:

    Input: JSON array via stdin, select name

    Expected: rows with name Pancakes

    Command: <guest-path> memory - 'select name from stdin'

    Observed: "name": "Pancakes"}]

Examples

  • Insert a CSV file into a new SQLite database file: command completed successfully with no output

    Source: README.md: sqlite-utils insert dogs.db dogs dogs.csv --csv

    Input: <guest-path> into fresh <guest-path>

    Expected: exit 0 and new database file created

    Command: <guest-path> insert <guest-path> dogs <guest-path> --csv

  • Repository documented test suite (CI runs pytest): command completed successfully

    Source: .github/workflows/test.yml: pytest -v

    Input: offline test suite in venv

    Expected: all tests pass

    Command: <guest-path> -q -p no:cacheprovider

    Observed: TemporaryDirectory' or pytest's 'tmp_path' fixture with absolute paths instead. with runner.isolated_filesystem(): tests/test_insert_files.py::test_insert_files_bad_text_encoding_error <guest-path> DeprecationWarning: 'isolated_filesystem' is deprecated and will be removed in Click 9.0. Use 'tempfile.TemporaryDirectory' or pytest's 'tmp_path' fixture with absolute paths instead. with runner.isolated_filesystem(): -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 1497 passed, 16 skipped, 33 warnings in 87.76s (0:01:27)

Local or hosted: local

What the agent did

Run sqlite-utils (CLI) on CSV and JSON piped via stdin using the README's `sqlite-utils memory` command, plus insert a CSV into a new SQLite file and run the offline pytest suite

cd <guest-path> && pwd && ls -la && git -C . rev-parse HEAD 2>&1 | head -1; python3 --version; id -u; cat /etc/os-release | head -2; echo "CDP=$CDP_URL"
cd <guest-path> && cat README.md 2>/dev/null | head -150; ls <guest-path>; ls /inputs 2>&1
cd <guest-path> && grep -n "requires-python\|dependencies" -A3 pyproject.toml | head -30; cat Justfile; ls .coldpass; python3 -m venv --help >/dev/null 2>&1 && echo venv_ok || echo venv_missing
mkdir -p <guest-path> && cd <guest-path> && python3 -m venv <guest-path> && <guest-path> install -q --upgrade pip 2>&1 | tail -3; <guest-path> install -q <guest-path> 2>&1 | tail -5; echo rc=$?; ls <guest-path> | grep sqlite
mkdir -p <guest-path> && printf 'id,age,name\n1,4,Cleo\n2,2,Pancakes\n' > <guest-path> && cd <guest-path> && export PATH=<guest-path> && sqlite-utils --version && sqlite-utils memory dogs.csv "select * from t"; echo rc=$?; sqlite-utils memory dogs.csv "select * from t" --csv; echo rc=$?
export PATH=<guest-path>; cd <guest-path> && cat dogs.csv | sqlite-utils memory - "select name, age from stdin"; echo rc=$?; mkdir -p <guest-path> && sqlite-utils insert <guest-path> dogs dogs.csv --csv; echo rc=$?; ls -la <guest-path>; sqlite-utils <guest-path> "select id, name from dogs"; echo rc=$?
cd <guest-path> && sed -n '/optional-dependencies/,/^$/p;/dependency-groups/,/^\[tool/p' pyproject.toml | head -50; ls .github/workflows; grep -n "pytest\|run:" .github/workflows/test.yml | head -20
<guest-path> install -q pytest hypothesis numpy 2>&1 | tail -3; cd <guest-path> && timeout 900 <guest-path> -q -p no:cacheprovider 2>&1 | tail -15; echo rc=${PIPESTATUS[0]}
export PATH=<guest-path>; cd <guest-path> && echo '[{"id": 1, "name": "Cleo"}, {"id": 2, "name": "Pancakes"}]' | sqlite-utils memory - "select name from stdin"; echo rc=$?; sqlite-utils memory --help | grep -i -A1 "save\|--table\|--csv" | head -12
rm -rf <guest-path> && cd <guest-path> && ls -a && git status 2>/dev/null | head -1; find . -maxdepth 2 -name "*.egg-info" -o -maxdepth 2 -name build -type d | head; mkdir -p <guest-path> && ls -la <guest-path>
cd <guest-path> && rm -rf build sqlite_utils.egg-info .hypothesis && cat > .coldpass/probe.json <<'EOF'
{"kind":"cli","argv":["sqlite-utils","memory","-","select name, age from stdin"],"cwd":"<guest-path>","stdin":"id,age,name\n1,4,Cleo\n2,2,Pancakes\n","env":{},"expected_text":"\"name\": \"Cleo\""}
EOF
python3 -I -c "import json;print(json.load(open('.coldpass/probe.json'))['argv'])"
cd <guest-path> && cat > .coldpass/probe.json <<'EOF'
{"kind":"cli","argv":["<guest-path>","memory","-","select name, age from stdin"],"cwd":"<guest-path>","stdin":"id,age,name\n1,4,Cleo\n2,2,Pancakes\n","env":{},"expected_text":"\"name\": \"Cleo\""}
EOF
cat > .coldpass/claims.json <<'EOF'
[{"kind":"claim","claim":"sqlite-utils memory runs SQL over CSV piped on stdin","source":"`sqlite-utils memory` lets you import CSV or JSON data into an in-memory database and run SQL queries against it in a single command:","input":"CSV via stdin, select name and age","expected":"rows with name Cleo","probe_kind":"cli","argv":["<guest-path>","memory","-","select name, age from stdin"],"stdin":"id,age,name\n1,4,Cleo\n2,2,Pancakes\n","expected_text":"\"name\": \"Cleo\"","cwd":"<guest-path>","env":{}},
{"kind":"claim","claim":"sqlite-utils memory runs SQL over JSON piped on stdin","source":"`sqlite-utils memory` lets you import CSV or JSON data into an in-memory database and run SQL queries against it in a single command:","input":"JSON array via stdin, select name","expected":"rows with name Pancakes","probe_kind":"cli","argv":["<guest-path>","memory","-","select name from stdin"],"stdin":"[{\"id\": 1, \"name\": \"Cleo\"}, {\"id\": 2, \"name\": \"Pancakes\"}]","expected_text":"\"name\": \"Pancakes\"","cwd":"<guest-path>","env":{}}]
EOF
python3 -I -c "import json;[print(c['argv'][-1]) for c in json.load(open('.coldpass/claims.json'))]"
cd <guest-path> && cat > .coldpass/examples.json <<'EOF'
[{"kind":"example","claim":"Insert a CSV file into a new SQLite database file","source":"README.md: sqlite-utils insert dogs.db dogs dogs.csv --csv","input":"<guest-path> into fresh <guest-path>","expected":"exit 0 and new database file created","argv":["<guest-path>","insert","<guest-path>","dogs","<guest-path>","--csv"],"cwd":"<guest-path>","env":{},"output_directory":"<guest-path>"},
{"kind":"example","claim":"Repository documented test suite (CI runs pytest)","source":".github/workflows/test.yml: pytest -v","input":"offline test suite in venv","expected":"all tests pass","argv":["<guest-path>","-q","-p","no:cacheprovider"],"cwd":"<guest-path>","env":{"HYPOTHESIS_STORAGE_DIRECTORY":"<guest-path>"},"expected_text":"1497 passed, 16 skipped"}]
EOF
cat > .coldpass/cycles.json <<'EOF'
{"detected":false,"reason":"Entry points inspected: README.md (CLI/library usage only), pyproject.toml [project.scripts] sqlite-utils = sqlite_utils.cli:cli, Justfile. No cron, scheduler, loop, webhook, --once or --now feature in the product; the only scheduling found is in CI workflows (.github/workflows), which are not product cycles.","checks":[]}
EOF
<guest-path> -I -c "import json;[json.load(open('.coldpass/'+f)) for f in ['examples.json','cycles.json','claims.json','probe.json']];print('json ok')"
cd <guest-path> && cat > .coldpass/report.json <<'EOF'
{"outcome":"working","fault_owner":null,"operation":"Run sqlite-utils (CLI) on CSV and JSON piped via stdin using the README's `sqlite-utils memory` command, plus insert a CSV into a new SQLite file and run the offline pytest suite","operation_scope":"Ubuntu 24.04 guest, Python 3.12.3, venv at <guest-path>, pip install of the local workspace source (sqlite-utils 4.2.1). Offline. No browser, no credentials.","steps":["python3 -m venv <guest-path>","<guest-path> install <guest-path>","sqlite-utils memory dogs.csv \"select * from t\"","cat dogs.csv | sqlite-utils memory - \"select name, age from stdin\"","echo JSON | sqlite-utils memory - \"select name from stdin\"","sqlite-utils insert dogs.db dogs dogs.csv --csv","sqlite-utils dogs.db \"select id, name from dogs\"","pip install pytest hypothesis numpy; pytest -q (CI test.yml runs pytest)"],"deviations":["Used pip in a venv (README's pip install) instead of the Justfile's uv; uv not needed for the README path.","Workspace has no .git metadata, so the pinned commit 9c66bafa52ae23d40499c74b0db3b635bcddb876 was not verified; git init/fetch steps were not needed for these commands.","pip install and pytest created build/, sqlite_utils.egg-info and .hypothesis in the checkout; removed build/, egg-info and .hypothesis after install. pytest later run with HYPOTHESIS_STORAGE_DIRECTORY outside the checkout.","Pytest installed extra test deps (pytest, hypothesis, numpy) per CI workflow; not the full dev dependency group (no lint run).","Library (Python API) example in README not run: it is inline Python, not a documented CLI entrypoint.","Browser/CDP endpoint not used: operation is offline CLI."],"stuck_step":null,"main_blocker":null,"plain_failure":null,"suggested_fix":null}
EOF
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -60
Earlier attempts (1)

Luna

Native agent · Checked operation passed

Checked operation /tmp/sqlite-utils-venv/bin/sqlite-utils memory - 'select name, age from stdin'

Agent-reported scope: sqlite-utils memory - 'select name, age from stdin'

Run details
run
simonw--sqlite-utils-gpt-6-luna-1793089282684312892
date
Oct 27, 2026
time to working
59.8s
product hosting / execution
Local command in the guest
recorded operation scope
product operation
model
gpt-6-luna
agent / version
codex / codex-cli 0.164.0
platform
linux
reported cost
not reported (not assumed free)
Recorded source
https://github.com/simonw/sqlite-utils
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "9c66bafa52ae23d40499c74b0db3b635bcddb876", "url": "https://github.com/simonw/sqlite-utils"}
Test version
readme-38e6b13f3b13804effb95797e3466b1a1334da7a232d897cbc8965867f802605
revision
9c66bafa52ae23d40499c74b0db3b635bcddb876
Whose fault: not assigned · resolved

Safety: No problems traced to this repository code in these checks.

No problems traced to this repository code in these checks.

Reviewed as expected for a test run: attempted writes that failed, so nothing was written.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Answers recorded for this run
  • Run an in-memory SQL query against JSON input and return selected fields.: Real input produced the expected result: Cleo

    Source: `sqlite-utils memory` lets you import CSV or JSON data into an in-memory database and run SQL queries against it in a single command:

    Input: JSON rows for Cleo and Pancakes; select name and age

    Expected: Output contains both names and ages

    Command: /tmp/sqlite-utils-venv/bin/sqlite-utils memory - 'select name, age from stdin'

    Observed: Cleo", "age": 4}, {"name": "Pancakes", "age": 2}]

Examples

  • Query JSON data in memory: command completed successfully

    Source: README.md / Using as a CLI tool

    Input: Two JSON rows; select name and age

    Expected: Query output includes Cleo and Pancakes

    Command: /tmp/sqlite-utils-venv/bin/sqlite-utils memory - 'select name, age from stdin'

    Observed: [{"name": "Cleo", "age": 4}, {"name": "Pancakes", "age": 2}]

Local or hosted: local

What the agent did

sqlite-utils memory - 'select name, age from stdin'

pwd && ls -la && sed -n '1,240p' README.md && python3 --version && id -u
cat pyproject.toml; cat .github/workflows/test.yml 2>/dev/null; ls .coldpass; python3 -m pip --version
python3 -m venv /tmp/sqlite-utils-venv && /tmp/sqlite-utils-venv/bin/pip install .
/tmp/sqlite-utils-venv/bin/sqlite-utils memory - 'select name, age from stdin' <<'EOF'
[{"name":"Cleo","age":4},{"name":"Pancakes","age":2}]
EOF
mkdir -p .coldpass && cat > .coldpass/probe.json <<'EOF'
{"kind":"cli","argv":["/tmp/sqlite-utils-venv/bin/sqlite-utils","memory","-","select name, age from stdin"],"cwd":"<guest-path>","stdin":"[{\"name\":\"Cleo\",\"age\":4},{\"name\":\"Pancakes\",\"age\":2}]\n","expected_text":"Cleo"}
EOF
cat > .coldpass/claims.json <<'EOF'
[
 {"kind":"claim","claim":"Run an in-memory SQL query against JSON input and return selected fields.","source":"`sqlite-utils memory` lets you import CSV or JSON data into an in-memory database and run SQL queries against them in a single command:","input":"JSON rows for Cleo and Pancakes; select name and age","expected":"Output contains both names and ages","probe_kind":"cli","argv":["/tmp/sqlite-utils-venv/bin/sqlite-utils","memory","-","select name, age from stdin"],"stdin":"[{\"name\":\"Cleo\",\"age\":4},{\"name\":\"Pancakes\",\"age\":2}]\n","expected_text":"Cleo","cwd":"<guest-path>"}
]
EOF
cat > .coldpass/examples.json <<'EOF'
[{"kind":"example","claim":"Query JSON data in memory","source":"README.md / Using as a CLI tool","input":"Two JSON rows; select name and age","expected":"Query output includes Cleo and Pancakes","argv":["/tmp/sqlite-utils-venv/bin/sqlite-utils","memory","-","select name, age from stdin"],"cwd":"<guest-path>","stdin":"[{\"name\":\"Cleo\",\"age\":4},{\"name\":\"Pancakes\",\"age\":2}]\n","expected_text":"Cleo"}]
EOF
cat > .coldpass/cycles.json <<'EOF'
{"detected":false,"reason":"Inspected README and project entry point: sqlite-utils runs explicit CLI database operations and documents no scheduler, recurring loop, webhook, or cycle trigger.","checks":[]}
EOF
cat > .coldpass/report.json <<'EOF'
{"outcome":"working","fault_owner":null,"operation":"sqlite-utils memory - 'select name, age from stdin'","operation_scope":"Python 3.12 CLI installation and in-memory JSON query","steps":["python3 -m venv /tmp/sqlite-utils-venv","/tmp/sqlite-utils-venv/bin/pip install .","/tmp/sqlite-utils-venv/bin/sqlite-utils memory - 'select name, age from stdin'"],"deviations":[],"stuck_step":null,"main_blocker":null,"plain_failure":null,"suggested_fix":null}
EOF
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
python3 - <<'PY'
p='.coldpass/claims.json'
s=open(p).read().replace('`sqlite-utils memory` lets you import CSV or JSON data into an in-memory database and run SQL queries against them in a single command:', '`sqlite-utils memory` lets you import CSV or JSON data into an in-memory database and run SQL queries against them in a single command:')
open(p,'w').write(s)
PY
sed -n '70,90p' README.md
python3 - <<'PY'
p='.coldpass/claims.json'; s=open(p).read().replace('and run SQL queries against them in a single command:', 'and run SQL queries against it in a single command:'); open(p,'w').write(s)
PY
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay