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

Custom Icons

ravenhogwartsravenhogwartsObsidian Alchemy Workshop16k downloads

Enhance your workspace with customizable icons for documents and folders.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates37

English | 中文

Custom Icons

Icons for every surface of your Obsidian workspace — files and folders, tab headers, bookmarks, ribbon actions, community plugin settings — plus a built-in icon library backed by the full Iconify catalogue.

GitHub Socialify

Icon surfaces

Each surface is a tab under Settings → Custom Icons with its own on/off switch. Native icons are hidden rather than removed, so disabling a feature restores Obsidian's own appearance.

Surface What you can do
File explorer A default folder icon and a fallback file icon; per-extension rules (batch add, compound suffixes such as excalidraw.md win over md); named extension groups with presets (images, video, audio, documents, archives, code); per-item overrides via right-click in the tree; optional inheritance so subfolders and unmatched files follow the nearest ancestor folder. Overrides follow renames and are cleaned up on delete.
Tab headers Sidebar tool tabs and editor tabs, popout windows included. Two-level resolution: a per-tab override wins, a per-view-type mapping is the fallback. Right-click an active tab to set or reset.
Bookmarks All six bookmark kinds (file, folder, group, search, graph, URL). Per-item overrides win over a per-kind default; items are keyed by a stable id, so renaming or moving a bookmark keeps its icon.
Ribbon Icons for the left ribbon actions, identified by tooltip text, restorable to the original at any time.
Community plugins Give plugins that ship without an icon one (a fix for Obsidian 1.11+): a shared default, a random icon per plugin or for all at once, and icons in settings search results (Obsidian 1.13+).

Colours are set alongside every icon, and batch actions (randomize, clear) apply to whatever the current filter shows.

Icon library

Open it from the ribbon button or the command "Open custom icon library".

  • Icon packs — install whole sets from the built-in Iconify catalogue (220+ sets), or from any npm package that ships loose SVG files (path globs, popular presets included). Preview before installing; enable, disable, re-download or uninstall at any time. Packs are stored in the plugin folder and work offline once installed.
  • My SVG — paste SVG source or upload .svg files in bulk (file names become icon IDs). Organize into groups, sort, multi-select, and export/import the library as JSON to move it between vaults.
  • Lucide — browse every Lucide icon bundled with the plugin, with a filter separating the ones Obsidian already ships from the extras.
  • All — search Lucide, your own SVGs and every installed pack at once, grouped by source.

Favorites, recently used and grid density are remembered across sessions and shared with the icon picker used throughout the plugin.

Library icons are registered as ordinary Obsidian global icons with the ID CI-<icon-id>, take effect immediately without a reload, and can be used by any other plugin.

Usage

Usage

Icons are configured in two places: the settings tabs above, and in place — right-click a file, folder, bookmark or an active tab header. If anything looks wrong, run "Reapply all icons" from the command palette to re-register and reapply everything.

Experimental

Always load this plugin first keeps this plugin at the front of the community plugin load order, so other plugins never render before its icons are registered. It only reorders entries, never adds or removes them, and takes effect on the next restart.

Installation

Community plugin market

Click to install, or open Settings → Community Plugins, search for "Custom Icons" and install.

BRAT (beta versions)

  1. Install BRAT
  2. Click "Add Beta plugin" in BRAT settings
  3. Enter Raven-Pensieve/obsidian-custom-icons

For plugin developers

Custom Icons exposes a cross-plugin API (contract v1) on its plugin instance. Copy docs/custom-icons-api.d.ts into your own repository — there is no npm package, deliberately: no build coupling, and the runtime guard is the version field anyway.

const provider = app.plugins.getPlugin("custom-sidebar-icons")?.api;
if (provider?.version === 1) {
    provider.renderTo(el, "CI-mdi-home");   // the only way to draw the Lucide extras
    provider.describe("CI-mdi-home");       // source, short name, pack id
    provider.catalog();                     // all candidates, grouped by source
    provider.openPicker({ onPick });        // reuse this plugin's icon picker
}

// Required: icon sets change without the plugin list changing
this.registerEvent(
    this.app.workspace.on("custom-icons:changed", () => this.invalidate()),
);

Do not cache the API reference (the plugin can be disabled and re-enabled), and do not split CI-<packId>-<name> yourself — both segments may contain hyphens, so ask describe().

Inline Icons is a reference consumer: it renders icons inside note bodies using this registry.

FAQ

My icon shows blank inside another plugin

Obsidian's setIcon renders once. If that plugin rendered its icon before Custom Icons loaded, the spot stays blank. In order:

  1. Run "Reapply all icons";
  2. Reopen the affected view;
  3. Enable Settings → Experimental → "Always load this plugin first" and restart — this is the root fix, since community plugins load in the order of the array in .obsidian/community-plugins.json;
  4. Reload that plugin, or restart Obsidian.

Upgrading from 0.x

v1.0 was a breaking remaster; the classic pre-1.0 features have all been reimplemented natively since, and the plugin no longer generates CSS snippets. The old CSS-based configuration, including the auto-generated CustomIcon-AutoGen snippet, is neither used nor migrated. Delete that snippet from your vault and set your icons up again in the settings page.

License

GPL-3.0 — see LICENSE.

Star History

Star History Chart

Acknowledgements

  • obsidian-metadata-icon
  • Templater
HealthExcellent
ReviewSatisfactory
About
Customize icons for notes, folders, and the Settings page to give your vault clearer visual organization. Apply per-file or per-folder icons with the remastered v1.0 aligned to Obsidian 1.11; be aware CSS-based configurations were removed and breaking changes may require migration.
IconsAppearanceFiles
Details
Current version
2.10.1
Last updated
2 weeks ago
Created
3 years ago
Updates
37 releases
Downloads
16k
Compatible with
Obsidian 1.11.0+
Platforms
Desktop, Mobile
License
GPL-3.0
Report bugRequest featureReport plugin
Sponsor
Ko-fi
Ko-fi
Authors
ravenhogwartsravenhogwarts
GitHubravenhogwarts
GitHubRavenHogWarts
space.bilibili.com
Obsidian Alchemy Workshopobsidian-raven-pensieve
github.com/Raven-Pensieve/
Former
raven-pensieveraven-pensieve
github.com/Raven-Pensieve
GitHubraven-pensieve
  1. Community
  2. Plugins
  3. Icons
  4. Custom Icons

Related plugins

Link Favicons

See the favicon for a linked website.

Notebook Navigator

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

Minimal Theme Settings

Control the colors and fonts in Minimal Theme.

Claudian

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

Hider

Hide interface elements such as tooltips, status bar, titlebar, and more.

Advanced URI

Control everything with URI.

Thino

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

Local REST API with MCP

Unlock your automation needs by interacting with your notes over a secure REST API.

ChatGPT MD

A seamless integration of ChatGPT, OpenRouter.ai and local LLMs via Ollama into your notes.

Quick Explorer

Perform file explorer operations (and see your current file path) from the title bar, using the mouse or keyboard.