Custom Icons
unlistedby Philipp Geuer-Pollmann
Set custom image icons for notes and folders via URL — Notion-style.
obsidian-custom-icons
Set custom image icons for any note or folder in Obsidian's file explorer — just paste a URL, Notion-style.
Features
- Right-click any file or folder → Set custom icon
- Paste any public image URL (PNG, JPG, SVG, WebP, …)
- Live preview before confirming
- Icons appear directly in the Files tab next to the file/folder name
- Remove icons via right-click → Remove icon or through the settings tab
- All assigned icons are listed in the plugin settings with a thumbnail preview
- Icon paths are automatically updated when you rename or move a file/folder
Installation
From GitHub Releases (recommended)
-
Go to the Releases page and download the latest release assets:
main.jsmanifest.jsonstyles.css
-
In your vault, create the plugin folder:
.obsidian/plugins/obsidian-custom-icons/ -
Copy the three files into that folder:
.obsidian/plugins/obsidian-custom-icons/ ├── main.js ├── manifest.json └── styles.css -
Open Obsidian → Settings → Community plugins
-
Make sure Restricted mode is turned off
-
Click Reload plugins (or restart Obsidian)
-
Find Custom Icons in the list and toggle it on
Usage
Set an icon
- Right-click a file or folder in the Files tab
- Click Set custom icon
- Paste an image URL into the input field — a preview appears instantly
- Press Enter or click Set icon
Remove an icon
- Right-click the file/folder → Remove icon, or
- Go to Settings → Custom Icons and click the trash icon next to any entry
Development
# Install dependencies
npm install
# Watch mode (rebuilds on save)
npm run dev
# Production build
npm run build
Creating a release
Releases are built and published automatically via GitHub Actions on every version tag:
git tag v1.0.0
git push origin v1.0.0
The pipeline will:
- Install dependencies
- Run the production build
- Update the version in
manifest.json - Create a GitHub Release with
main.js,manifest.jsonandstyles.cssattached
Notes
- Images are loaded directly from the URL you provide — make sure the URL is publicly accessible and stable
- The plugin stores icon assignments per file/folder path in your vault's plugin data (
data.json) - Renaming or moving a file/folder automatically migrates the icon to the new path
License
MIT © Philipp Geuer-Pollmann
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.