Skip to main content

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

Metadata

Release files for seej 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for seej 0.2.0
File Size Uploaded
seej-0.2.0.tar.gz 20.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for seej 0.2.0
File Interpreter ABI Platform
seej-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 41.2 kB

Release files / seej-0.2.0.tar.gz

Download URL seej-0.2.0.tar.gz
Size 20.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0005ad7352dbce7d490eac770b8bf235c4a46c0a4b2663485c2d06ff31f90a86
BLAKE2b-256 checksum
How to use checksums
014fe7fc501b1e0693c38fe95078388afe678a789bb46308b9bb2d96ab106a91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 20, 2026.

Transparency log

Release files / seej-0.2.0-py3-none-any.whl

Download URL seej-0.2.0-py3-none-any.whl
Size 20.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ae909e204f4b7bdf2b8baffd1ef8126caa600b1d9cffed6a92bb4c2a2378e1d2
BLAKE2b-256 checksum
How to use checksums
3c5d5775b4d73bcaa5bf94e97f1197d8947733b207b5970a1e46ace9ca1090bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release 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