Legible Files
unlistedby 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.
Legible Files for Obsidian

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.

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
| Setting | What it does |
|---|---|
| Extensions | Comma 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.requestfrom outside and the plugin rewritesdiag.jsonandorphans.json(every indexed file with no link in or out) within 15 seconds. - Drop a
graph-groups.jsonnext to the plugin with an array of graph colour groups and they are applied when the graph opens with none of its own. Obsidian overwritesgraph.jsonon 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.