1ls

One Line Script

A 0 dependency, lightweight, fast data processor with familiar JavaScript syntax.

View on GitHub

Powerful Features

Everything you need for efficient data processing in your terminal

JavaScript Syntax

Use familiar array methods and syntax instead of learning jq's DSL

Multi-format Support

Works with JSON, YAML, CSV, TOML, XML, INI, and more

Fast & Lightweight

Zero dependencies, built for maximum speed

Smart Tooltips

Get method hints as you type with live result previews

Shortcuts

Built-in shortcuts for common operations (e.g., .mp for .map)

File Operations

Read, list, and grep files with native support

Smart Tooltips in Action

Watch how 1ls provides intelligent hints as you type

Interactive Mode

Fuzzy Method Matching

Type partial names to find methods. Watch hints filter as you type more characters.

Works With Any Format

JSON, YAML, CSV, TypeScript, plain text, and more - all with the same simple syntax

Shortcut Syntax

JSON

Minified expressions: .fl = .filter, .mp = .map

Input:
json
[
  {"name": "Alice", "age": 30},
  {"name": "Bob", "age": 20},
  {"name": "Carol", "age": 28}
]
$ 1ls '.fl(x => x.age > 25).mp(x => x.name)'
Output:
json
["Alice", "Carol"]

JSON Processing

JSON

Access nested JSON properties with JavaScript syntax

Input:
json
{
  "users": [
    {
      "name": "Alice",
      "role": "admin"
    }
  ]
}
$ 1ls '.users[0].name'
Output:
json
"Alice"

YAML Support

YAML

Parse and query YAML files directly

Input:
yaml
database:
  host: localhost
  port: 5432
  name: myapp
$ 1ls '.database.host'
Output:
json
"localhost"

CSV Transformation

CSV

Filter and transform CSV data

Input:
csv
name,age
Alice,30
Bob,20
Carol,28
$ 1ls '.filter(x => x.age > 25).map(x => x.name)'
Output:
json
["Alice", "Carol"]

TypeScript/JavaScript

TypeScript

Process exported data from TS/JS files

Input:
typescript
export default {
  "name": "my-app",
  "dependencies": {
    "react": "^18.0.0"
  }
}
$ 1ls '.dependencies.react'
Output:
json
"^18.0.0"

Plain Text

Text

Process text files line by line

Input:
text
TODO: Fix bug
DONE: Feature complete
TODO: Add tests
IN PROGRESS: Refactor
$ 1ls '.filter(x => x.includes("TODO"))'
Output:
json
["TODO: Fix bug", "TODO: Add tests"]

Built for Speed

Optimized from the ground up to be lightweight and blazing fast

0
Zero Dependencies

No external runtime dependencies - just pure, efficient code

~1MB
Binary Size

Compiled natively for minimal footprint

<50ms
Startup Time

Near-instant execution for rapid workflows

8+
Formats Supported

JSON, YAML, CSV, TOML, XML, INI, and more

Try It Live

Edit the input data and expression to see results in real-time

Input
Expression
Try:

Output

json
// Result will appear here