Skip to main content

Interactive JSONL browser with rich rendering

Project description

seej

seej is an interactive terminal JSONL (JSON Lines) browser with rich rendering. It helps you step through .jsonl files record by record, with pluggable renderers for complex data.

Features

  • Interactive navigation — keyboard-driven browsing through JSONL records
  • Rich output — formatting via the rich library
  • Per-field renderers — map fields to renderers (messages, tables, nested structures, etc.)
  • Filtering — keep rows that match a safe Python expression
  • Plugins — extend rendering via Python entry points
  • View modes — switch between rich and plain-text rendering

Installation

pip install seej

From a git checkout:

git clone https://github.com/<owner>/seej.git
cd seej
pip install .

Quick start

# Basic usage
seej path/to/file.jsonl

# Start at a given record index
seej path/to/file.jsonl -I 10

# Plain text instead of rich rendering
seej path/to/file.jsonl --raw

(-R is a short alias for --raw.)

Custom field renderers

Map JSON fields to named renderers:

# Render specific fields as chat-style messages
seej data.jsonl -r messages=chat,conversation

# Multiple mappings
seej data.jsonl -r text=description -r messages=messages

# List registered renderers
seej --list-renderers

Built-in renderers

  • messages — chat / role–content style payloads
  • text (aliases: str, string) — general text
  • eye — minimal / raw-style dump

Filtering

Use -c / --condition with an expression evaluated per record (variable ex is the current object):

seej data.jsonl -c 'ex["type"] == "chat"'
seej data.jsonl -c 'len(ex["messages"]) > 5'
seej data.jsonl -c 'ex["type"] == "chat"' -c 'len(ex["messages"]) > 3'

Quote expressions so your shell does not rewrite them.

Plugins

Plugins register extra renderers under the seej.plugins entry-point group.

Example: nested structures

pip install seej-plugin-nested

That plugin adds renderers such as:

  • nested — pick a reasonable view (tree for dicts, table for lists)
  • nested_dict / nested_tree — tree views
  • nested_list / nested_table — tabular views
  • json — highlighted JSON with line numbers
  • compact — single-line compact form

Usage:

seej data.jsonl -r nested=config,metadata
seej data.jsonl -r nested_table=records
seej data.jsonl -r nested_tree=settings
seej data.jsonl -r nested_table=items

More examples

seej data.jsonl
seej data.jsonl -I 5
seej data.jsonl -c 'ex["status"] == "active"'
seej data.jsonl -r messages=conversation -r text=description
seej data.jsonl -r nested=complex_data
seej data.jsonl --no-plugins
seej --list-renderers

Keyboard shortcuts

While browsing:

  • Down or Right — next record
  • Up or Left — previous record
  • Q or X — quit
  • T — toggle rich vs raw rendering

Writing plugins

Plugins expose renderers through entry points. For a full walkthrough (including a guide in Chinese), see the seej-plugin-nested repository and its plugin documentation.

License

MIT

Contact

Project details


Download files

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

Source Distribution

seej-0.2.0.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

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

seej-0.2.0-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

Details for the file seej-0.2.0.tar.gz.

File metadata

  • Download URL: seej-0.2.0.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for seej-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0005ad7352dbce7d490eac770b8bf235c4a46c0a4b2663485c2d06ff31f90a86
MD5 6aedd9600f097016422116633b99b5e4
BLAKE2b-256 014fe7fc501b1e0693c38fe95078388afe678a789bb46308b9bb2d96ab106a91

See more details on using hashes here.

Provenance

The following attestation bundles were made for seej-0.2.0.tar.gz:

Publisher: python-publish.yaml on Hambaobao/seej

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file seej-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: seej-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 20.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for seej-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ae909e204f4b7bdf2b8baffd1ef8126caa600b1d9cffed6a92bb4c2a2378e1d2
MD5 b77cbb6a4b48b49b86c6a34bbcf0dbc0
BLAKE2b-256 3c5d5775b4d73bcaa5bf94e97f1197d8947733b207b5970a1e46ace9ca1090bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for seej-0.2.0-py3-none-any.whl:

Publisher: python-publish.yaml on Hambaobao/seej

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page