Skip to main content

jlkit

A JSONL-native command-line toolkit. jq is a per-line expression language and jless/jnv are viewers — none give ergonomic dataset-level operations on newline-delimited JSON, the format every LLM / eval / log / data pipeline emits. jlkit does.

Everything streams: it never loads the whole file and it tolerates malformed lines (reporting them by number where that matters).

Status: beta (v0.1.0). All seven subcommands work; PyPI release imminent.

Install

uvx jlkit --help      # or: pipx install jlkit

Usage

jlkit head -n 20 data.jsonl
cat data.jsonl.gz | jlkit tail 5
jlkit select id,user.name,ts events.jsonl

# keep records matching a safe predicate (no eval): ==,!=,<,<=,>,>=,
# exists, contains, and/or/not, parens, dotted paths
jlkit filter 'status == "error" and retries > 3' logs.jsonl
jlkit filter 'user.name contains "bot" or not active' events.jsonl

# per-field presence %, null %, observed types, numeric min/max/mean/stddev,
# string cardinality (nested keys shown as dotted paths)
jlkit stats data.jsonl

# infer a JSON Schema (draft 2020-12) over a full pass
jlkit schema data.jsonl > schema.json

# report malformed lines (and, with --schema, non-conforming records) by
# 1-indexed line number; exits non-zero on any failure — CI-friendly
jlkit validate data.jsonl
jlkit validate --schema schema.json data.jsonl

--limit N stops after N input records; every command reads stdin or a file arg and handles .gz transparently.

Development

python -m venv .venv && .venv/bin/pip install pytest
.venv/bin/python -m pytest -q

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jlkit-0.1.1.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jlkit-0.1.1-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file jlkit-0.1.1.tar.gz.

File metadata

  • Download URL: jlkit-0.1.1.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for jlkit-0.1.1.tar.gz
Algorithm Hash digest
SHA256 dc0165e333b1d26575e9d6b370fa4fe683ab64a23d6ee910f3029b21aafdc04f
MD5 f6525f6799b9e9bc2d8b13d3674332aa
BLAKE2b-256 74679d570194bf8135a8f823a8f7b1d6fa9cc7215a8358b1088e6fc3d9f827d7

See more details on using hashes here.

File details

Details for the file jlkit-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: jlkit-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for jlkit-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8c70f34d0b12f05133c048948d918208224e609f65c864e46372dd808302597b
MD5 934f7944877d11d120f01301e31089c6
BLAKE2b-256 1163a8d932e054a9618199ea9e51ee20b9a95181cb8e7ebf73f27843801da501

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page