Legible Files

unlisted

by Suryansh Mishra

Show chosen plain-text extensions (jsonl, log, txt, csv, …) in the file explorer and graph, and open them in a size-capped read-only viewer instead of converting them to .md.

★ 1 starsUpdated 20d agoMIT
View on GitHub

Legible Files for Obsidian

Legible Files

Make the plain-text files in your vault visible without converting them.

Obsidian hides every file extension it has no view for. The built-in fix, Detect all file extensions, is all or nothing: flip it on and every stray file in the vault shows up too. Legible Files registers only the extensions you list (by default jsonl, log, txt, csv, json, yml, yaml, py, ps1, js, html, xml, toml, ini), so those files:

  • show in the file explorer,
  • resolve as [[wikilinks]] from your notes,
  • appear in the graph view as attachments,

and nothing is renamed, copied or turned into .md.

A 900 KB JSONL transcript open in the read-only viewer

Why not map them to the Markdown view

Other plugins hand extra extensions to Obsidian's editor. That works until a file is big: a multi-megabyte log or a 90 MB JSONL transcript freezes CodeMirror. Legible Files opens them in a size-capped, read-only viewer instead. It reads at most Preview size (default 512 KB) from the head of the file and shows the byte count so you know what was cut. The toolbar has two buttons for when you actually want to edit: open in the default app and reveal in the file manager.

Settings

SettingWhat it does
ExtensionsComma or space separated list. Extensions Obsidian already owns (md, canvas, pdf, images, audio, video) are ignored. Changes apply on the next reload.
Preview size (KB)How much of each file the viewer reads. Larger is slower on huge files.

Extras for people who script their vault

  • Write index diagnostic (command palette) writes .obsidian/plugins/legible-files/diag.json: how many files of each extension Obsidian indexed, how many links resolve to them, an orphan count per folder, and the graph's current options. It runs on every load too, so a script outside Obsidian can read the state of the index.
  • Touch .obsidian/plugins/legible-files/diag.request from outside and the plugin rewrites diag.json and orphans.json (every indexed file with no link in or out) within 15 seconds.
  • Drop a graph-groups.json next to the plugin with an array of graph colour groups and they are applied when the graph opens with none of its own. Obsidian overwrites graph.json on any change; this copy survives.

Install

Until it is in the community list: download main.js, manifest.json and styles.css from the latest release into <vault>/.obsidian/plugins/legible-files/, reload Obsidian, enable it under Community plugins.

Desktop only (the viewer reads files with Node fs).

Development

Plain CommonJS, no build step. Edit main.js, reload Obsidian (Ctrl+R) or toggle the plugin.

MIT. Built by Suryansh Mishra.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.