Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Safe Filename Linter

sneakyfoxessneakyfoxes6k downloads

Lint filenames for invalid or troublesome characters.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates5

Lint filenames for invalid or troublesome characters, such as pipes, colons, and brackets.

Useful for Obsidian users who create notes via external means or sync their notes across various platforms.

Handles characters that cause issues for Obsidian itself along with characters that are invalid in Android filenames.

Using the plugin

Manual invocation

This plugin adds two commands.

  • Safe filename linter: Lint the current filename
  • Safe filename linter: Lint all filesnames in the vault

These commands rename files by replacing invalid or troublesome characters with characters of your choice. The renaming action uses the Obsidian renaming calls and will follow your vault settings for updating internal links (Prompted or Automatic). Be prepared to be patient if you have a large vault with many required renames.

Automatic invocation

To lint files automatically without needing to manually invoke the commands, enable Lint automatically in the plugin settings. This will automatically lint files created using Obsidian, as well as any files created in external systems that are synced into your Obsidian vault. Enabling the setting will not lint existing files. Run Lint all filenames in the vault once to clean them up.

To the best of our understanding, Lint automatically should also handle files added using Obsidian Sync, but since the authors of this plugin do not use Obsidian Sync, we cannot guarantee compatibility. A contribution validating compatibility would be very welcome.

Credits

We are grateful to the developers of Obsidian for the Obsidian Sample Plugin for the basis of this plugin, and to Obsidian Filename Emoji Remover Plugin, whose code we read and experimented with before diving into writing our own plugin.

Thank you to @robertgarrigos and @cwoelk for automatic linting and bugfixes.

Installing the plugin

Community plugin directory

  1. Search for Safe Filename Linter in the directory
  2. Enable this project from the Community Plugins setting section
  3. Set up your preferred character replacements in the Safe Filename Linter Community Plugins section

Manually Install

  1. On the command line, navigate to your vault's .obsidian/plugins directory and run: git clone https://github.com/sneakyfoxes/obsidian-safe-filename-linter
    • Alternatively, download the latest release and place the main.js and manifest.json in the directory in obsidian-safe-filename-linter
  2. In your Obsidian vault, enable this project from the Community Plugins setting section
  3. Set up your preferred character replacements in the Safe Filename Linter Community Plugins section

Contributing

We welcome issues and pull requests for any characters that cause issues for Obsidian or any platform it runs on. We also welcome any additional replacement characters. This plugin has no desire to handle linting characters beyond functional filename use cases.

See CONTRIBUTING for details on how to submit code.

HealthExcellent
ReviewSatisfactory
About
Lint filenames for invalid or troublesome characters like pipes, colons, and brackets, and spot names that may break on Android or across sync. Rename files by replacing flagged characters with chosen substitutes while using Obsidian's renaming calls and respecting link-update settings.
FilesCommandsSyncing
Details
Current version
1.4.2
Last updated
3 weeks ago
Created
3 years ago
Updates
5 releases
Downloads
6k
Compatible with
Obsidian 0.15.0+
Platforms
Desktop, Mobile
License
GPL-3.0
Report bugRequest featureReport plugin
Author
sneakyfoxessneakyfoxes
github.com/sneaky-foxes
GitHubsneakyfoxes
  1. Community
  2. Plugins
  3. Files
  4. Safe Filename Linter

Related plugins

Find orphaned files and broken links

Find files that are not linked anywhere and would otherwise be lost in your vault. In other words: files with no backlinks.

Google Drive Sync

Syncs a vault into Google Drive for cross-platform use (works for iOS).

Print

Print notes and documents directly from your workspace.

Notebook Navigator

A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.

Self-hosted LiveSync

Sync vaults securely to self-hosted servers or WEBRTC.

Quick Switcher++

Enhanced Quick Switcher, search open panels, and symbols.

Advanced URI

Control everything with URI.

Fast Note Sync

Real-time sync of your vaults across server, mobile, and web; shareable with anyone; supports REST and MCP integrations to build your personal AI knowledge base.

Claudian

Embeds Claude Code/Codex and other local Agents as AI collaborators in your vault.

Thino

Quickly capture memos and display them in the sidebar with a heatmap. (Closed source)