FSView
pendingby Isaque Pereira
Browse and query your local file system as an interactive, collapsible tree inside any note.
fsview
An interactive, collapsible file system tree inside any Obsidian note.
Like Dataview, but for files and folders anywhere on your Mac — not just inside your vault.
Desktop only. Requires Obsidian 1.4+. Uses Node.js and Electron APIs.
What it does
Write a fenced code block tagged fsview, point it at any folder on your machine, and fsview renders a live collapsible tree of matching files and folders with clickable links that open them in Finder.
```fsview
path: ~/Documents/Projects
type: folders
recursive: true
sort: name
```
Clicking ▶ / ▼ → expand or collapse a folder inline.
Clicking a folder name → opens it in Finder.
Clicking a file name → reveals it highlighted in Finder.
Clicking the header path → opens the root folder in Finder.
Folders are loaded lazily — only scanned when you expand them. Pointing at large directories like ~/ is safe and instant.
Installation
From the Community Plugin browser
- Open Obsidian → Settings → Community Plugins → Browse
- Search for fsview
- Click Install, then Enable
Manual installation
- Download the latest release and unzip it.
- Copy the
obsidian-fsviewfolder into your vault's plugin directory:
The folder must contain<your-vault>/.obsidian/plugins/fsview/main.jsandmanifest.json. - Open Obsidian → Settings → Community Plugins → enable fsview.
Build from source
cd obsidian-fsview
npm install
npm run build
Options reference
All options are key: value pairs inside the code block, one per line.
| Key | Values | Default | Description |
|---|---|---|---|
path | Any absolute or ~/… path | — | Required. The directory to scan. |
type | all · files · folders | all | Show all entries, only files, or only folders. |
recursive | true · false | false | Allow expanding subfolders. |
depth | Integer | 0 / ∞ | Maximum expandable depth. Overrides recursive. |
sort | name · modified · created · size | name | Sort field. Applied per level — siblings are sorted independently. |
order | asc · desc | asc | Sort direction. |
ext | .pdf, .fig, .sketch | — | Filter by extension (comma-separated). Ignored for folders. |
pattern | Any regex string | — | Filter entries by filename. Case-insensitive. |
collapsed | true · false | false | Start with all folders collapsed. |
limit | Integer | 500 | Maximum number of nodes to render. |
hidden | true · false | false | Include hidden files/folders (those starting with .). |
Examples
Collapsible folder tree, all subfolders
```fsview
path: ~/Work/Clients
type: folders
recursive: true
sort: name
```
Start collapsed — expand only what you need
```fsview
path: ~/Work/Clients
recursive: true
collapsed: true
```
Most recently modified files, newest first
```fsview
path: ~/Desktop
recursive: true
sort: modified
order: desc
limit: 50
```
Figma and PDF files only
```fsview
path: ~/Documents
recursive: true
ext: .fig, .pdf
sort: modified
order: desc
```
Files matching a naming pattern
```fsview
path: ~/Documents/Finance
pattern: ^Invoice
ext: .pdf
sort: created
order: desc
limit: 20
```
Two levels deep, everything visible
```fsview
path: ~/Projects
type: all
depth: 2
sort: modified
order: desc
```
Tree behavior
- Folders always appear before files when sorting by name.
- Sorting is applied per level — siblings within the same parent are sorted independently.
- Folders are lazily loaded: a directory is only scanned the first time you expand it. Re-expanding is instant (result is cached in the DOM).
- Expand/collapse state is in-memory per render. Switching notes and returning resets to the default state.
Global settings
Go to Settings → fsview to configure defaults for all blocks:
| Setting | Description |
|---|---|
| Recursive by default | Allow expanding subfolders unless overridden per block |
| Show hidden files | Include dotfiles globally |
| Max results | Global node cap per query (overridable with limit) |
| Start collapsed | Render all folders collapsed by default |
Notes
birthtime(creation date) may fall back tomtimeon some file systems that don't store it.- Results are read at render time. Switch notes and return to refresh.
- Symlinks are stat'd but not recursed into.
- Paths with spaces and special characters (including iCloud paths) are fully supported.
License
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.