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
richlibrary - 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 payloadstext(aliases:str,string) — general texteye— 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 viewsnested_list/nested_table— tabular viewsjson— highlighted JSON with line numberscompact— 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
- Email: jason.yang98@foxmail.com
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)
| File | Size | Uploaded | |
|---|---|---|---|
| seej-0.2.0.tar.gz | 20.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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