One File

by rcanand
5
4
3
2
1
Score: 35/100
New Plugin

Description

Edit any markdown file on your machine from inside an Obsidian vault via symlinks, in a distraction-free focus mode. - This plugin has not been manually reviewed by Obsidian staff.

Reviews

No reviews yet.

Stats

stars
downloads
0
forks
0
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

One File (Obsidian plugin)

Edit any markdown file on your computer from inside an Obsidian vault, in a distraction-free focus mode.

Instead of copying files into the vault, One File creates a link to the original file on disk. Edits in Obsidian write through to the real file — no duplicates, no sync logic.

Desktop only (macOS / Windows / Linux). The plugin cannot be installed or run on mobile — Obsidian will not show it in the community plugin browser on mobile, and it will not load if installed manually. See the Mobile caveat below for how to work with your files on mobile.

Install

  1. Copy main.js, manifest.json, and styles.css into <vault>/.obsidian/plugins/one-file/.
  2. Enable the plugin in Obsidian: Settings → Community plugins.
  3. Grant Obsidian Full Disk Access (macOS) or the equivalent on your OS if you edit files in protected locations (~/Desktop, ~/Documents, ~/Downloads).

Commands

Command What it does
Open file from computer Pick an existing markdown file with a native file picker, or pick a folder and enter a filename to create a new one.
Open file by path Type or paste an absolute path. Creates the file if it doesn't exist.
Toggle focus mode Hide/show the ribbon, sidebars, tab bar, and status bar.
Clean up links to deleted files Remove links whose original file was deleted or moved.

Settings (link folder, cleanup, removing all links) are available under Settings → Community plugins → One File.

How it works

  • When you open a file, One File creates a link to it inside a folder in your vault (default: one-file/mirror/). The link mirrors the original file's path from the root of your disk, e.g. /Users/me/notes/idea.mdone-file/mirror/Users/me/notes/idea.md.
  • This folder is visible in your vault on purpose — you can see exactly what the plugin is doing and where each file comes from.
  • Links are remembered, so re-opening a file is instant.
  • Opening a file enters focus mode (hides the ribbon, sidebars, tabs, and status bar). Toggle it off with the command.

Caveats

  • Links & sync: iCloud, Obsidian Sync, and Dropbox generally do not sync links correctly. If you sync this vault, the links will not travel to other devices. One File is meant for editing on the machine where the files live.
  • Original file deleted or moved: the link stops working. One File checks for this automatically when Obsidian starts and removes the broken links. You can also run Clean up links to deleted files at any time.
  • Files created directly in the vault are not copied elsewhere — One File only links files you explicitly open through its commands.
  • Permissions: editing files in protected locations (like ~/Documents on macOS) requires Full Disk Access for the Obsidian app itself.
  • Links appear in search and graph: because the link folder is visible, linked files show up in Obsidian search and the graph view. If you'd rather keep them out of search, you can add the link folder to Obsidian's "Excluded files" setting manually — the files remain openable via the plugin's commands.
  • Mobile — cloud/shared files: if the file you want to edit lives in a cloud-synced or shared location that is also available on mobile (e.g. an iCloud Drive folder reachable from the mobile Obsidian app), you can open and edit it on mobile as a regular vault file or via an app that can reach that cloud location — but not through this plugin, which is desktop-only.
  • Mobile — local-only files: if the file lives on a local disk path not reachable from mobile (e.g. /Users/... on your Mac, or C:\... on Windows), it is unavailable on mobile. The link created on desktop will not resolve there, and the original file cannot be accessed. Edit these files only on the machine where they live.

Tech notes

  • Links are filesystem symlinks, created with Node fs.symlinkSync. Edits write through to the original file.
  • Native file dialogs use @electron/remote, falling back to electron.remote on older Obsidian builds.
  • Focus mode collapses the workspace sidebars via the Obsidian API and hides the ribbon, tab bar, and status bar via injected CSS.
  • isDesktopOnly: true in the manifest enforces desktop-only installation and loading.
  • There is no global filesystem watcher — files are linked on demand when you run a command, which keeps the plugin lightweight.

Author

Anand Ramanathan (rcanand) — rcanand.com · @rcanand on X

More from rcanand:

  • Maibook — a local-first desktop app for personalized AI agents.
  • Pencil - an Obsidian plugin to write with pencil in an infinite whiteboard.
  • maiweb — a highly customizable feed of the public web.
  • ollamadash — Comparing the latest AI models.

If One File is useful to you, buy me a coffee on Ko-fi.