ls for what’s
inside your media files.

Browse videos, audio, images, and documents in your terminal. Inspect their metadata or export it as JSON. Everything runs locally.

brew install thepushkarp/tap/mls
mls .

Install on macOS, then browse the current folder.

Get Homebrew · Cargo installation

Browse the folder

mls ~/Media
MLS in a Mac terminal, with folders on the left, movie files in the center, and artwork and metadata on the right.
mls — ~/Media/Movies
~/Media % mls
Media — 9 files
Preview
Charge poster
Charge.mp4name ↑

Metadata for
your scripts.

Use --json for one document, or pipe the output for streaming NDJSON.

mls --json ~/Media

Sample output excerpt; paths and response wrapper omitted.

Agent guide
{
  "file_name": "Charge.mp4",
  "media": {
    "kind": "video",
    "duration_ms": 12000,
    "video": {
      "width": 640,
      "height": 360,
      "fps": {
        "num": 25,
        "den": 1
      },
      "bitrate_bps": 37504,
      "codec": {
        "name": "h264",
        "profile": "High",
        "level": "30"
      },
      "pixel_format": "yuvj420p"
    },
    "tags": {
      "title": "Charge"
    }
  }
}
Read the sample JSON
Install with Cargo

The crate is media-ls; the command is mls. Install ffmpeg for media probing and mpv for playback.

cargo install media-ls