Skip to main content

A terminal JSON viewer with columnar navigation like JSON Hero

Project description

JSON TUI

A terminal JSON viewer with columnar navigation, inspired by JSON Hero.

Python 3.14+

screenshot of column layouts

Why?

I love JSON Hero, but in real life, privacy is a serious issue. In some companies I've worked at, leaked client data can get you fired or worse. In my everyday work, unreadable JSON responses (very long ones) happen frequently, so this viewer gives me a similar experience without any data leak risk.

What's it solving?

  • Offline - no data sent to any server
  • Terminal-based - no need for a browser or GUI (works over SSH or inside pods/containers)
  • Python-based - easy to install and extend
  • Performance - using Python means I can extend it with Rust for performance-critical parts if needed
  • UV compatibility - can be easily installed and run with UV

Features

  • Columnar Navigation: Navigate nested JSON structures in a multi-column view
  • Keyboard-driven: Vim-style keybindings (hjkl) and arrow keys
  • Syntax Highlighting: Color-coded values by type (strings, numbers, booleans, null)
  • Live Preview: See full values in the preview panel
  • Path Breadcrumbs: Always know where you are in the structure
  • Stdin Support: Pipe JSON directly from curl or other commands

Installation

# Easy with UV
uv tool install json-tui

# Also pip works
pip install json-tui

Usage

# View a JSON file
json-tui data.json

# Pipe from stdin
curl https://api.example.com/data | json-tui --stdin

# Or use echo
echo '{"hello": "world", "nested": {"key": "value"}}' | json-tui -s

Keybindings

Key Action
/ k Move up in current column
/ j Move down in current column
/ h Focus previous column
/ l Focus next column / expand
Enter Expand selected node
Backspace / Esc Collapse / go back
? Show help
q Quit

Development

# Run directly with UV
uv run json-tui sample.json

# Or activate the venv
source .venv/bin/activate
json-tui examples/sample.json

Next Steps

  • parse json using rust for better performance or py threads
  • improve long columns handling
  • fuzzy search
  • copy curent value/node to clipboard

Complementary Tools

Before start working on this project i've looked at existing tools, and here are some that helped me and i'm still using some of them:

  • Visi Data : json and a lot more visualization on your terminal.
  • fx : polished dropdown based viewer using go.
  • jless : json reader and searcher in rust
  • jq: the mature solution on json search and prettify, not "real time" or tui.
  • jqp : the missing part of jq, tui + live preview.
  • json-tui: using c++ similar to fx.

License

MIT

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

json_tui-1.0.3.tar.gz (457.2 kB view details)

Uploaded Source

Built Distribution

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

json_tui-1.0.3-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file json_tui-1.0.3.tar.gz.

File metadata

  • Download URL: json_tui-1.0.3.tar.gz
  • Upload date:
  • Size: 457.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for json_tui-1.0.3.tar.gz
Algorithm Hash digest
SHA256 b938ef91acd7b39bc4dc731d913ad87c018ea737c27509df284bffdfc2c97a7b
MD5 c535a78d8b6e0891a68099c0c5542d04
BLAKE2b-256 e968295c92e2c1901015071f074ec16bff5b420bda95c3c90ad6cbb8a5ee5dcb

See more details on using hashes here.

File details

Details for the file json_tui-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: json_tui-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for json_tui-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7b5428a5fffd2b11b62e72e5bff2137bdd9d57b507db5587f0ba21adf0c41732
MD5 0d5be591bb09c2a1c4b2cb2aff76f07e
BLAKE2b-256 48189e8d3301aba201c5caa69bc027134fef03d2528a04f6ffdfd565f35ad199

See more details on using hashes here.

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