Weird state of "newline-delimited JSON" support
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 40.5k
- Forks
- 2.3k
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 85
Description
Bug report form
- I have done a basic search of the issue tracker to find any existing issues that are similar.
- I have checked that my version is at least the latest stable release available via my installation method.
Describe the bug
nushell currently supports at least 3 variations of newline-delimited JSON inputs. First, there is from json --objects. There's also jsonl and ndjson support in stdlib.
How to reproduce
See from json having an --objects flag:
from json --help
...
Parse a stream of line-delimited JSON values.
> '{ "a": 1 }
{ "b": 2 }' | from json --objects
╭───┬────┬────╮
│ # │ a │ b │
├───┼────┼────┤
│ 0 │ 1 │ ❎ │
│ 1 │ ❎ │ 2 │
╰───┴────┴────╯
See stdlib functions for newline-delimited JSON support:
nu -c "
use std
scope commands
| where name =~ '^std formats from '
| select name description extra_description
| wrap 'Standard Library Commands'
| table -e
"
╭───┬─────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ # │ Standard Library Commands │
├───┼─────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ 0 │ ╭───────────────────┬─────────────────────────────────────────────────────────────────╮ │
│ │ │ name │ std formats from jsonl │ │
│ │ │ description │ Convert from JSONL (https://jsonlines.org/) to structured data. │ │
│ │ │ extra_description │ │ │
│ │ ╰───────────────────┴─────────────────────────────────────────────────────────────────╯ │
│ 1 │ ╭───────────────────┬─────────────────────────────────────────────────────────────────────────────────╮ │
│ │ │ name │ std formats from ndjson │ │
│ │ │ description │ Convert from NDJSON (https://github.com/ndjson/ndjson-spec) to structured data. │ │
│ │ │ extra_description │ │ │
│ │ ╰───────────────────┴─────────────────────────────────────────────────────────────────────────────────╯ │
│ 2 │ ╭───────────────────┬─────────────────────────────────────────────────────────────────╮ │
│ │ │ name │ std formats from ndnuon │ │
│ │ │ description │ Convert from NDNUON (newline-delimited NUON) to structured data │ │
│ │ │ extra_description │ │ │
│ │ ╰───────────────────┴─────────────────────────────────────────────────────────────────╯ │
╰───┴─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Expected behavior
Given that all of those newline-delimited input formats are very similar, I'd expect a single interface to using them.
Configuration
| key | value |
|---|---|
| version | 0.113.1 |
| major | 0 |
| minor | 113 |
| patch | 1 |
| branch | |
| commit_hash | |
| build_os | linux-x86_64 |
| build_target | x86_64-unknown-linux-gnu |
| rust_version | rustc 1.95.0 (59807616e 2026-04-14) (built from a source tarball) |
| cargo_version | cargo 1.95.0 (f2d3ce0bd 2026-03-21) |
| build_time | 1980-01-01 00:00:00 +00:00 |
| build_rust_channel | release |
| allocator | standard |
| features | default, mcp, network, plugin, rustls-tls, sqlite, trash-support |
| installed_plugins | |
| experimental_options | example=false, reorder-cell-paths=true, pipefail=true, enforce-runtime-annotations=false, native-clip=false, cell-path-types=false |
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing the from json --objects command with the standard-library commands std formats from jsonl, ndjson, and ndnuon, using their help text and examples as the current behavior. Done means the newline-delimited input formats have one coherent interface and the overlapping commands or options are consistently documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust, shell
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100